ImageInTerminal.jl
ImageInTerminal.jl copied to clipboard
VideoInTerminal!
I tried out streaming images at video framerate rates using ImageInTerminal, and it works surprisingly well, at least on MacOS.
Here's a quick and dirty start of a package https://github.com/IanButterworth/VideoInTerminal.jl
An easy demo is just
using VideoInTerminal
testvideo("annie_oakley")
testvideo("ladybird")
Would this be something to bring into ImageInTerminal, or leave separate given the dependency on VideoIO?
I'm thinking it would be nice to try adding additional UI controls to it, like pause, play speed, scrubbing
Edit: Controls added. Also a webcam viewer
This is so interesting! The FFMPEG dependency seems a little bit heavy to me so I prefer to keep them apart... (at least for now.)
There are some methods that don't rely on VideoIO, just ones for playing and seeking back and forth through framestacks or along specific dims in 3D arrays which could come into here without taking on any additional deps.
https://github.com/IanButterworth/VideoInTerminal.jl#explore
Also:
julia> @time using VideoInTerminal
3.237035 seconds (5.73 M allocations: 401.186 MiB, 3.98% gc time)
julia> @time using ImageInTerminal
2.224965 seconds (4.66 M allocations: 336.147 MiB, 2.84% gc time)
julia> @time using VideoIO
0.833947 seconds (1.05 M allocations: 63.679 MiB, 4.15% gc time)
julia> @time using ImageTransformations
2.151483 seconds (4.64 M allocations: 334.747 MiB, 2.67% gc time)
I think this might be another case where it would be nice to remove restrict out of ImageTransformations?
@IanButterworth @johnnychen94 really hoping this moves forward,I have been thinking of working on a project that helps videochat through terminal and this is just the thing that will kind of help:)