2016-02-25 289 views
0

我尝试转码UDPHLS(M3U8)文件,并把在Web服务器的文件,如使用此代码的Apache:ffmpeg的UDP来HLS错误

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 

起初trascoding的进度我看到一个错误

[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. ([email protected]) 
[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 

并立即停止流....任何人都知道我可以如何解决这个问题?

回答

2

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

的ffmpeg -i UDP://239.1.2.1:60001 FIFO_SIZE = 5000

+0

TNX很多......你知道如何解决这个问题? [h264 @ 0x14c1c60]参考帧数(0 + 4)超过最大值(3;可能是损坏的输入),丢弃一个 –

+0

尝试将帧速率设置为固定值,看看是否可以解决它。 –

+0

我看到sombosy使用'udp://239.232.209.112:50000?fifo_size = 2000000'代码为-i选项,你知道为什么要使用fifo_size两次吗? –