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 acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.