#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".