在FFPLAY窗口上显示YUV / RGB帧

时间:2013-11-20 11:21:32

标签: video ffmpeg rendering yuv libavcodec

我在FFMPEG框架上集成了自定义解码器。该解码器的输出是YUV420帧,如果需要,我可以将其转换为RGB24帧。

这些帧是在我的一个自定义函数中生成的。那么为了在FFPLAY窗口上呈现这些帧,必须做什么?是否有任何特定的语法或程序可供使用?

我是FFPLAY的新手,并且已经在网上搜索了这个主题,但没有任何与此问题相关的内容。如果有人能提供任何有关此问题的答案或建议,对我来说将是非常有帮助的。

提前致谢。

- 问候

1 个答案:

答案 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

使用此命令的输出修改您的问题,为我们提供更多线索。