Search code examples
ffmpegudpstreamingvideo-streaminghttp-live-streaming

ffmpeg udp to HLS error


I try to transcode UDP stream to HLS (m3u8) file and put that file in a web server such as apache with this code:

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 

At first of trascoding progress i see a error

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

But m3u8 file created successfully and i can play it in client. but after 2 or 3 minute i see some error

[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

And stream stop immediately .... anybody know how i can solve this problem?


Solution

  • Try increasing the buffer size in the URL itself. For example:

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