我正在尝试使用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
解码器行为的信息都将受到高度赞赏。
答案 0 :(得分:1)
在您的设备上,查看/system/etc/media_codecs.xml
以查看列表。
我的理解是,在目前的Nexus设备上,不支持MPEG-2视频压缩。