我有一个typedef结构,其中包含我从视频帧中获取的YUV组件。
我需要找到一种方法将这些YUV组件写入(.YUV)文件扩展名,以便我可以将它用于我的C语言应用程序。
有谁知道,我怎么能这样做?
最好的问候
答案 0 :(得分:2)
嗯,更常见的yuv格式之一(或更确切地说是YCbCr)是YV12
它也被称为平面分离的4:2:0 8bpp。其中4:2:0表示用于颜色分量的子采样。 8bpp表示有效范围是[0-255]
(不是真的,但现在不能去那里......)
它由width x height
字节亮度样本(Y部分)和width x height / 4
Cb数据以及相同数量的Cr数据组成。一帧的总字节数为width x height * 3 / 2
所以基本上你需要做的就是把Y分量写成uint8
,然后是Cb数据和Cr数据。
如果您需要在c中查看一些示例代码,请在github上查看我的yuv-viewer。 希望它有帮助,如果没有,请给我发表评论。
答案 1 :(得分:0)
您需要了解如何以二进制模式写入文件。看看these examples。一旦清楚,您需要做的就是将YUV通道的十六进制值转储到文件中。