参考此页: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到适当格式的转换。至少这是我的理解。
在编解码器格式的海洋中,我不确定它们之间的差异以及我是否需要在我的应用程序中考虑所有这些。如果是这样,我需要知道这些格式的字节布局。我已经填写了我认为正确的那些。从顶部开始向下移动:
FormatYUV420Planar - YYYY YYYY UU VV
FormatYUVPackedPlanar - ???
FormatYUV420SemiPlanar - YYYY YYYY VU VU
FormatYUV420PackedSemiPlanar - ???
COLOR_TI_FormatYUV420PackedSemiPlanar - ???