Description
One of the goal of GLSL.io is to provide transitions for Video Editors.
from @rectalogic :
The goal of rendermix was to implement a video mixer using GLSL shaders to implement transitions/effects. This is also what it's precursor WebVfx does - WebVfx allows you to write transitions/filters/effects using WebGL and use those in a video processing pipeline as an MLT plugin. WebVfx is based on QtWebKit, but you need a version built to enable WebGL. QtWebKit has been abandoned and the replacement QWebEngine will not have the features WebVfx requires.
So I wrote v8-webgl - a partial implementation of WebGL using desktop OpenGL and the v8 JavaScript engine, along with ANGLE to translate the WebGL glsl shaders to desktop OpenGL - independent of a web browser and designed to be used as a video editor plugin. Then I wrote rendermix (based on the jMonkeyEngine videogame engine), and some others as attempted replacements.
All that said, I think the most straightforward way to make glsl.io work with video editors is to write a frei0r plugin. ffmpeg, mlt and others all already support frei0r. I think the plugin would need to use ANGLE to translate the WebGL GLSL transition shader to OpenGL GLSL.
So basically a frei0r mixer2 or mixer3 plugin that would initialize an OpenGL context, convert the transition glsl from WebGL to OpenGL using ANGLE and compile the shader program, then in f0r_update2 upload the image bits for each frame with glTexImage2D, run the shader program, download the resulting bits using glReadPixels and set those in the f0r_update2 outframe argument.