How to check if a shared library is installed?

You can use:

ldconfig -p | grep libavfilter

If there is no output library is not installed. I am not sure if this is 100% reliable.
At least in man page of ldconfig for option -p:

Print the lists of directories and candidate libraries stored in the current cache.


Look in /usr/lib and /usr/lib64 for those libraries. If you find one of the ones ffmpeg is missing, symlink it so it exists in the other directory.

You can also run a find for 'libm.so.6' and see where that file is at. There is a good chance ffmpeg is looking in the same directory for the missing ones. Symlink them over there once you find them.

If they don't exist on your server, install the package that includes them. If they are included in ffmpeg package but you don't see them, try reinstalling ffmpeg.


Use the command file `which ffmpeg` to determine whether ffmpeg is compiled for 64-bit or 32-bit. If it is 64-bit, look for the libraries in /usr/lib64. If it is 32-bit then look for the libraries in /usr/lib. If ffmpeg is statically linked then it doesn't matter...it won't use any shared libraries and the output of file will tell you that as well.

Do not symbolically link libraries between /usr/lib and /usr/lib64. This will not help you because a 64-bit program will need 64-bit libraries (found in /usr/lib64) and a 32-bit program will need 32-bit libraries (found in /usr/lib32).

If the libraries don't exist on your server, install the package that provides them (making sure you choose the 32-bit package if ffmpeg is 32-bit, etc).