我正在学习FFmpeg中的视频编码和解码。我尝试了这个page上的代码示例(仅涉及视频编码和解码部分)。这里创建的虚拟图像是以YCbCr格式。如何通过创建RGB帧来实现类似的编码?我被卡住了:
首先,如何创建这个RGB虚拟帧?
其次,如何对其进行编码?使用哪种编解码器?它们中的大多数仅适用于YUV420p...
编辑:我有一个YCbCr编码器和解码器,就像这个page上所给出的一样。问题是,我的数据库中有RGB帧序列,我需要对其进行编码。但编码器是为YCbCr而设计的。因此,我想知道如何将RGB帧转换为YCbCr(或YUV420P),然后对其进行编码。在解码端,我得到了解码的YCbCr帧并将它们转换回RGB。如何继续前进?
我尝试了swscontext,但转换后的帧失去了颜色信息并且出现了缩放错误。我考虑使用两个for循环和颜色空间转换公式手动完成它,但是我无法使用FFmpeg/libav库访问帧的单个像素!就像在OpenCV中,我们可以轻松地使用类似于:Mat img(x,y) 的东西来访问它,但这里没有这样的东西!我完全是一个新手...
首先,如何创建这个RGB虚拟帧?
其次,如何对其进行编码?使用哪种编解码器?它们中的大多数仅适用于YUV420p...
编辑:我有一个YCbCr编码器和解码器,就像这个page上所给出的一样。问题是,我的数据库中有RGB帧序列,我需要对其进行编码。但编码器是为YCbCr而设计的。因此,我想知道如何将RGB帧转换为YCbCr(或YUV420P),然后对其进行编码。在解码端,我得到了解码的YCbCr帧并将它们转换回RGB。如何继续前进?
我尝试了swscontext,但转换后的帧失去了颜色信息并且出现了缩放错误。我考虑使用两个for循环和颜色空间转换公式手动完成它,但是我无法使用FFmpeg/libav库访问帧的单个像素!就像在OpenCV中,我们可以轻松地使用类似于:Mat img(x,y) 的东西来访问它,但这里没有这样的东西!我完全是一个新手...
有人能帮帮我吗?
非常感谢!
ffmpeg -h encoder=foo
гЂ‚ - llogan