在FFPLAY窗口上显示YUV/RGB帧



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

这些框架是在我的一个自定义函数中生成的。那么,为了在FFPLAY窗口上渲染这些帧,需要做什么呢?是否有任何具体的语法或过程需要遵循?

我真的是FFPLAY的新手,在网上已经搜索了足够多的这个话题,但还没有得到任何与这个问题有关的东西。如果有人能对此提供任何答案或建议,这将对我有很大帮助。

提前谢谢。

--问候

我对破解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

根据此命令的输出修改您的问题,为我们提供进一步的线索。

最新更新