[FFmpeg-user] How can I see what version of a library is linked? (e.g. libmp3lame)

Danny Mitchell fishcustard at gmail.com
Tue Jun 12 10:35:46 EEST 2018


On 12/06/2018, Zak <ffmpeg-user-email at m.allo.ws> wrote:
> Dear FFmpeg User Mailing List,
>
> The versions of certain libraries are printed in the banner, such as
> libavcodec.
>
> I am curious how to find information about linked libraries, such as
> libmp3lame, the LAME MP3 encoder. I would like to know:
>
> 1. Was it statically or dynamically linked?
>
> 2. If dynamically linked, where is the libmp3lame.so file?
>
> (I think the answer is /usr/local/libmp3lame.dylib in my case on my Mac,
> but I want FFmpeg to tell me. I am not on Kubuntu right now, but I can
> probably find it on Kubuntu also, and I'm guessing it is an .so and not
> a .dylib file on that OS.)
>
> 3. What is the version of the linked library? Here is how I can ask LAME
> itself, from the LAME CLI front-end for libmp3lame:
>
> bash$ lame --version
>
> LAME 64bits version 3.100 (http://lame.sf.net)
>
> -----
>
> Here is my best guess:
>
> bash$ ffmpeg -h encoder=libmp3lame
>
> Encoder libmp3lame [libmp3lame MP3 (MPEG audio layer 3)]:
>      General capabilities: delay small
>      Threading capabilities: none
>      Supported sample rates: 44100 48000 32000 22050 24000 16000 11025
> 12000 8000
>      Supported sample formats: s32p fltp s16p
>      Supported channel layouts: mono stereo
> libmp3lame encoder AVOptions:
>    -reservoir         <boolean>    E...A... use bit reservoir (default true)
>    -joint_stereo      <boolean>    E...A... use joint stereo (default true)
>    -abr               <boolean>    E...A... use ABR (default false)
>
> This looks promising, but it turns out all of that information is
> hardcoded in this file:
>
> ffmpeg/libavcodec/libmp3lame.c
>
> You can even change this string:
>
> AVCodec ff_libmp3lame_encoder = {
>    // ...snip...
>    .long_name = "libmp3lame MP3 (MPEG audio layer 3)"
>
> ...and the FFmpeg help will display whatever you type. It is not pulling
> it from the library.
>
> This is intended to be a general question, so I am not going to include
> a specific FFmpeg banner because I use FFmpeg on two operating systems
> (MacOS 10.12 and Kubuntu) and I have multiple versions of FFmpeg.
>
> Thank you,
>
> Zak F.
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".



If you're on a Unix-like system (including MacOS and *Ubuntu) use
ldd <executable>
where <executable> is the path to the executable you want to examine. Example:

$ ldd /usr/local/bin/ffmpeg
        linux-vdso.so.1 =>  (0x00007fff279ff000)
        libavdevice.so.55 => /usr/local/lib/libavdevice.so.55
(0x00002ac9b97e7000)
        libavfilter.so.4 => /usr/local/lib/libavfilter.so.4 (0x00002ac9b99fe000)
        libavformat.so.55 => /usr/local/lib/libavformat.so.55
(0x00002ac9b9cdf000)
        libavcodec.so.55 => /usr/local/lib/libavcodec.so.55 (0x00002ac9ba085000)
        libswresample.so.0 => /usr/local/lib/libswresample.so.0
(0x00002ac9bb1f0000)
        libswscale.so.2 => /usr/local/lib/libswscale.so.2 (0x00002ac9bb407000)
        libavutil.so.52 => /usr/local/lib/libavutil.so.52 (0x00002ac9bb67d000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00002ac9bb8d3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00002ac9bbcb1000)
        libm.so.6 => /lib/libm.so.6 (0x00002ac9bbecd000)
        libvdpau.so.1 => /usr/lib/libvdpau.so.1 (0x00002ac9bc150000)
        libc.so.6 => /lib/libc.so.6 (0x00002ac9bc351000)
        libXv.so.1 => /usr/lib/libXv.so.1 (0x00002ac9bc6b3000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00002ac9bc8b9000)
        libjack.so.0 => /usr/lib/libjack.so.0 (0x00002ac9bcacb000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0x00002ac9bcd0e000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x00002ac9bcff4000)
        libdc1394.so.22 => /usr/lib/libdc1394.so.22 (0x00002ac9bd2ad000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00002ac9bd522000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00002ac9bd778000)
        libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00002ac9bdb19000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00002ac9bdd29000)
        libva.so.1 => /usr/lib/libva.so.1 (0x00002ac9bdf40000)
        libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00002ac9be146000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00002ac9be416000)
        libtheoraenc.so.1 => /usr/lib/libtheoraenc.so.1 (0x00002ac9be447000)
        libtheoradec.so.1 => /usr/lib/libtheoradec.so.1 (0x00002ac9be686000)
        libspeex.so.1 => /usr/lib/libspeex.so.1 (0x00002ac9be89f000)
        libschroedinger-1.0.so.0 => /usr/lib/libschroedinger-1.0.so.0
(0x00002ac9beab9000)
        libopenjpeg.so.2 => /usr/lib/libopenjpeg.so.2 (0x00002ac9bed63000)
        libgsm.so.1 => /usr/lib/libgsm.so.1 (0x00002ac9bef83000)
        librt.so.1 => /lib/librt.so.1 (0x00002ac9bf191000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00002ac9bf399000)
        libdl.so.2 => /lib/libdl.so.2 (0x00002ac9bf5b5000)
        /lib64/ld-linux-x86-64.so.2 (0x00002ac9b95c7000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac9bf7ba000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac9bface000)
        libdirectfb-1.2.so.9 => /usr/lib/libdirectfb-1.2.so.9
(0x00002ac9bfce5000)
        libfusion-1.2.so.9 => /usr/lib/libfusion-1.2.so.9 (0x00002ac9bff67000)
        libdirect-1.2.so.9 => /usr/lib/libdirect-1.2.so.9 (0x00002ac9c0171000)
        libvga.so.1 => /usr/lib/libvga.so.1 (0x00002ac9c0388000)
        libraw1394.so.11 => /usr/lib/libraw1394.so.11 (0x00002ac9c05e7000)
        libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0x00002ac9c07f5000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0x00002ac9c0a0d000)
        liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x00002ac9c0a15000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00002ac9c0c6f000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00002ac9c0e73000)
        libx86.so.1 => /lib/libx86.so.1 (0x00002ac9c1078000)
        libudev.so.0 => /lib/libudev.so.0 (0x00002ac9c129b000)

HTH


More information about the ffmpeg-user mailing list