h264中的pps和sps

首先pps和sps是h264编码时才关注的问题。
在编码中使能CODEC_FLAG_GLOBAL_HEADER后:
h264码流,第一帧是sps帧
第二帧是pps帧
第三帧是IDR帧
此时是用avformat_write_header()发送包时填充的sps和pps,把它填充到AVFormatContext->streams[h264Index]->codec->extradata中发送。
解码端就能在AVCodecContext中的extradata和extradata_size得到对应的音视频头信息。

/**
 * Place global headers in extradata instead of every keyframe.
 */
#define AV_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)

根据AV_CODEC_FLAG_GLOBAL_HEADER注释可知,如果不加入此设置,那么就会在每个关键帧加入pps和sps.
flv封装格式时候需要设置AV_CODEC_FLAG_GLOBAL_HEADER,mpegts不需要设置,什么样的封装格式需要设置,可以做判断,见另一篇文章有提到:编码器的参数设置

ffmpeg是音视频必备,但即使从业数年,它似乎依然有无穷的秘密,感兴趣添加笔者微信:YQW1163720468,加入ffmpeg微信群讨论。但记得备注:ffmpeg爱好者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、、、、南山小雨、、、、

分享对你有帮助,打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值