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

本文探讨了使用FFmpeg解码H264实时流时遇到的问题及解决方案。当从共享内存中读取AVpacket进行解码时,若采用循环清理AVframe的方式会导致非关键帧解码失败。解决方法是将AVframe设置为成员变量,避免每次解码后清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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

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

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

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

    

[h264 @ 000001ef94ed8280] Format h264 detected only with low score of 1, misdetection possible! [h264 @ 000001ef94ed9f40] illegal POC type 5 [h264 @ 000001ef94ed9f40] non-existing PPS 10 referenced [AVBSFContext @ 000001ef94ee0280] Invalid NAL unit 0, skipping. Last message repeated 6 times [h264 @ 000001ef94ed9f40] Invalid NAL unit 0, skipping. Last message repeated 6 times [h264 @ 000001ef94ed9f40] slice type 32 too large at 25 [h264 @ 000001ef94ed9f40] decode_slice_header error [h264 @ 000001ef94ed9f40] no frame! [h264 @ 000001ef94ed9f40] non-existing PPS 0 referenced [AVBSFContext @ 000001ef94ee0280] Invalid NAL unit 16, skipping. Last message repeated 3 times [h264 @ 000001ef94ed9f40] Invalid NAL unit 16, skipping. Last message repeated 3 times [h264 @ 000001ef94ed9f40] data partitioning is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented. [h264 @ 000001ef94ed9f40] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org) [h264 @ 000001ef94ed9f40] data partitioning is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented. [h264 @ 000001ef94ed9f40] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org) [h264 @ 000001ef94ed9f40] data partitioning is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented. [h264 @ 000001ef94ed9f40] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/incoming/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org) [h264 @ 000001ef94ed9f40] no frame! [h264 @ 000001ef94ed8280] Stream #0: not enough frames to estimate rate; consider increasing probesize [h264 @ 000001ef94ed8280] decoding for stream 0 failed [h264 @ 000001ef94ed8280] Could not find codec parameters for stream 0 (Video: h264, none): unspecified size Consider increasing the value for the 'analyzeduration' and 'probesize' options Input #0, h264, from 'C:\Users\26742\Desktop\1.264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264, none, 25 tbr, 1200k tbn, 50 tbc At least one output file must be specified
07-15
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值