Android视频解码获取帧数据

本文详细介绍如何使用MediaExtractor和MediaCodec进行视频轨道获取、参数设置、编解码操作及解码数据监听,确保视频处理流程顺畅,避免常见错误。

一、获取视频轨道

设置视频资源MediaExtractor,获取轨道数量,然后遍历轨道数据,获取Video轨道MediaFormat。

mediaExtractor = new MediaExtractor();
        try {
            mediaExtractor.setDataSource(path);
        } catch (IOException e) {
            e.printStackTrace();
        }
        int count = mediaExtractor.getTrackCount();
        for (int i = 0; i < count; i++) {
            MediaFormat trackFormat = mediaExtractor.getTrackFormat(i);
            if (trackFormat.getString(MediaFormat.KEY_MIME).contains("video")) {
                videoFormat = trackFormat;
                mediaExtractor.selectTrack(i);
                break;
            }
        }

二、设置视频参数

视频解析中三个参数使必须设置的,不设置的话会导致:

catch exception:android.media.MediaCodec$CodecException: Error 0xfffffc0e

而且要设置正确,如果设备不支持宽高,也会抛出异常。


                
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值