srs报错:demux SPS/PPS : avc decode sequence header

简介: srs报错:demux SPS/PPS : avc decode sequence header

srs报错如下:

[31m[2021-10-23 17:43:55.682][Error][31374][5ns94367][4] serve error

code=3001 : service cycle : rtmp: stream service : rtmp: receive

thread : handle publish message : rtmp: consume message : rtmp:

consume video : meta update video : demux SPS/PPS : avc decode

sequence header


这个错误的意思是srs在接收码流时获取不到sps和pps的信息。

之后选择断开与推流端的连接,这时候推流端如果继续推流的话,av_interleaved_write_frame(…)就会报-32,打印日志为:

broken pipe


需要设置一下编码器参数:

if(octx->oformat->flags & AVFMT_GLOBALHEADER)
{
  printf("set video GLOBAL_HEADER\n");
  enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}
octx代表输出上下文


解释一下pps和sps,码流中的两个字节区,它们对解码至关重要,如果找不到他们,那么解码就会

失败,因为它们存储的是编码器设置的参数,比如视频的heigth,width等,音频的采样率,通道数等。

解释一下上面代码段的意思,它会去检测输出上下文的封装格式,来确定是否设置AV_CODEC_FLAG_GLOBAL_HEADER。

那么AV_CODEC_FLAG_GLOBAL_HEADER这个标志的作用是,由原来编码时在每个关键帧前加入pps和sps,改变为在extradate这个字节区加入pps和sps。那么这样的话,在解码时,就得从extradate读取pps和sps,然后放入每个关键帧前面。


设置编码器可以去参考:

https://blog.csdn.net/weixin_43466192/article/details/120804610



相关文章
|
8月前
|
编解码 应用服务中间件 nginx
DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 2
DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 2
449 0
ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
139 0
ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
|
数据采集 文件存储
给h264帧增加start code和sps/pps
给h264帧增加start code和sps/pps
418 0
给h264帧增加start code和sps/pps
|
编解码
《RealityCodec H.265HEVC Low Delay(I&P)Encoder》电子版地址
RealityCodec H.265/HEVC Low Delay(I&P)Encoder
72 3
《RealityCodec H.265HEVC Low Delay(I&P)Encoder》电子版地址
|
编解码
解码错误。‘gb2312‘ codec can‘t decode byte 0xf3 in position 307307: illegal multibyte sequence
解码错误。‘gb2312‘ codec can‘t decode byte 0xf3 in position 307307: illegal multibyte sequence
169 0
|
编解码 固态存储 Python
ssd [Error] UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position【已解决】
ssd [Error] UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position【已解决】
399 0
ssd [Error] UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position【已解决】
|
编解码 索引
Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family
Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family
322 0
Bluetooth Profile Specification之1.3 A2DP 之Audio Codec(音频编解码器)-ATRAC family
|
编解码
Bluetooth Profile Specification之1.1 A2DP 之Audio Codec(音频编解码器)-SBC
Bluetooth Profile Specification之1.1 A2DP 之Audio Codec(音频编解码器)-SBC
535 0
Bluetooth Profile Specification之1.1 A2DP 之Audio Codec(音频编解码器)-SBC