dvorakdwarf / infinite-storage-glitch Goto Github PK
View Code? Open in Web Editor NEWISG lets you use YouTube as cloud storage for ANY files, not just video
License: GNU General Public License v3.0
ISG lets you use YouTube as cloud storage for ANY files, not just video
License: GNU General Public License v3.0
For your next project, you might want to consider writing a file system driver where user could store / fetch files to and from a virtual file system which is backed by YouTube. Use playlists as file index or something like that :)
For better data storage efficiency, it is better to use more than the binary color mode, but video compression means that full-color RGB mode is impossible to round-trip via YouTube. However, we could store fewer bits per pixel, while still being more than 1.
For example, one option could be to store one bit each per the red, green and blue channel, yielding a 1-bit RGB palette with 8 different options. Then, when reading, you can round the pixel values to the nearest of (0, 255) to get the 3 bits in a pixel. Based on my own experiments with Twitter, this scheme survives their JPEG compression, and I expect that it will probably also work for YouTube.
More generally, we could take a list that's 2^N entries in size, and each entry is an RGB color. The sender encodes each N bits by the corresponding color from the list, and the receiver rounds each acquired pixel to the closest color from that list (with the closeness being determined by a perceptual metric close to how the encoder does it).
The color list also needs to be communicated, and for this, one option would be to include some frames of black-and-white pixels that serve as a header.
Embed
Could not find encoder for codec id 62: Encoder not found
Video embedded succesfully at output.avi
Etching video ended in 4247ms
As the videos are public everybody will be able to download my precious NFT collection. Can you please consider adding an uncrackable encryption scheme with a simple password I can easily remember or guess if I forget it.
The following is the error I get when I try to build dockerimage
11 178.5 === Detected probe priority based on environment vars: pkg_config: false, cmake: false, vcpkg: false
#11 178.5 === Probing the OpenCV library in the following order: environment, pkg_config, cmake, vcpkg_cmake, vcpkg
#11 178.5 === Can't probe using: environment, continuing with other methods because: Some environment variables are missing
#11 178.5 === Probing OpenCV library using pkg_config
#11 178.5 === Can't probe using: pkg_config, continuing with other methods because: `"pkg-config" "--libs" "--cflags" "opencv4"` did not exit successfully: exit status: 1
#11 178.5 error: could not find system library 'opencv4' required by the 'opencv' crate
#11 178.5
#11 178.5 --- stderr
#11 178.5 Package opencv4 was not found in the pkg-config search path.
#11 178.5 Perhaps you should add the directory containing `opencv4.pc'
#11 178.5 to the PKG_CONFIG_PATH environment variable
#11 178.5 No package 'opencv4' found
#11 178.5 , `"pkg-config" "--libs" "--cflags" "opencv"` did not exit successfully: exit status: 1
#11 178.5 error: could not find system library 'opencv' required by the 'opencv' crate
#11 178.5
#11 178.5 --- stderr
#11 178.5 Package opencv was not found in the pkg-config search path.
#11 178.5 Perhaps you should add the directory containing `opencv.pc'
#11 178.5 to the PKG_CONFIG_PATH environment variable
#11 178.5 No package 'opencv' found
#11 178.5
#11 178.5 === Probing OpenCV library using cmake
#11 178.5 === cmake ninja probe command: "cmake" "-S" "/usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/opencv-0.75.0/cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_BUILD_TYPE=Release" "-G" "Ninja"
#11 178.5 === Probing with cmake ninja generator failed, will try Makefile generator, error: No such file or directory (os error 2)
#11 178.5 === cmake makefiles probe command: "cmake" "-S" "/usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/opencv-0.75.0/cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix Makefiles"
#11 178.5 === Probing with cmake Makefile generator failed, will try deprecated find_package, error: No such file or directory (os error 2)
#11 178.5 === cmake find-package compile probe command: "cmake" "-S" "/usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/opencv-0.75.0/cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_BUILD_TYPE=Release" "--find-package" "-DCOMPILER_ID=GNU" "-DLANGUAGE=CXX" "-DMODE=COMPILE" "-DNAME=OpenCV"
#11 178.5 === Can't probe using: cmake, continuing with other methods because: No such file or directory (os error 2)
#11 178.5 === Probing OpenCV library using vcpkg_cmake
#11 178.5 === Can't probe using: vcpkg_cmake, continuing with other methods because: Could not find Vcpkg tree: No vcpkg installation found. Set the VCPKG_ROOT environment variable or run 'vcpkg integrate install'
#11 178.5 === Probing OpenCV library using vcpkg
#11 178.5 === Can't probe using: vcpkg, continuing with other methods because: Could not find Vcpkg tree: No vcpkg installation found. Set the VCPKG_ROOT environment variable or run 'vcpkg integrate install', Could not find Vcpkg tree: No vcpkg installation found. Set the VCPKG_ROOT environment variable or run 'vcpkg integrate install'
#11 178.5 Error: "Failed to find installed OpenCV package using probes: environment, pkg_config, cmake, vcpkg_cmake, vcpkg, refer to https://github.com/twistedfall/opencv-rust#getting-opencv for help"
#11 178.5 warning: build failed, waiting for other jobs to finish...
------
executor failed running [/bin/sh -c cargo build --release]: exit code: 101
As you say in the readme, encoding bytes into colors is tricky as very prone to error due to youtube's compression. You also mentioned that you use 2*2 "blocks" to reduce compression issues.
Have you measured the loss (1*1 black and white, 2*2, RGB...) ?
I think we could implement some redundancy algorithm such as the Reed-Solomon algorithm (used in QR codes) to prevent data loss (I'm almost sure it would be better / more reliable than the 2*2 technique). We could then measure the impact in the different modes mentioned above, maybe with this addition RGB would be more profitable.
Also I think it would be interesting to figure out what is the impact of the video resolution, (is it better to have a long low-res video or a shorter high-res one to encode one file, in terms of data loss, read/write speeds ect.
This is an early reflection / public mind dump / start of a thread and I'd be happy to discuss about this with anyone susceptible of reading this :) I would then be happy to implement some of those features/tests.
there is not enough data in black and white video, color video is needed to increase compression. use only 16 colors so that it will be possible to accurately recognize them later when pinching
A way to encode data into video doesn't need to be used only for storing data; you can also use this for transferring data.
If you encode the frames into a live stream, instead of a file, then you're broadcasting the contents of that file over the live stream.
This could be useful for sending files that you don't need to keep permanent record of, or if you want to control when the file can be acquired.
The sender program would create frames, which are sent to a live video ingest server, and then rebroadcast to receiver clients, which connect to the livestream in order to download the file.
In order to deal with compression issues, which are even more severe in livestreams, a back channel (for example using chat) is needed. Receivers would say in chat when they've missed a piece of the data, and the sender would aggregate this info in order to decide what frames to send next -- for example, should it continue sending the next part of the file, or retransmit the previous one to make sure everyone received it; or, should it decrease the information density of the video to minimize losses, or increase it when the clients are receiving it well. In addition, the different clients could talk to each other in the chat, for example telling each other about the pieces they have and repeating them if someone missed them.
This requires a very big refactor to break apart the functionality of producing frames, encoding them, and saving them into separate pieces of code. In addition, whenever peer-to-peer communication is involved, everything gets much more complicated. For this reason, this is a low-priority task for now.
I have quite a lot of experience with processing video as image sequence. Also coding experience as far as ffmpeg or individual codecs. When decoding a video, the video decoder e.g. inside ffmpeg can arbitrarily drop a frame based on HW, OS, or codec version. This is not noticable when watching a video, but would totally destroy this algorithm if not worked around. How do you achieve that a frame is not dropped, do you for example replicate the data in multiple frames? Or do you know a codec which assures the frame presentation order,
Pick what you want to do with the program Dislodge
What is the path to your video ? output [DcdKfmpmPwA].mp4
Where should the output go ? test.zip
Dislodging frame ended in 17ms
thread 'main' panicked at 'attempt to calculate the remainder with a divisor of zero', src/embedsource.rs:47:29
note: run withRUST_BACKTRACE=1
environment variable to display a backtrace
Dislodging frame ended in 54ms
I am wondering if this is because I did not give YT enough time to render SD/HD?
As title
Pick what you want to do with the program Embed
What is the path to your file ? src/tests/test.txt
I couldn't figure out a weird bug that happens if you set the size to something that isn't a factor of the height
If you don't want the files you put in to come out as the audio/visual equivalent of a pipe bomb, account for the above bug
You can use one of the existing presets or custom settings Maximum efficiency
Error: No such file or directory (os error 2)
Seems like there's an additional storage medium here waiting to be explored in the audio tracks. Can surround sound be used for more individual tracks on a single video? I'd be interested in seeing just how much more data can be stored in the same amount of video.
Just wondering if its possible to support them
For example discord have support for screen sharing
The idea is to use a virtual webcam that replay the video and the clients reads from the other end user screen
It is very likely that YT will do something about it. Therefore, you could put a bit pattern over a normal video. Therefore, it is very difficult to detect this bit pattern without knowing the algorithm. The length of the video could then be adjusted dynamically. Of course, the overhead is significantly larger. But maybe it is possible to "overlay" several bit patterns. I would also find it exciting to automatically synchronize these videos with YT via a client.
Suggest to add a feature for users to place an 2D barcode in the beginning of the video for data archival purposes.
I get this error when trying to embed a file that is from an external hard drive (path : /media/...
).
Do you know how to fix this ?
Thanks
Am i missing something here or the provided executable is arm64 instead of x86_64?
$ ./isg_4real.v1.0.0
bash: ./isg_4real.v1.0.0: cannot execute binary file: Exec format error
$ file isg_4real.v1.0.0
isg_4real.v1.0.0: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|BINDS_TO_WEAK|PIE|HAS_TLV_DESCRIPTORS>
$ uname -m
x86_64
Hey all ๐
It's great to see this repo! Awesome!
I detected this problem in 2013 (10 years now! ๐ฎ), when I authored the paper:
"Bypassing Cloud Providers' Data Validation to Store Arbitrary Data"
Available at:
The paper showed several techniques on how to bypass the "file validation engine" of several cloud providers (like Google, Twitter, etc) to store files (i.e., arbitrary data). The different techniques included files encoded within images, videos, audio (mp3), videos with QR code, etc., and uploaded to several Cloud providers. An actual evaluation was done back then. ๐
It's incredible to see that this "problem" STILL exists at scale and, as I expect, will remain for many many years to come. ๐ At that time I tried to contact some providers trying to help to detect this kind of stuff but, obviously, no answers.
I'm happy to a) discuss this further; and b) re-evaluate several cloud providers nowadays; if anyone is interested. โ๏ธ
Executing the release executable on MacOS gives bad CPU
error.
Steps to reproduce:
chmod +x isg_4real
./isg_4real
zsh: bad CPU type in executable: ./isg_4real
OS details:
Software:
System Software Overview:
System Version: macOS 13.2 (22D49)
Kernel Version: Darwin 22.3.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 55 minutes, 56 seconds
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: 8-Core Intel Core i9
Processor Speed: 2.3 GHz
Number of Processors: 1
Total Number of Cores: 8
L2 Cache (per Core): 256 KB
L3 Cache: 16 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB
System Firmware Version: 1916.80.2.0.0 (iBridge: 20.16.3045.0.0,0)
OS Loader Version: 564.40.4~66
Activation Lock Status: Disabled
Building executable yields libclang error and downloading+running executable yields Exec format error
Build fail:
=== Using OpenCV headers from: /usr/include/opencv4
thread 'main' panicked at 'Cannot initialize clang: "couldn't find any valid shared libraries matching: ['libclang.so', 'libclang-.so', 'libclang.so.', 'libclang-.so.'], set the LIBCLANG_PATH
environment variable to a path where one of these files can be found (invalid: [])"', /home/host/.cargo/registry/src/github.com-1ecc6299db9ec823/opencv-0.75.0/build/generator.rs:75:37
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Executable fail:
[host@kingston ~]$ ./isg_4real.v1.0.0
-bash: ./isg_4real.v1.0.0: cannot execute binary file: Exec format error
So i am trying to get the .exe file i and getting this error
error: failed to run custom build command for opencv v0.75.0
Caused by:
process didn't exit successfully: C:\GitHub\Infinite-Storage-Glitch\target\release\build\opencv-3a11ccf03cafbefc\build-script-build
(exit code: 1)
--- stdout
=== Running: "\\?\C:\ProgramData\chocolatey\lib\rust\tools\bin\cargo.exe" "build" "--release" "--package" "opencv-binding-generator" "--bin" "binding-generator"
cargo:rerun-if-env-changed=OPENCV4_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=OPENCV4_STATIC
cargo:rerun-if-env-changed=OPENCV4_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=OPENCV_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=OPENCV_STATIC
cargo:rerun-if-env-changed=OPENCV_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
--- stderr
=== Using environment job server with the the amount of available jobs: 13
=== Crate version: Some("0.75.0")
=== Environment configuration:
=== OPENCV_PACKAGE_NAME = None
=== OPENCV_PKGCONFIG_NAME = None
=== OPENCV_CMAKE_NAME = None
=== OPENCV_CMAKE_BIN = None
=== OPENCV_VCPKG_NAME = None
=== OPENCV_LINK_LIBS = None
=== OPENCV_LINK_PATHS = None
=== OPENCV_INCLUDE_PATHS = None
=== OPENCV_DISABLE_PROBES = None
=== CMAKE_PREFIX_PATH = None
=== OpenCV_DIR = Some("C:\opencv\build\x64\vc15")
=== PKG_CONFIG_PATH = None
=== VCPKG_ROOT = None
=== VCPKGRS_DYNAMIC = None
=== PATH = Some("C:\GitHub\Infinite-Storage-Glitch\target\release\deps;C:\GitHub\Infinite-Storage-Glitch\target\release;C:\ProgramData\chocolatey\lib\rust\tools\lib\rustlib\x86_64-pc-windows-gnu\lib;C:\Program Files\WindowsApps\Microsoft.PowerShell_7.3.2.0_x64__8wekyb3d8bbwe;C:\Program Files\Oculus\Support\oculus-runtime;C:\Program Files (x86)\Razer Chroma SDK\bin;C:\Program Files\Razer Chroma SDK\bin;C:\Program Files\Python311\Scripts\;C:\Program Files\Python311\;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer\ChromaBroadcast\bin;C:\Program Files\Razer\ChromaBroadcast\bin;C:\Users\Christian\AppData\Local\Programs\Python\Python39\Scripts\;C:\Users\Christian\AppData\Local\Programs\Python\Python39\;C:\Program Files\Python310\Scripts\;C:\Program Files\Python310\;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;G:\Users\Christian\AppData\Local\Programs\Python\Python39\Scripts;G:\Users\Christian\AppData\Local\Programs\Python\Python39;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\dotnet\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\FFAIO\bin;C:\Users\Christian\AppData\Local\Microsoft\WindowsApps;C:\Users\Christian\AppData\Roaming\npm;C:\Users\Christian\.dotnet\tools;C:\Users\Christian\AppData\Local\GitHubDesktop\bin;C:\Users\Christian\AppData\Local\Programs\Fiddler;C:\Users\Christian\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\PowerShell\7\;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files\LLVM\bin;C:\msys64\mingw64\bin;C:\opencv\opencv\build\x64\vc15\bin;C:\Users\Christian\.cargo\bin;C:\opencv\build\x64\vc15\bin;C:\zlib")
=== Enabled features:
=== ALPHAMAT
=== ARUCO
=== ARUCO_DETECTOR
=== BARCODE
=== BGSEGM
=== BIOINSPIRED
=== CALIB3D
=== CCALIB
=== CUDAARITHM
=== CUDABGSEGM
=== CUDACODEC
=== CUDAFEATURES2D
=== CUDAFILTERS
=== CUDAIMGPROC
=== CUDAOBJDETECT
=== CUDAOPTFLOW
=== CUDASTEREO
=== CUDAWARPING
=== CVV
=== DEFAULT
=== DNN
=== DNN_SUPERRES
=== DPM
=== FACE
=== FEATURES2D
=== FLANN
=== FREETYPE
=== FUZZY
=== GAPI
=== HDF
=== HFS
=== HIGHGUI
=== IMGCODECS
=== IMGPROC
=== IMG_HASH
=== INTENSITY_TRANSFORM
=== LINE_DESCRIPTOR
=== MCC
=== ML
=== OBJDETECT
=== OPTFLOW
=== OVIS
=== PHASE_UNWRAPPING
=== PHOTO
=== PLOT
=== QUALITY
=== RAPID
=== RGBD
=== SALIENCY
=== SFM
=== SHAPE
=== STEREO
=== STITCHING
=== STRUCTURED_LIGHT
=== SUPERRES
=== SURFACE_MATCHING
=== TEXT
=== TRACKING
=== VIDEO
=== VIDEOIO
=== VIDEOSTAB
=== VIZ
=== WECHAT_QRCODE
=== XFEATURES2D
=== XIMGPROC
=== XOBJDETECT
=== XPHOTO
=== Detected probe priority based on environment vars: pkg_config: false, cmake: true, vcpkg: true
=== Probing the OpenCV library in the following order: environment, cmake, vcpkg_cmake, vcpkg, pkg_config
=== Can't probe using: environment, continuing with other methods because: Some environment variables are missing
=== Probing OpenCV library using cmake
=== cmake ninja probe command: "cmake" "-S" "C:\Users\Christian\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.75.0\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_BUILD_TYPE=Release" "-G" "Ninja"
=== Probing with cmake ninja generator failed, will try Makefile generator, error: program not found
=== cmake makefiles probe command: "cmake" "-S" "C:\Users\Christian\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.75.0\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix Makefiles"
=== Probing with cmake Makefile generator failed, will try deprecated find_package, error: program not found
=== cmake find-package compile probe command: "cmake" "-S" "C:\Users\Christian\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.75.0\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_BUILD_TYPE=Release" "--find-package" "-DCOMPILER_ID=GNU" "-DLANGUAGE=CXX" "-DMODE=COMPILE" "-DNAME=OpenCV"
=== Can't probe using: cmake, continuing with other methods because: program not found
=== Probing OpenCV library using vcpkg_cmake
=== Discovered vcpkg root: C:\vcpkg
=== Probing OpenCV library using cmake with toolchain: C:\vcpkg\scripts/buildsystems/vcpkg.cmake
=== cmake ninja probe command: "cmake" "-S" "C:\Users\Christian\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.75.0\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts/buildsystems/vcpkg.cmake" "-DCMAKE_BUILD_TYPE=Release" "-G" "Ninja"
=== Probing with cmake ninja generator failed, will try Makefile generator, error: program not found
=== cmake makefiles probe command: "cmake" "-S" "C:\Users\Christian\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.75.0\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts/buildsystems/vcpkg.cmake" "-DCMAKE_BUILD_TYPE=Release" "-G" "Unix Makefiles"
=== Probing with cmake Makefile generator failed, will try deprecated find_package, error: program not found
=== cmake find-package compile probe command: "cmake" "-S" "C:\Users\Christian\.cargo\registry\src\github.com-1ecc6299db9ec823\opencv-0.75.0\cmake" "-DOCVRS_PACKAGE_NAME=OpenCV" "-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts/buildsystems/vcpkg.cmake" "-DCMAKE_BUILD_TYPE=Release" "--find-package" "-DCOMPILER_ID=GNU" "-DLANGUAGE=CXX" "-DMODE=COMPILE" "-DNAME=OpenCV"
=== Can't probe using: vcpkg_cmake, continuing with other methods because: program not found
=== Probing OpenCV library using vcpkg
=== Can't probe using: vcpkg, continuing with other methods because: the vcpkg-rs Vcpkg build helper can only find libraries built for the MSVC ABI., the vcpkg-rs Vcpkg build helper can only find libraries built for the MSVC ABI.
=== Probing OpenCV library using pkg_config
=== Can't probe using: pkg_config, continuing with other methods because: "pkg-config" "--libs" "--cflags" "opencv4"
did not exit successfully: exit code: 1
error: could not find system library 'opencv4' required by the 'opencv' crate
--- stderr
Package opencv4 was not found in the pkg-config search path.
Perhaps you should add the directory containing opencv4.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv4' found ,
"pkg-config" "--libs" "--cflags" "opencv"` did not exit successfully: exit code: 1
error: could not find system library 'opencv' required by the 'opencv' crate
--- stderr
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
Error: "Failed to find installed OpenCV package using probes: environment, cmake, vcpkg_cmake, vcpkg, pkg_config, refer to https://github.com/twistedfall/opencv-rust#getting-opencv for help"
i downloaded the executable on mac and its not working, am i an idot or??
E.g touch file.txt
.
Definitely not a serious issue, but perhaps what the user sees could be a bit more helpful than an indexing error.
thank you for great job.
Making use of RGB should decrease the Overall file size, as there is more information stored in the file.
#00000 - #FFFFF
This range makes use of more than two colors codes.
Translate the binary directly to RGB patterns.
Should be somehow possible.
I understand that youtube is a great way to store videos in the cloud, but why convert before uploading them?
Supporting audio storage will increase the data that would be able to be stored. You should also be able to export encoded videos with encoded audio.
It would be amazing if we could get some fuse drivers for this project so that we could use this to create volumes within Kubernetes.
Compiled from scretch on amd64. Following error occures:
Bytes ripped succesfully
Byte length: 311
Binary ripped succesfully
[src/etcher.rs:359] final_frame = 1
Etching frame ended in 664us
Instructions written
Etching frame ended in 1914us
Embedding thread complete!
[png @ 0x560d527d6140] Specified pixel format yuv420p is invalid or not supported
Could not open codec 'png': Unspecified error
Video embedded succesfully at output.avi
Etching video ended in 4049us
No video is created. Any help on this error?
Just musing over the idea of combining this awesome storage solution with an error correcting code (RS, turbo, ldpc, etc.) to combat possible corruption due to compression.
To keep to the unix philosophy, one could also use a separate tool for it. Do you know any good ones?
Cheers!
For Services which have Limit in file size. E.G. Instagram and Twitter?
@DvorakDwarf, ISG is violating GitHub's policies because ISG is technically malware. ISG is considered malware because it allows users to abuse YouTube by uploading very large files; in other words, You are allowing for users to slow YouTube down because YouTube's resources are not infinite. Please delete this repository and tell all relevant GitHub users to delete their forks of this repository ASAP.
\cc @github-staff, @google, @youtube.
This project example video made me remind that old fashion tv noise from the old TVs
like
https://www.youtube.com/watch?v=DH0BQtwEAsM
Based on your initial idea, it would be possible to expand it to, let's say, a video with the size of FullHD (1920ร1080), where we know how many pixels are possible and where we can encode information on each pixel considering the RGB colors, so instead of black and white encoding we could have the full 256 colors to use.
Another place where a similar idea was used with optical fiber. Initially, we encoded/decoded the data using only one light spectrum. Later, we improve it on short distances to use multiple light spectrums (you can read it as colors of light) to increase data transfer bandwidth.
So, a FullHD has 1920ร1080 = 2,073,600 pixels, encoding black/white, we have 2 possibilities, resulting in 4,147,200 possibilities per frame. Using the 256 colors results in 530,841,600 possibilities per frame, meaning that's more data stored per frame.
To go even crazier, a video could also have audio, which could be used to store data encoded on the sound wave for the audio generated.
Well, like I wrote in the title, I'm only sharing my thoughts based on what you did, and by the way, excellent work, congrats ๐
I'm new to github and don't really understand how to use repositories. How to run the code correctly? (Microsoft Visual Studio)
https://i.ibb.co/7XnCtWh/20230223-231225.png
When trying to encode larger files it seems the ram usage continually increases until the computer locks up and the program eventually crashes. Would it be possible to handle larger files by writing the output frames in specified chunk sizes appending them to the end file?
Test file : archlinux-2023.02.01-x86_64.iso
System Details:
Kernel: 6.1.12-arch1-1 arch: x86_64 bits: 64
RAM: 64 GiB
Otherwise this is amazing! And it seems others have already made the same suggestions I was thinking of.
Keep up the excellent work!
Hey I just found out about this project and found it funny how it is a bit similar to a project I made back in a while (https://github.com/Myzel394/DataToQR).
We both had the idea to use Google's unlimited video storage functionality to store data in a different format to get unlimited storage :D
However, I think your project is far better as it uses Rust and transforms the input way better than mine project does.
Implement 360 Degree Youtube Videos? I don't know how this would work or even if it would. This would allow the storage of much more data.
If this technique is robust, this could be proposed as a method for long-term data archiving. This method could theoretically allow:
So, this may have utility beyond the "YouTube glitch".
I'm going to start with defining two similar terms to reduce confusion
This issue is written under the assumption that there are multiple frames in the video stream representing the same data frame.
In video encoding there's the concept of keyframes which is kind of where it "resets" the frame. Sometimes you'll notice a video stream gets super messed up, with weird blocky artifacts, and then it cleans up, almost like it's on some interval. That interval is when the stream reaches a keyframe.
I'm not sure if YouTube will actually respect the source video's keyframes, but if it does, we could enhance the quality of each unique data frame by dropping a keyframe each time a unique data frame is shown in the video stream.
Video size would definitely go up, but compression artifacts for each data frame would go down significantly
To reduce youtube potential objection and for casual viewers pleasure increase
I would embed a rotating sterogram like these
https://www.youtube.com/watch?v=2AKtp3XHn38
https://www.youtube.com/watch?v=ArWY-Ck-CPc
It would allow us to stay undetected once and for all
Maybe use an image or a real video and make small diffs to its original colors
I am on a M1 mac and have tried it according to instructions with docker. however, always comes this error:
docker run -it --rm -v ${PWD}:/home/Infinite-Storage-Glitch isg ./target/release/isg_4real
Welcome to ISG (Infinite Storage Glitch)
This tool allows you to turn any file into a compression-resistant video that can be uploaded to YouTube for Infinite Storage:tm:
How to use:
1. Zip all the files you will be uploading
2. Use the embed option on the archive (THE VIDEO WILL BE SEVERAL TIMES LARGER THAN THE FILE, 4x in case of optimal compression resistance preset)
3. Upload the video to your YouTube channel. You probably want to keep it up as unlisted
4. Use the download option to get the video back
5. Use the dislodge option to get your files back from the downloaded video
6. PROFIT
> Pick what you want to do with the program Download
> What is the url to the video ? https://youtu.be/8I4fd_Sap-g
Starting the download, there is no progress bar
Error: io error: Text file busy (os error 26)
Caused by:
Text file busy (os error 26)
wow, thanks for surprising the gitHub community with this project, at the time I write these lines of text, it is the #1 trending project on GitHub, I hope you can generate an .exe or at least a python version of this project :D
THX
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.