I built (from source) a newer version of libavcodec.so, libavformat.so, etc. than provided by the Ubuntu repositories. (My newer versions are installed in /usr/local/lib). Using ldd /usr/bin/vlc to list the shared library dependencies of VLC returns a small list:

linux-vdso.so.1 =>  (0x00007fff219fe000)
libvlc.so.5 => /usr/lib/libvlc.so.5 (0x00007fb0622ca000)
libvlccore.so.5 => /usr/lib/libvlccore.so.5 (0x00007fb061fe8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb061dca000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb061bc6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb0617fe000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fb0615b8000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb0613b0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb0610ac000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb062512000)

Notably, libavcodec.so is absent, meaning that VLC finds the library at runtime (rather than at compile-time). Is there a way to tell VLC to point to my newer version of libavcodec.so, libavformat.so and other related libraries (all located in /usr/local/lib)?

This is because I am trying to use FFmpeg and Ubuntu provides Libav. Libav doesn't have an MSS2 decoder but FFmpeg does. As long as VLC links to Libav, I can't play my video files that use MSS2 with VLC.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.