1)使用OpenGL对视频帧图像进行二次渲染;
2)结合 ShaderEffect 和 VideoOutput 来对 VideoOutput 内每一帧图像附加一个渲染效果;
3)使用 QAbstractVideoFilter 给第三方图像处理库提供一个渲染入口,同样要配合 VideoOutput 使用。
这三种方法的应用场景:
1)c++框架下,流媒体场景多用,因为流媒体会把yuv数据传给渲染模块,渲染模块可以再对yuv数据渲染的时候对 shader 程序进行定制化调整。
2)qml框架下,所有视频场景。
3)OpenCV这种第三方图像库的入口。