[FFmpeg-trac] #10013(undetermined:new): [regression] `ffmpeg` 5.0.1 crashes when using domain in URL when uploading to RTMP endpoint

FFmpeg trac at avcodec.org
Tue Nov 8 10:12:05 EET 2022


#10013: [regression] `ffmpeg` 5.0.1 crashes when using domain in URL when uploading
to RTMP endpoint
-------------------------------------+-------------------------------------
             Reporter:  Jesús        |                    Owner:  (none)
  Leganés-Combarro                   |
                 Type:  defect       |                   Status:  new
             Priority:  important    |                Component:
                                     |  undetermined
              Version:  unspecified  |               Resolution:
             Keywords:  RTMP crash   |               Blocked By:
  regression                         |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by Jesús Leganés-Combarro):

 I've simplified the command (I did it this way to don't need to deal with
 libx264 library on the custom compilation), and with prebuild image of
 5.0.1-static still fails, so it's easier to replicate:

 piranna at ThinkPad-T16:/run/user/1000/LL-HLS-streamer_bttf$ node_modules
 /ffmpeg-static/ffmpeg -re -f lavfi -i sine=frequency=1000 -acodec aac
 -f flv        rtmp://localhost:1935 -v 9 -loglevel 99
 ffmpeg version 5.0.1-static https://johnvansickle.com/ffmpeg/  Copyright
 (c) 2000-2022 the FFmpeg developers
   built with gcc 8 (Debian 8.3.0-6)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio
 --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp
 --enable-libgme --enable-gray --enable-libaom --enable-libfribidi
 --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt
 --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264
 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid
 --enable-libzvbi --enable-libzimg
   libavutil      57. 17.100 / 57. 17.100
   libavcodec     59. 18.100 / 59. 18.100
   libavformat    59. 16.100 / 59. 16.100
   libavdevice    59.  4.100 / 59.  4.100
   libavfilter     8. 24.100 /  8. 24.100
   libswscale      6.  4.100 /  6.  4.100
   libswresample   4.  3.100 /  4.  3.100
   libpostproc    56.  3.100 / 56.  3.100
 Splitting the commandline.
 Reading option '-re' ... matched as option 're' (read input at native
 frame rate; equivalent to -readrate 1) with argument '1'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'lavfi'.
 Reading option '-i' ... matched as input url with argument
 'sine=frequency=1000'.
 Reading option '-acodec' ... matched as option 'acodec' (force audio codec
 ('copy' to copy stream)) with argument 'aac'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'flv'.
 Reading option 'rtmp://localhost:1935' ... matched as output url.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input url sine=frequency=1000.
 Applying option re (read input at native frame rate; equivalent to
 -readrate 1) with argument 1.
 Applying option f (force format) with argument lavfi.
 Successfully parsed a group of options.
 Opening an input file: sine=frequency=1000.
 detected 16 logical cores
 [Parsed_sine_0 @ 0x6f0e100] Setting 'frequency' to value '1000'
 [AVFilterGraph @ 0x6f0c340] query_formats: 2 queried, 3 merged, 0 already
 done, 0 delayed
 [lavfi @ 0x6f0b7c0] All info found
 [lavfi @ 0x6f0b7c0] stream 0: start_time: 0 duration: NOPTS
 [lavfi @ 0x6f0b7c0] format: start_time: 0 duration: NOPTS (estimate from
 bit rate) bitrate=705 kb/s
 Input #0, lavfi, from 'sine=frequency=1000':
   Duration: N/A, start: 0.000000, bitrate: 705 kb/s
   Stream #0:0, 1, 1/44100: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
 Successfully opened the file.
 Parsing a group of options: output url rtmp://localhost:1935.
 Applying option acodec (force audio codec ('copy' to copy stream)) with
 argument aac.
 Applying option f (force format) with argument flv.
 Successfully parsed a group of options.
 Opening an output file: rtmp://localhost:1935.
 [rtmp @ 0x6f258c0] No default whitelist set
 [tcp @ 0x6f25fc0] No default whitelist set
 Violación de segmento (`core' generado)


 I've compiled release/5.1 branch and executed this simplified command, and
 with version 5.1.1 it's working, so not sure if it got fixed, or it's some
 issue regarding the compilation of the static binary:

 piranna at ThinkPad-T16:~/Trabajo/ffmpeg$ ./ffmpeg -re -f lavfi -i
 sine=frequency=1000 -acodec aac -f flv rtmp://localhost:1935 -v 9
 -loglevel 99
 ffmpeg version n5.1.2-7-ga6e26053c2 Copyright (c) 2000-2022 the FFmpeg
 developers
   built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04)
   configuration:
   libavutil      57. 28.100 / 57. 28.100
   libavcodec     59. 37.100 / 59. 37.100
   libavformat    59. 27.100 / 59. 27.100
   libavdevice    59.  7.100 / 59.  7.100
   libavfilter     8. 44.100 /  8. 44.100
   libswscale      6.  7.100 /  6.  7.100
   libswresample   4.  7.100 /  4.  7.100
 Splitting the commandline.
 Reading option '-re' ... matched as option 're' (read input at native
 frame rate; equivalent to -readrate 1) with argument '1'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'lavfi'.
 Reading option '-i' ... matched as input url with argument
 'sine=frequency=1000'.
 Reading option '-acodec' ... matched as option 'acodec' (force audio codec
 ('copy' to copy stream)) with argument 'aac'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'flv'.
 Reading option 'rtmp://localhost:1935' ... matched as output url.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input url sine=frequency=1000.
 Applying option re (read input at native frame rate; equivalent to
 -readrate 1) with argument 1.
 Applying option f (force format) with argument lavfi.
 Successfully parsed a group of options.
 Opening an input file: sine=frequency=1000.
 detected 16 logical cores
 [Parsed_sine_0 @ 0x559914f8b040] Setting 'frequency' to value '1000'
 [AVFilterGraph @ 0x559914f89200] query_formats: 2 queried, 3 merged, 0
 already done, 0 delayed
 [lavfi @ 0x559914f88500] All info found
 [lavfi @ 0x559914f88500] stream 0: start_time: 0 duration: NOPTS
 [lavfi @ 0x559914f88500] format: start_time: 0 duration: NOPTS (estimate
 from bit rate) bitrate=705 kb/s
 Input #0, lavfi, from 'sine=frequency=1000':
   Duration: N/A, start: 0.000000, bitrate: 705 kb/s
   Stream #0:0, 1, 1/44100: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
 Successfully opened the file.
 Parsing a group of options: output url rtmp://localhost:1935.
 Applying option acodec (force audio codec ('copy' to copy stream)) with
 argument aac.
 Applying option f (force format) with argument flv.
 Successfully parsed a group of options.
 Opening an output file: rtmp://localhost:1935.
 [rtmp @ 0x559914fa2700] No default whitelist set
 [tcp @ 0x559914fa1b00] No default whitelist set
 [tcp @ 0x559914fa1b00] Original list of addresses:
 [tcp @ 0x559914fa1b00] Address 127.0.0.1 port 1935
 [tcp @ 0x559914fa1b00] Interleaved list of addresses:
 [tcp @ 0x559914fa1b00] Address 127.0.0.1 port 1935
 [tcp @ 0x559914fa1b00] Starting connection attempt to 127.0.0.1 port 1935
 [tcp @ 0x559914fa1b00] Connection attempt to 127.0.0.1 port 1935 failed:
 Connection refused
 [tcp @ 0x559914fa1b00] Connection to tcp://localhost:1935?tcp_nodelay=0
 failed: Connection refused
 [rtmp @ 0x559914fa2700] Cannot open connection
 tcp://localhost:1935?tcp_nodelay=0
 rtmp://localhost:1935: Connection refused


 The diff on the outputs are these lines:

 [tcp @ 0x559914fa1b00] Original list of addresses:
 [tcp @ 0x559914fa1b00] Address 127.0.0.1 port 1935
 [tcp @ 0x559914fa1b00] Interleaved list of addresses:
 [tcp @ 0x559914fa1b00] Address 127.0.0.1 port 1935
 [tcp @ 0x559914fa1b00] Starting connection attempt to 127.0.0.1 port 1935
 [tcp @ 0x559914fa1b00] Connection attempt to 127.0.0.1 port 1935 failed:
 Connection refused
 [tcp @ 0x559914fa1b00] Connection to tcp://localhost:1935?tcp_nodelay=0
 failed: Connection refused
 [rtmp @ 0x559914fa2700] Cannot open connection
 tcp://localhost:1935?tcp_nodelay=0
 rtmp://localhost:1935: Connection refused


 So it seems the issue happens when doing the conversion from the domain to
 the IP. Any clue what could be happening? How can we proceed from here?
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10013#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list