ffmpeg udp в HLS ошибка
Я пытаюсь перекодировать поток UDP в файл HLS (m3u8) и поместить этот файл на веб-сервер, такой как apache, с таким кодом:
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 ответ
Решение
Попробуйте увеличить размер буфера в самом URL. Например:
ffmpeg -i udp: //239.1.2.1: 60001? fifo_size = 50000000