An FFmpeg filter that applies GLSL video transitions from the gl-transitions collection to video streams.
ffmpeg-gl-transition is a custom FFmpeg filter that allows users to apply GLSL-based video transitions between video streams. It solves the problem of implementing complex, non-trivial transitions in FFmpeg by utilizing the simple and universal GLSL transition specification from gl-transitions.com.
Video editors, developers, and multimedia engineers who use FFmpeg for command-line video processing and need advanced transition effects beyond basic crossfades.
It provides a direct bridge between FFmpeg's powerful filter system and the extensive library of GLSL transitions, offering a more maintainable and creative alternative to writing complex, error-prone FFmpeg filter graphs for transitions.
FFmpeg filter for applying GLSL transitions between video streams.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Directly leverages the gl-transitions.com ecosystem, allowing users to apply hundreds of creative transitions without writing complex shader code, as shown in the example with crosswarp.
Functions as a built-in filter within a custom FFmpeg build, enabling integration into existing FFmpeg workflows and complex filter graphs for advanced video processing.
Configurable with EGL for easier use in server environments without displays, making it suitable for automated video processing pipelines, as detailed in the Linux setup section.
Allows fine-tuning of transition parameters like duration and offset, and supports custom GLSL shader files via the 'source' option for unique effects.
Requires compiling FFmpeg from source with specific OpenGL dependencies (e.g., GLEW, glfw), which is time-consuming and platform-dependent, as outlined in the Building section.
The Todo list admits that many gl-transitions don't work correctly because the filter lacks support for default uniform values, limiting the usable transition library.
Currently, both video streams must be the same size, which is a limitation noted in the Todo list and can hinder concatenation of videos with different resolutions.
Even with this filter, non-trivial concatenation requires intricate FFmpeg filter chains with split, trim, and concat, making it inaccessible for casual users, as shown in the examples.