ffmpeg解码实时流出错"non-existing PPS 0 referenced,decode_slice_header error,no frame!"

ffmpeg解码h264实时流出错,提示如下错误:

ffmpeg解码实时流出错"non-existing PPS 0 referenced,decode_slice_header error,no frame!"

分析原因:可以解码关键帧,但是解码非关键帧时,就报如上错误

1)如果直接从rtsp流中一帧一帧的取,再一帧一帧的转码yuv,对AVpacket,AVframe没有特殊要求,完整就好。

2) 若果现将h264实时流存在共享内存中,再从共享内存中读取一帧的AVpacket,那么AVframe就不要循环清理,最好做成成员变量,否则非关键帧无法解码,会提示如上错误。

解决办法:将AVframe做成成员变量,不能用一次清理一次。