loomos-hub/glide-ffmpeg — explained in plain English
Analysis updated 2026-05-18
Add smooth Ken Burns-style pan and zoom animation to still images for video content.
Replace FFmpeg's zoompan filter in a video pipeline to eliminate stutter on slow camera moves.
Benchmark and compare smoothness against FFmpeg's zoompan using the included comparison script.
| loomos-hub/glide-ffmpeg | 0xustaz/streamgate | a-bissell/unleash-lite | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | hard | hard |
| Complexity | 2/5 | 4/5 | 4/5 |
| Audience | developer | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires PyTorch and FFmpeg installed, a CUDA GPU is strongly recommended for reasonable speed.
Glide is a small Python tool that animates still images with a smooth pan and zoom effect, the kind of slow camera move often called the Ken Burns effect, and used often in slideshows and documentary videos. It is built to replace a specific feature in FFmpeg called zoompan, which is the common way people currently do this kind of animation. The problem Glide solves is that FFmpeg's zoompan rounds its position to whole pixels on every frame. When a pan or zoom moves less than one pixel per frame, which is common for slow, tasteful camera moves, the image appears to hold still and then suddenly jump a full pixel, which looks like a shudder or vibration rather than smooth motion. A common workaround is rendering at a much higher resolution and then shrinking it down, but that only hides the problem and makes rendering slower. Glide instead calculates the exact floating-point position of the camera for every frame and uses a GPU sampling technique called bicubic interpolation to read the image at that precise position, so the motion is smooth down to a fraction of a pixel. It also applies a modest amount of supersampling and downscaling purely to smooth out fine detail, kept separate from the actual motion calculation, and offers optional easing curves so a move can start and end more gently, similar to a real camera settling into position. Frames are streamed directly into FFmpeg, which only handles the final video encoding step. The README includes a benchmark comparing Glide to FFmpeg's zoompan using a supersampled setting, measuring how evenly the image shifts frame to frame, and reports about fifteen times smoother motion at a similar or lower render cost, tested on an RTX 4060 Ti graphics card. To use it, you install PyTorch, Pillow, and NumPy, with a CUDA-enabled version of PyTorch recommended for speed, though it also runs on a CPU. It can be used from the command line with preset moves like push-in or pan-left, with custom zoom and center points, or imported as a Python library where you define a move with a starting and ending zoom level and center position and render it to a video file. The project notes it assumes the source image and output video share the same aspect ratio, and it is released under the MIT license.
A GPU-accelerated tool for smooth, sub-pixel pan and zoom animation over still images, replacing FFmpeg's stuttery zoompan filter.
Mainly Python. The stack also includes Python, PyTorch, CUDA.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.