Android MediaCodec用于解码MPEG2视频流

时间:2014-05-15 19:40:23

标签: android mediacodec mpeg-2

我正在尝试使用MediaCodec API来解码和显示MPEG2编码的流。我使用MediaExtractor从MPEG传输流(TS)中提取流。

我注意到解密器的configure()在我尝试过的所有设备上都失败了 - Nexus7(2012),Nexus7(2013),Nexus10,错误代码为0x80001001。

使用configure() API时唯一可能出错的参数是提供的MediaFormat配置,这是从Android MediaExtractor获得的。我不明白会出现什么问题导致这个问题引起注意。

MediaFormat对象中存在的配置参数是:

            1. `CSD-0` - Containing Sequence header and sequence extension header.

                            Seq_Hdr    - 00 00 01 B3 2D 01 E0 24 09 C4 23 80 

                            Seq_extnsn - 00 00 01 B5 14 8A 00 01 00 80

            2. Height - 480

            3. Width - 720

            4. KEY_MIME - `video/mpeg2`

所有设备上的错误都有些类似,这可能意味着错误可能源自MediaCodec堆栈中的公共实体。以下是Nexus7(2013)的错误。 (0x80001001 - OMX_ErrorUndefined)

E/ACodec  ( 6504): [OMX.qcom.video.decoder.mpeg2] configureCodec returning error -1010
E/MediaCodec( 6504): Codec reported an error. (omx error 0x80001001, internalError -1010)

这是因为MPEG2不是Android平台上支持的强制编解码器,还是我做错了?任何有关MPEG2解码器行为的信息都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

在您的设备上,查看/system/etc/media_codecs.xml以查看列表。

我的理解是,在目前的Nexus设备上,不支持MPEG-2视频压缩。