[FFmpeg-trac] #9729(undetermined:new): ffprobe hangs if no RTP input data; timeout ignored

FFmpeg trac at avcodec.org
Fri Apr 15 09:39:36 EEST 2022


#9729: ffprobe hangs if no RTP input data; timeout ignored
--------------------------------------+----------------------------------
             Reporter:  Danny         |                     Type:  defect
               Status:  new           |                 Priority:  normal
            Component:  undetermined  |                  Version:  4.4.1
             Keywords:                |               Blocked By:
             Blocking:                |  Reproduced by developer:  0
Analyzed by developer:  0             |
--------------------------------------+----------------------------------
 I want to use ffprobe to detect if an RTP stream is present, and if so,
 identify the stream format and contents.

 But if there is no data on the given URL, ffprobe hangs. I've tried both
 -timeout and -rw_timeout, with no effect. ffprobe hangs.


 {{{
 ffprobe -loglevel debug -rw_timeout 50 rtp://192.168.2.78:7878
 ffprobe version 4.4 Copyright (c) 2007-2021 the FFmpeg developers
   built with gcc 8 (GCC)
   configuration: --extra-ldflags='-L/mnt/swdevel/Torque/lib3p64 -L/lib'
 --extra-cflags='-I/mnt/swdevel/Torque/include -I/include' --disable-static
 --enable-shared --disable-cuda --disable-cuvid --disable-nvenc --enable-
 libx264 --enable-gpl --enable-libfreetype --enable-libfontconfig
 --disable-indev=android_camera --disable-indev=sndio --disable-
 outdev=sndio --disable-outdev=xv --enable-libv4l2 --enable-vaapi --enable-
 libmfx --enable-libdrm --enable-indev=alsa --enable-indev=v4l2 --enable-
 libsoxr --bindir=/mnt/swdevel/Torque/bin64
 --datadir=/mnt/swdevel/Torque/ext/ffmpeg-build
 --docdir=/mnt/swdevel/Torque/ext/doc --libdir=/mnt/swdevel/Torque/lib3p64
 --shlibdir=/mnt/swdevel/Torque/lib3p64
 --incdir=/mnt/swdevel/Torque/ext/extinclude/ffmpeg
 --mandir=/mnt/swdevel/Torque/ext/ffmpeg-build64 --enable-libxcoder
 --disable-doc --enable-x86asm --extra-ldflags='-lm -L/lib64 -ldrm'
 --enable-pthreads --extra-libs=-lpthread --disable-debug
   libavutil      56. 70.100 / 56. 70.100
   libavcodec     58.134.100 / 58.134.100
   libavformat    58. 76.100 / 58. 76.100
   libavdevice    58. 13.100 / 58. 13.100
   libavfilter     7.110.100 /  7.110.100
   libswscale      5.  9.100 /  5.  9.100
   libswresample   3.  9.100 /  3.  9.100
   libpostproc    55.  9.100 / 55.  9.100
 [rtp @ 0x2200d00] No default whitelist set
 [udp @ 0x2201880] No default whitelist set
 [udp @ 0x2201880] end receive buffer size reported is 786432
 [udp @ 0x2211dc0] No default whitelist set
 [udp @ 0x2211dc0] end receive buffer size reported is 786432
 === HANGS HERE ===

 }}}



 {{{
 # uname -a
 Linux 5.15.26 #2 SMP Tue Mar 8 13:31:54 +08 2022 x86_64 x86_64 x86_64
 GNU/Linux

 }}}

 Using "strace" shows the process is stuck in a POLL loop.

 {{{
 # strace -p 4223
 strace: Process 4223 attached
 restart_syscall(<... resuming interrupted read ...>) = 0
 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 100) = 0 (Timeout)
 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 100) = 0 (Timeout)
 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 100) = 0 (Timeout)

 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9729>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list