小编Mic*_*ght的帖子

Android 软件解码器(OMX.google.h264.decoder)无法解码 H264 视频

我在尝试使用 Android 软件解码器 (OMX.google.h264.decoder) 提取和解码 H264 视频时遇到问题。该问题似乎涉及多个设备。

该视频使用 Nexus 5 硬件解码器 (OMX.qcom.video.decoder.avc) 可以正常播放。

下面的示例代码展示了该问题,并且是使用 android MediaCodec 和 MediaExtractor 类的相当标准的示例。

当第一个缓冲区传递给解码器时,我得到的异常是非法状态异常。

该视频采用 Baseline 配置文件编码为 720x480 20fps,因此应符合兼容性准则。

这是代码附带的视频示例

我非常感谢任何有关使软件视频解码器正确处理 H264 视频的指导。

public void doMp4Test()
{
    try
    {
        //String filename = "webserver_h264.mp4";
        String filename = "toodee-720p.mp4";
        MediaExtractor extractor = new MediaExtractor();
        extractor.setDataSource(Constants.RootDirectory + File.separator + filename); 

        MediaCodec decoder = null;

        for (int i = 0; i < extractor.getTrackCount(); i++)
        {
            MediaFormat format = extractor.getTrackFormat(i);
            String mime = format.getString(MediaFormat.KEY_MIME);
            if (mime.startsWith("video/"))
            {
                extractor.selectTrack(i);
                decoder …
Run Code Online (Sandbox Code Playgroud)

video android h.264 android-mediacodec

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

android ×1

android-mediacodec ×1

h.264 ×1

video ×1