FFMPEG 编解码失败 non-existing PPS 0 referenced

最近在尝试用ffmpeg进行编解码 大部分的rtsp拉流正常 编解码正常

但是有的rtsp不能解码 提示如下 :

后来把把packet数据打印出来发现是没有sps pps信息 导致 ffmpeg不能正常解码

FFMPEG 编解码失败 non-existing PPS 0 referenced_第1张图片

FFMPEG 编解码失败 non-existing PPS 0 referenced_第2张图片

 FFMPEG 编解码失败 non-existing PPS 0 referenced_第3张图片

 程序里面 经过测试 把 拉流时候的AVCodecContext 保存下来 即g_avc_cxt 

然后解码的时候使用 avc_cxt = g_avc_cxt; 可以正常解码 

但是如果直接 给extradata 赋值 发现 (程序中的if(0)里面的流程)

不能解码  还是提示一样的错误 不知道为什么 

此方法不通 后来想了下 既然 裸流没有sps/pps信息 那我们自己把sps pps 手动加上去不就可以了吗 

实际的过程即是:检测到I帧的时候 把sps pps 信息 拼接起来既可以 代码如下:

FFMPEG 编解码失败 non-existing PPS 0 referenced_第4张图片

 测试通过 

你可能感兴趣的:(FFMpeg,音视频,ffmpeg,音频编码解码)