#11276: Streams quality affected if one of them is sent to non-existing IP 
address
on your local LAN
-------------------------------------+-------------------------------------
             Reporter:  alex_vs      |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  rtp,non-     |               Blocked By:
  existing ip                        |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 When encoding multiple RTP streams, and one of them happens to be using
 non-existing local IP address as destination, then all the rest streams
 start skipping packets approximately every 3-4 seconds.

 More details:
 1. Happens when using our own wrapper library, but reproduced also using
 FFMPEG standalone commands (see below)

 2. Does not happen when the non existing IP address is from another
 subnet-i.e. would happen if you use rtp://192.168.1.123 for network
 192.168.1.1/24), but would work if using non-existing rtp://192.168.5.123

 3. Initially suspected that it could be due to missing RTCP response from
 the destination, therefore attempted FFMPEG command with RTCP disabled,
 but that did not help.


 How to reproduce:

 Command with two outputs:
 {{{

 % arecord -D plughw:0,0 -r 44100 -c 2 -f S16_LE | ffmpeg -i - -c:a mp3
 -b:a 384k -f rtp rtp://239.1.1.1:5767 -f rtp rtp://192.168.1.164:8989

 }}}

 Command with output replication (using tee output)

 {{{

 % arecord -D plughw:0,0 -r 44100 -c 2 -f S16_LE | ffmpeg -i - -c:a mp3
 -b:a 384k -f tee -map 0:a
 
"[f=rtp:onfail=ignore]rtp://239.1.1.1:5767|[f=rtp:onfail=ignore]rtp://192.168.1.164:8989"

 }}}

 In both cases the multicast stream starts suffering  when the second IP
 address (1.164)  is replaced with nonexistent IP on the LAN (1.123)


 Other notes:

 1. We have found that using arecord and piping it to ffmpeg is a bit more
 efficient than using alsa input directly from ffmpeg
 2. Happens also with other codecs (ex. G.711)
 3. Same thing happens also if you start a second ffmpeg encoding process-
 its stream(s) output(s) are also affected.

 FFMPEG Version:

 {{{
 ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 9.3.0 (GCC)
   configuration: --disable-stripping --enable-pic --enable-shared
 --enable-pthreads --enable-nonfree --cross-prefix=arm-oe-linux-gnueabi-
 --ld='arm-oe-linux-gnueabi-gcc -mfpu=neon-vfpv4 -mfloat-abi=hard
 -mcpu=cortex-a7 --sysroot=/recipe-sysroot' --cc='arm-oe-linux-gnueabi-gcc
 -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/recipe-
 sysroot' --cxx='arm-oe-linux-gnueabi-g++ -mfpu=neon-vfpv4 -mfloat-abi=hard
 -mcpu=cortex-a7 --sysroot=/recipe-sysroot' --arch=arm --target-os=linux
 --enable-cross-compile --extra-cflags=' -O2 -pipe -g -feliminate-unused-
 debug-types -fmacro-prefix-map==/usr/src/debug/ffmpeg/4.2.2-r0 -fdebug-
 prefix-map==/usr/src/debug/ffmpeg/4.2.2-r0 -fdebug-prefix-map=/recipe-
 sysroot= -fdebug-prefix-map=/recipe-sysroot-native= -mfpu=neon-vfpv4
 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/recipe-sysroot' --extra-
 ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed' --sysroot=/recipe-
 sysroot --libdir=/usr/lib --shlibdir=/usr/lib --datadir=/usr/share/ffmpeg
 --disable-mipsdsp --disable-mipsdspr2 --cpu=cortex-a7 --pkg-config=pkg-
 config --disable-encoder=aac --disable-decoder=aac --disable-
 decoder=aac_fixed --enable-alsa --enable-avcodec --enable-avdevice
 --enable-avfilter --enable-avformat --enable-avresample --enable-bzlib
 --enable-libfdk-aac --enable-nonfree --enable-gpl --disable-libgsm
 --disable-indev=jack --enable-libopus --enable-libsrt --disable-libvorbis
 --enable-lzma --disable-libmfx --enable-libmp3lame --enable-openssl
 --enable-postproc --disable-sdl2 --disable-libspeex --enable-swresample
 --enable-swscale --enable-libtheora --disable-vaapi --disable-vdpau
 --disable-libvpx --enable-libx264 --disable-libx265 --disable-libxcb
 --disable-outdev=xv --enable-zlib
   libavutil      56. 31.100 / 56. 31.100
   libavcodec     58. 54.100 / 58. 54.100
   libavformat    58. 29.100 / 58. 29.100
   libavdevice    58.  8.100 / 58.  8.100
   libavfilter     7. 57.100 /  7. 57.100
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  5.100 /  5.  5.100
   libswresample   3.  5.100 /  3.  5.100
   libpostproc    55.  5.100 / 55.  5.100
 }}}

 Linux Kernel version:

 {{{
 Linux barix-ipam400 5.15.88-yocto-standard #1 SMP PREEMPT Wed May 29
 09:26:58 UTC 2024 armv7l GNU/Linux
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11276>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to