有mpv player这是旧MPlayer的分支。它可以构建为库,并具有API,可以将视频帧渲染到许多视频输出,如OpenGL表面,Direct3D,SDL等。我正在尝试在当前项目中使用此库来解码来自云的flv流。
但我无法找到将解码后的视频帧直接呈现给用户空间分配的内存缓冲区的方法。出于特定原因,我需要此选项,并且上面列出的接口不适合我的任务。我还需要一个回调函数,它将在每个帧被解码并写入内存后调用。
有没有办法使用libmpv/client.h的标准mpv API来实现此功能?如果不是,如何编写简单的video out driver并将指针传递给自定义内存?
我已经将libVLC用于我的任务,并且clear interface为我的需求设置了几个回调,但遗憾的是libVLC 2.x包含bug with gray frames artifacts在播放来自云端的视频流时出现。