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