ffmpeg udp到HLS错误

时间:2016-02-25 17:54:36

标签: ffmpeg udp streaming video-streaming hls

我尝试将 UDP 流转码为 HLS (m3u8)文件,并使用以下代码将该文件放入apache等Web服务器中:

ffmpeg -i udp://239.1.2.1:60001 -acodec aac -strict -2 -vcodec libx264 -hls_wrap 100 -f hls /var/www/html/ts/1.m3u8 

首先进行跟踪转换,我看到了一个错误

[h264 @ 0x14c1c60] number of reference frames (0+4) exceeds max (3; probably corrupt input), discarding one

但是m3u8文件创建成功,我可以在客户端播放它。但是在2或3分钟后我发现了一些错误

[h264 @ 0x158d600] error while decoding MB 30 34, bytestream -10 dup=101 drop=0 [mpegts @ 0x149c660] PES packet size mismatch
[aac_latm @ 0x158daa0] Reserved SBR extensions 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.
[aac_latm @ 0x158daa0] 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)
[aac_latm @ 0x158daa0] Expected to read 18 SBR bytes actually read 21.
[aac_latm @ 0x158daa0] channel element 3.4 is not allocated
Error while decoding stream #0:1: Invalid data found when processing input
Last message repeated 1 times
[udp @ 0x148c0c0] Circular buffer overrun. To avoid, increase fifo_size URL option. To survive in such case, use overrun_nonfatal option
[h264 @ 0x158d600] error while decoding MB 41 20, bytestream -14 dup=102 drop=0    
udp://239.1.2.1:60001: Input/output error

然后流立即停止....任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试增加URL本身的缓冲区大小。例如:

ffmpeg -i udp://239.1.2.1:60001?fifo_size = 50000000