5

我正在使用 Android MediaCodec 库来解码存储在文件系统上的视频。我得到一个看起来合法的输出缓冲区(带有正确的bufferinfo.offsetand size)。它的格式似乎是 256(即 JPEG)。我尝试用 解码它BitmapFactory.decodeByteArray,但结果是null.

有谁知道确定输出缓冲区格式的正确方法?开始解码输出字节数组的正确方法是什么?

4

1 回答 1

2

MediaCodec颜色格式由MediaCodecInfo.CodecCapabilities定义。256 在内部使用,通常并不意味着您有 JPEG 数据的缓冲区。这里的混淆可能是因为您正在查看ImageFormat类中的常量,但这些仅适用于相机输出。(例如,ImageFormat.NV16是 YCbCr 格式,COLOR_Format32bitARGB8888而是 RGB,但两者的数值都是 16。)

可以在此处找到一些MediaCodec使用示例,包括指向 CTS 测试的链接。在某些设备上,您将无法从输出中解码数据,而必须解码为.MediaCodecByteBufferSurface

于 2013-08-24T17:05:46.333 回答