我在FFMPEG
框架上集成了自定义解码器。该解码器的输出是YUV420帧,如果需要,我可以将其转换为RGB24帧。
这些帧是在我的一个自定义函数中生成的。那么为了在FFPLAY
窗口上呈现这些帧,必须做什么?是否有任何特定的语法或程序可供使用?
我是FFPLAY
的新手,并且已经在网上搜索了这个主题,但没有任何与此问题相关的内容。如果有人能提供任何有关此问题的答案或建议,对我来说将是非常有帮助的。
提前致谢。
- 问候
答案 0 :(得分:1)
我对FFmpeg的黑客编解码器有点生疏,但我刚刚检查了最新的git源代码,我假设你是在使用同一个副本。我进一步假设您将解码器与libavcodec /目录中的其余编解码器一起插入,并且当您构建程序并运行ffmpeg -formats
时,您会看到提到的新解码器。
如果这一切都是真的,那么我将假设你的解码器模块导出一个init()函数,它希望接收一个指向AVCodecContext
函数的指针。此数据结构有一个名为pix_fmt的成员,在解码器的情况下应将其设置为AV_PIX_FMT_YUV420P,以指示平面YUV 4:2:0。
如果这不起作用,请尝试使用ffmpeg
工具将文件解码为空目标,只是为了测试您的解码器正在执行某些操作:
ffmpeg -i yourfile.ext -f null /dev/null
使用此命令的输出修改您的问题,为我们提供更多线索。