Opened 7 hours ago
#11276 new defect
Streams quality affected if one of them is sent to non-existing IP address on your local LAN
Reported by: | alex_vs | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | unspecified | Keywords: | rtp, non-existing ip |
Cc: | alex_vs | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
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:
- Happens when using our own wrapper library, but reproduced also using FFMPEG standalone commands (see below)
- 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
- 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:
- We have found that using arecord and piping it to ffmpeg is a bit more efficient than using alsa input directly from ffmpeg
- Happens also with other codecs (ex. G.711)
- 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
Note:
See TracTickets
for help on using tickets.