获取MediaCodec的SPS和PPS

一、SPS和PPS文档说明
在这里插入图片描述二、NALU类型
在这里插入图片描述三、获取SPS、PPS两种方式

1、同步方式
ByteBuffer spsb = videoEncodec.getOutputFormat().getByteBuffer("csd-0");
byte[] sps = new byte[spsb.remaining()];
spsb.get(sps, 0, sps.length);

ByteBuffer ppsb = videoEncodec.getOutputFormat().getByteBuffer("csd-1");
byte[] pps = new byte[ppsb.remaining()];
ppsb.get(pps, 0, pps.length);
2、异步方式
@Override
public void onOutputFormatChanged(@NonNull MediaCodec codec, @NonNull MediaFormat format) {
    MediaFormat outputFormat = codec.getOutputFormat();
    SPS = outputFormat.getByteBuffer("csd-0").array();
    PPS = outputFormat.getByteBuffer("csd-1").array();
    Log.e(TAG," onOutputFormatChanged  SPS  "+ CommonUtils.byteToHex(SPS));
    Log.e(TAG," onOutputFormatChanged  PPS  "+CommonUtils.byteToHex(PPS));
}

四、对应的sps、pps、I帧、P帧等数据

1、sps、pps
sps:000000016742ffffffc01effffffda05ffffffc145ffffff97ffffff8078402150
pps:0000000168ffffffce3cffffff80
2、I帧
data:0000000165ffffffb80010ffffffa413ffffffffffffffe5ffffffc3ffffffd31239695affffffabffffffb0340a
3、P帧
data:0000000161ffffffe9ffffffab13ffffffcd72ffffffdbffffffe5ffffffe25f5d7e64ffffff9ffffffff33affffffebffffffbd

总结:编码器编出来的数据首帧、sps、pps、I帧、P帧等顺序

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值