十一:SPS和PPS介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十一:SPS和PPS介绍相关的知识,希望对你有一定的参考价值。

参考技术A SPS和PPS串,包含了初始化H.264解码器所需要的信息参数,包括编码所用的profile,level,图像的宽和高,deblock滤波器等。SPS:序列参数集。PPS:图像参数集。在H264码流中,都是以"0x00 0x00 0x01"或者"0x00 0x00 0x00 0x01"为开始码的,找到开始码之后,使用开始码之后的第一个字节的低5位判断是否为7(sps)或者8(pps), 及data[4] & 0x1f == 7 || data[4] & 0x1f == 8.然后对获取的nal去掉开始码之后进行base64编码,得到的信息就可以用于sdp.sps和pps需要用逗号分隔开来。

ffmpeg 添加 sps pps

参考技术A 分离某些封装格式(例如MP4/FLV/MKV等)中的H.264的时候,需要首先写入SPS和PPS,否则会导致分离出来的数据没有SPS、PPS而无法播放。H.264码流的SPS和PPS信息存储在AVCodecContext结构体的extradata中。需要使用ffmpeg中名称为“h264_mp4toannexb”的bitstream filter处理。
原有的API已被弃用,新的API如下:

Query

Setup

Usage

Cleanup

ps: FFmpeg给出的例子中并未while循环调用av_bsf_receive_packet,也未对其flush。

https://blogs.gentoo.org/lu_zero/2016/03/21/bitstream-filtering/

以上是关于十一:SPS和PPS介绍的主要内容,如果未能解决你的问题,请参考以下文章

SPS、PPS

H.264---SPS和PPS

ffmpeg 添加 sps pps

H264码流中SPS PPS详解

具有多个 PPS 和 SPS 的 H264

SPS & PPS in H.264 详解