CESNET / UltraGrid

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

./hd-rum-transcode: error while loading shared libraries: libavcodec.so.60: cannot open shared object file: No such file or directory #387

Closed alatteri closed 1 month ago

alatteri commented 1 month ago

226c17f

hd-rum-transcode fails to run with the above area, even if I only want to use it as a packet only reflector on an Ubuntu minimal server. This really shouldn't have such a dependency in this type of scenario.

alatteri commented 1 month ago

even after installing apt-get install libavcodec-dev ffmpeg

still fails.

./hd-rum-transcode: error while loading shared libraries: libavcodec.so.60: cannot open shared object file: No such file or directory

MartinPulec commented 1 month ago

It actually looks the executable being linked with a libavcodec version that is (no longer?) in system. What does dpkg -l libavcodec60 say? (It should be a dependency for libavcodec-dev in Ubuntu 23.10, 24.04 and 24.10.) If not installed, you'll perhaps need to re-link the executables.

if I only want to use it as a packet only reflector on an Ubuntu minimal server

correct, the transcoding reflector depends on compressions as well. The non-transcoding one doesn't.

alatteri commented 1 month ago

Hi Martin,

Sorry, I forgot to update this issue. I actually had compiled hd-rum on Ubuntu 24.04, and then moved it to a 22.04 machine. I'll re-try today running it on 24.04 minimal reflector to see if it still has the libavcodec dependency.

alatteri commented 1 month ago

OK...I've now tested compiling UG/hg-rum on machineA (Ubuntu 24.04) which has the full stack, and moving the hd-rum binary to machineB (Ubuntu Server 24.04 minimal) and the original error is still valid. hd-rum has a dependency on libavcodec and several other components even though I want to use it as reflector only, not transcoding.

I stopped after trying to meet a few dependencies.

administrator@test:~$ ./hd-rum-transcode 
./hd-rum-transcode: error while loading shared libraries: libavcodec.so.60: cannot open shared object file: No such file or directory
administrator@test:~$ sudo apt-get install libavcodec-dev
administrator@test:~$ ./hd-rum-transcode 
./hd-rum-transcode: error while loading shared libraries: libswscale.so.7: cannot open shared object file: No such file or directory
sudo apt-get install libswscale-dev
administrator@test:~$ ./hd-rum-transcode 
./hd-rum-transcode: error while loading shared libraries: libGLEW.so.2.2: cannot open shared object file: No such file or directory
mpiatka commented 1 month ago

Well, if you want to build a version that disables all features and has very few dependencies as a result, you can try passing --disable-all --enable-reflector to autogen.sh during compilation.

alatteri commented 1 month ago

Thank you.