CESNET / UltraGrid

UltraGrid low-latency audio and video network transmission system
http://www.ultragrid.cz
Other
507 stars 53 forks source link

Ubuntu 19.04 audio problem #21

Closed alatteri closed 5 years ago

alatteri commented 5 years ago

I did an in-place upgrade to Ubuntu 19.04 today. I did a fresh git pull; make clean and re-compile.

Same hardware & commands now core dump out.

ultragrid@slumjuice:~$ /usr/local/bin/uv -t v4l2:device=/dev/video0:codec=BGR3:size=1920x1080 -c libavcodec:codec=H.264:bitrate=30M -s alsa:hw:CARD=HDMI,DEV=0 --audio-capture-format channels=2 --audio-codec AAC:bitrate=156000 -f A:mult:3 -f v:rs:200:240 192.168.101.29 UltraGrid 1.5 (master rev 491756d3 built Apr 18 2019 16:28:30)

Display device : none Capture device : v4l2 Audio capture : alsa:hw:CARD=HDMI,DEV=0 Audio playback : none MTU : 1500 B Video compression: libavcodec:codec=H.264:bitrate=30M Audio codec : AAC Network protocol : UltraGrid RTP Audio FEC : mult:3 Video FEC : rs:200:240

uv: src/audio/codec.cpp:376: int get_audio_codec_bitrate(const char*): Assertion `ret > 0 && ret <= INT_MAX' failed. Aborted (core dumped)

MartinPulec commented 5 years ago

I've recheckd it with current UltraGrid version with following command (stripping the video part):

uv -s testcard --audio-capture-format channels=2 --audio-codec AAC:bitrate=156000 -f A:mult:3

Is it reproducible with current master branch (bcf2e764) and the above command?

Thanks, Martin

alatteri commented 5 years ago

Hey Martin... I got jammed up with a few projects, I won't be able to test this for another week or two.

alatteri commented 5 years ago

OK I was able to try this again on actual hardware. Intel NUC NUC8i7BEH. Ubuntu Server 19.04 Linux slumjuice 5.0.0-23-generic #24-Ubuntu SMP Mon Jul 29 15:36:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

fresh install of OS, fresh compile of UV `ultragrid@slumjuice:~$ uv -s testcard --audio-capture-format channels=2 --audio-codec AAC:bitrate=156000 -f A:mult:3 192.168.101.29 UltraGrid 1.5+ (tags/nightly rev 2059a941 built Aug 8 2019 04:58:00)

Display device : none Capture device : none Audio capture : testcard Audio playback : none MTU : 1500 B Video compression: none Audio codec : AAC Network protocol : UltraGrid RTP Audio FEC : mult:3 Video FEC : none

uv: src/audio/codec.cpp:389: int get_audio_codec_bitrate(const char*): Assertion ret > 0 && ret <= INT_MAX' failed.

Compiled via these steps: apt install build-essential autoconf automake pkg-config libtool git cmake freeglut3 uuid-dev zip libssl-dev libv4l-dev libsdl2-dev apt-get install libavcodec-dev

git clone https://github.com/CESNET/UltraGrid.git cd UltraGrid && git submodule init && git submodule update cd cineform-sdk/ && cmake . && make CFHDCodecStatic cd ~/UltraGrid ./autogen.sh make sudo make install

alatteri commented 5 years ago

This works though ultragrid@slumjuice:~/UltraGrid$ uv -s testcard --audio-capture-format channels=2 192.168.101.29

So it seems to be a problem with audio compression. Maybe the Ubuntu 19 version of Libavcodec has an issue?

alatteri commented 5 years ago

Interesting, if I remove the bitrate flag, it work, while still keeping the codec section.

`ultragrid@slumjuice:~$ uv -s testcard --audio-capture-format channels=2 --audio-codec AAC 192.168.101.29 UltraGrid 1.5+ (tags/nightly rev 2059a941 built Aug 8 2019 04:58:00)

Display device : none Capture device : none Audio capture : testcard Audio playback : none MTU : 1500 B Video compression: none Audio codec : AAC Network protocol : UltraGrid RTP Audio FEC : none Video FEC : none

[lavc] Using audio encoder: aac Created new RTP session with SSRC 0x3d5be102. [Audio testcard] Generating 1000 Hz (-18.00 RMS dBFS) sine (2 channels, 2 Bps, 48000 Hz, codec: PCM, frames per packet: 1920). Display initialized-none Video capture initialized-none Created new RTP session with SSRC 0x365e29a4. Audio sending started. [lavc] Using audio encoder: aac [aac @ 0x563e8cd69200] Qavg: 56254.730 [aac @ 0x7f36c40066c0] Qavg: 56254.730 Exit `

mliska commented 5 years ago

`ultragrid@slumjuice:~$ uv -s testcard --audio-capture-format channels=2 --audio-codec AAC:bitrate=156000 -f A:mult:3 192.168.101.29 UltraGrid 1.5+ (tags/nightly rev 2059a94 built Aug 8 2019 04:58:00)

Display device : none Capture device : none Audio capture : testcard Audio playback : none MTU : 1500 B Video compression: none Audio codec : AAC Network protocol : UltraGrid RTP Audio FEC : mult:3 Video FEC : none

uv: src/audio/codec.cpp:389: int get_audio_codec_bitrate(const char*): Assertion ret > 0 && ret <= INT_MAX' failed.

Hi Alan, thanks for reporting. This was actually a bug in the audio codec parameter parsing in UltraGird. It should be fixed in commit 9006d07.

Thanks, Milos

alatteri commented 5 years ago

I've tested this commit. Looks good. Closing this issue again. Thanks.