当前位置:   article > 正文

h264中的pps和sps_sps帧

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)
  • 1
  • 2
  • 3
  • 4

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

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

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/659669
推荐阅读
相关标签
  

闽ICP备14008679号