0

参考这个页面:http ://bigflake.com/mediacodec/

A5。相机输出和 MediaCodec 编码器输入的颜色格式不同。相机支持 YV12(平面 YUV 4:2:0)和 NV21(半平面 YUV 4:2:0)。MediaCodec 编码器支持以下一项或多项:

#19 COLOR_FormatYUV420Planar (I420)

#20 COLOR_FormatYUV420PackedPlanar(也是 I420)

#21 COLOR_FormatYUV420SemiPlanar (NV12)

#39 COLOR_FormatYUV420PackedSemiPlanar(也是 NV12)

#0x7f000100 COLOR_TI_FormatYUV420PackedSemiPlanar(也是 NV12)

在我的应用程序中,我从外部摄像头以 YUY2 格式捕获帧,将它们转换为可用格式,并将它们提供给 MediaMuxer。

根据我在这里阅读的内容,这意味着我需要使用 MediaCodecInfo.CodeCapabilities 查询设备支持的内容。然后,基于此,将 YUY2 转换为适当的格式。至少这是我的理解。

在编解码器格式的海洋中,我不确定它们之间的差异以及我是否需要在我的应用程序中考虑所有这些。如果是这样,我需要知道这些格式的字节布局。我已经填写了我认为正确的那些。从顶部开始向下移动:

格式YUV420Planar - YYYY YYYY UU VV

FormatYUVPackedPlanar - ???

格式YUV420SemiPlanar -- YYYY YYYY VU VU

格式YUV420PackedSemiPlanar -- ???

COLOR_TI_FormatYUV420PackedSemiPlanar -- ???

4

1 回答 1

3

打包格式是将所有 3 个组件打包在一个平面中的格式。有关在视觉管道中广泛使用的不同颜色格式的更多信息,请参阅以下链接。

  1. fourcc

  2. videoLan

  3. Microsoft

对于COLOR_TI_FormatYUV420PackedSemiPlanar,我建议参考这里ColorConverter的颜色转换功能。它类似于,但在获取数据的方式上有一些特定的差异。YUV420SemiPlanar

于 2015-04-14T01:27:44.827 回答