[FFmpeg-user] UDP transport stream unexpected buffer overrun

KS kslimani at diffusepro.com
Tue Jul 12 13:48:53 EEST 2016


On Tue, July 12, 2016 11:37 am, Massimo Battistel wrote:
> Hi,
> I've recently upgraded ffmpeg tools from 2015/02/03 Zeranoe build to
> 2016/07/12
> Zeranoe build.
>
>
> I've experienced an issue when reading from udp-mpegts input: It takes a
> lot of time to complete parsing and it exits with an unexpected error.
> With
> old version everything is fine.
>
> ffmpeg -i udp://127.0.0.1:1800
>
> ffmpeg version N-80974-gdf1dc52 Copyright (c) 2000-2016 the FFmpeg
> developers built with gcc 5.4.0 (GCC) configuration: --disable-static
> --enable-shared --enable-gpl
> --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx
> --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128
> --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
> --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
> --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc
> --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
> --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus
> --enable-librtmp --enable-libschroedinger --enable-libsnappy
> --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame
> --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis
> --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
> --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg
> --enable-lzma --enable-decklink --enable-zlib
> libavutil      55. 28.100 / 55. 28.100 libavcodec     57. 50.100 / 57.
> 50.100
> libavformat    57. 41.100 / 57. 41.100 libavdevice    57.  0.102 / 57.
> 0.102
> libavfilter     6. 47.100 /  6. 47.100 libswscale      4.  1.100 /  4.
> 1.100
> libswresample   2.  1.100 /  2.  1.100 libpostproc    54.  0.100 / 54.
> 0.100
> [mpeg2video @ 00ee6f60] Invalid frame dimensions 0x0.
> Last message repeated 19 times
> Input #0, mpegts, from 'udp://127.0.0.1:1800':
> Duration: N/A, start: 3163.664000, bitrate: N/A
> Program 1
> Metadata:
> service_name    : Service01 service_provider: FFmpeg
> Stream #0:0[0x64]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
> yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
>  Stream #0:1[0xc8]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
> stereo, s16p, 128 kb/s At least one output file must be specified
> [udp @ 0104efa0] Circular buffer overrun. To avoid, increase fifo_size URL
>  option. To survive in such case, use overrun_nonfatal option
>
> Before showing the last message (Circular buffer overrun), ffmpeg hangs
> for about 17-18 seconds.
>
> Old ffmpeg version exits just after "At least one output file must be
> specified" (as expected).
>
>
> Stream source was never changed and it is generated with ffmpeg this way:
>
>
> ffmpeg -re -i source -vcodec mpeg2video -pix_fmt yuv420p -flags
> +ildct+ilme
> -top 1
> -aspect 16:9 -b:v 2000k -trellis 2 -g 25 -bf 2 -acodec mp2 -ac 2 -ar 48000
>  -b:a 128k -f mpegts -flush_packets 0
> "udp://127.0.0.1:1800?pkt_size=1316"
>
>
>
> Thanks,
> MB
> _______________________________________________
> ffmpeg-user mailing list ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".

hi,

something which may help is to add the "overrun_nonfatal" parameter in
your input stream UDP url.

For example : udp://127.0.0.1:1800?overrun_nonfatal=1

Take a look at https://www.ffmpeg.org/ffmpeg-protocols.html#toc-udp

Additionally, sometime adding fifo_size parameter can help.

For example : udp://127.0.0.1:1800?overrun_nonfatal=1&fifo_size=524288





More information about the ffmpeg-user mailing list