dirkvdb / ffmpegthumbnailer

Lightweight video thumbnailer that can be used by file managers to create thumbnails for video files
GNU General Public License v2.0
489 stars 70 forks source link

Add a flag that will allow for a static build? #190

Open sxiii opened 3 years ago

sxiii commented 3 years ago

FFMPEG has a static build options.

It would be so cool if ffmpegthumnailer also had some (and then I would try to build it in Alpine Docker container).

Thanks

dirkvdb commented 3 years ago

These options are available

option(ENABLE_SHARED "Build shared library" ON) option(ENABLE_STATIC "Build static library" OFF)

sxiii commented 3 years ago

Hi @dirkvdb . Thanks for fast answer. I've tried this flags:

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GIO=ON -DENABLE_THUMBNAILER=ON -DENABLE_SHARED=OFF -DENABLE_STATIC=ON ..

However, after 'make-ing' the build of ffmpegthumbnailer on ubuntu, I did checked for the results:

$ ldd ./ffmpegthumbnailer 
    linux-vdso.so.1 (0x00007fff74d33000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d42963000)
    libavformat.so.58 => /lib/x86_64-linux-gnu/libavformat.so.58 (0x00007f9d426eb000)
    libavcodec.so.58 => /lib/x86_64-linux-gnu/libavcodec.so.58 (0x00007f9d4112e000)
    libavutil.so.56 => /lib/x86_64-linux-gnu/libavutil.so.56 (0x00007f9d41005000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9d40fe2000)
    libavfilter.so.7 => /lib/x86_64-linux-gnu/libavfilter.so.7 (0x00007f9d40c62000)
    libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f9d40c28000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9d40a47000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9d408f8000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9d408dd000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d406eb000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9d429bb000)
    libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f9d40531000)
    libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f9d4051c000)
    libgme.so.0 => /lib/x86_64-linux-gnu/libgme.so.0 (0x00007f9d404cf000)
    libopenmpt.so.0 => /lib/x86_64-linux-gnu/libopenmpt.so.0 (0x00007f9d402e2000)
    libchromaprint.so.1 => /lib/x86_64-linux-gnu/libchromaprint.so.1 (0x00007f9d402cc000)
    libbluray.so.2 => /lib/x86_64-linux-gnu/libbluray.so.2 (0x00007f9d4027b000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9d4025f000)
    libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f9d40087000)
    libssh-gcrypt.so.4 => /lib/x86_64-linux-gnu/libssh-gcrypt.so.4 (0x00007f9d3fffb000)
    libswresample.so.3 => /lib/x86_64-linux-gnu/libswresample.so.3 (0x00007f9d3ffd9000)
    libvpx.so.6 => /lib/x86_64-linux-gnu/libvpx.so.6 (0x00007f9d3fda1000)
    libwebpmux.so.3 => /lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007f9d3fb97000)
    libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f9d3f92e000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f9d3f903000)
    librsvg-2.so.2 => /lib/x86_64-linux-gnu/librsvg-2.so.2 (0x00007f9d3f013000)
    libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f9d3efb3000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f9d3ee8a000)
    libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f9d3ed67000)
    libzvbi.so.0 => /lib/x86_64-linux-gnu/libzvbi.so.0 (0x00007f9d3ecd8000)
    libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007f9d3eccb000)
    libaom.so.0 => /lib/x86_64-linux-gnu/libaom.so.0 (0x00007f9d3e82d000)
    libcodec2.so.0.9 => /lib/x86_64-linux-gnu/libcodec2.so.0.9 (0x00007f9d3da49000)
    libgsm.so.1 => /lib/x86_64-linux-gnu/libgsm.so.1 (0x00007f9d3da3a000)
    libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007f9d3d9c2000)
    libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f9d3d96c000)
    libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007f9d3d90b000)
    libshine.so.3 => /lib/x86_64-linux-gnu/libshine.so.3 (0x00007f9d3d700000)
    libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007f9d3d6e2000)
    libtheoraenc.so.1 => /lib/x86_64-linux-gnu/libtheoraenc.so.1 (0x00007f9d3d6a5000)
    libtheoradec.so.1 => /lib/x86_64-linux-gnu/libtheoradec.so.1 (0x00007f9d3d685000)
    libtwolame.so.0 => /lib/x86_64-linux-gnu/libtwolame.so.0 (0x00007f9d3d65f000)
    libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f9d3d62f000)
    libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f9d3d584000)
    libwavpack.so.1 => /lib/x86_64-linux-gnu/libwavpack.so.1 (0x00007f9d3d558000)
    libx264.so.155 => /lib/x86_64-linux-gnu/libx264.so.155 (0x00007f9d3d29a000)
    libx265.so.179 => /lib/x86_64-linux-gnu/libx265.so.179 (0x00007f9d3c32c000)
    libxvidcore.so.4 => /lib/x86_64-linux-gnu/libxvidcore.so.4 (0x00007f9d3c219000)
    libva.so.2 => /lib/x86_64-linux-gnu/libva.so.2 (0x00007f9d3c1ee000)
    libva-drm.so.2 => /lib/x86_64-linux-gnu/libva-drm.so.2 (0x00007f9d3c1e9000)
    libva-x11.so.2 => /lib/x86_64-linux-gnu/libva-x11.so.2 (0x00007f9d3c1e1000)
    libvdpau.so.1 => /lib/x86_64-linux-gnu/libvdpau.so.1 (0x00007f9d3c1db000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f9d3c09e000)
    libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f9d3c088000)
    libOpenCL.so.1 => /lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007f9d3be7d000)
    libswscale.so.5 => /lib/x86_64-linux-gnu/libswscale.so.5 (0x00007f9d3bde8000)
    libpostproc.so.55 => /lib/x86_64-linux-gnu/libpostproc.so.55 (0x00007f9d3bdc6000)
    libbs2b.so.0 => /lib/x86_64-linux-gnu/libbs2b.so.0 (0x00007f9d3bdbf000)
    liblilv-0.so.0 => /lib/x86_64-linux-gnu/liblilv-0.so.0 (0x00007f9d3bda4000)
    librubberband.so.2 => /lib/x86_64-linux-gnu/librubberband.so.2 (0x00007f9d3bd65000)
    libmysofa.so.1 => /lib/x86_64-linux-gnu/libmysofa.so.1 (0x00007f9d3bd54000)
    libflite_cmu_us_awb.so.1 => /lib/x86_64-linux-gnu/libflite_cmu_us_awb.so.1 (0x00007f9d3b95d000)
    libflite_cmu_us_kal.so.1 => /lib/x86_64-linux-gnu/libflite_cmu_us_kal.so.1 (0x00007f9d3b7f7000)
    libflite_cmu_us_kal16.so.1 => /lib/x86_64-linux-gnu/libflite_cmu_us_kal16.so.1 (0x00007f9d3b41d000)
    libflite_cmu_us_rms.so.1 => /lib/x86_64-linux-gnu/libflite_cmu_us_rms.so.1 (0x00007f9d3af82000)
    libflite_cmu_us_slt.so.1 => /lib/x86_64-linux-gnu/libflite_cmu_us_slt.so.1 (0x00007f9d3ab88000)
    libflite.so.1 => /lib/x86_64-linux-gnu/libflite.so.1 (0x00007f9d3ab4f000)
    libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f9d3ab32000)
    libass.so.9 => /lib/x86_64-linux-gnu/libass.so.9 (0x00007f9d3a8ff000)
    libvidstab.so.1.1 => /lib/x86_64-linux-gnu/libvidstab.so.1.1 (0x00007f9d3a8eb000)
    libzmq.so.5 => /lib/x86_64-linux-gnu/libzmq.so.5 (0x00007f9d3a845000)
    libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f9d3a7fc000)
    libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f9d3a73d000)
    libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f9d3a557000)
    libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x00007f9d3a4f7000)
    libvorbisfile.so.3 => /lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007f9d3a4ec000)
    libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f9d3a3b4000)
    libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f9d3a393000)
    libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f9d3a211000)
    libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f9d3a1fb000)
    libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f9d3a1c1000)
    libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f9d3a189000)
    libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f9d3a103000)
    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f9d39fe5000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f9d39fc2000)
    libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f9d39f75000)
    libsoxr.so.0 => /lib/x86_64-linux-gnu/libsoxr.so.0 (0x00007f9d39f0a000)
    libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007f9d39efc000)
    libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f9d39ed4000)
    libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f9d39cf3000)
    libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f9d39ce1000)
    libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f9d39c92000)
    libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f9d39c86000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9d39c11000)
    libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f9d39b6a000)
    libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f9d39b65000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f9d39b3b000)
    libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f9d39b2c000)
    libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f9d39922000)
    libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f9d3990b000)
    libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007f9d398fe000)
    libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007f9d398f1000)
    libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f9d398e9000)
    libserd-0.so.0 => /lib/x86_64-linux-gnu/libserd-0.so.0 (0x00007f9d398c6000)
    libsord-0.so.0 => /lib/x86_64-linux-gnu/libsord-0.so.0 (0x00007f9d398ba000)
    libsratom-0.so.0 => /lib/x86_64-linux-gnu/libsratom-0.so.0 (0x00007f9d398ae000)
    libsamplerate.so.0 => /lib/x86_64-linux-gnu/libsamplerate.so.0 (0x00007f9d39542000)
    libfftw3.so.3 => /lib/x86_64-linux-gnu/libfftw3.so.3 (0x00007f9d3933c000)
    libflite_usenglish.so.1 => /lib/x86_64-linux-gnu/libflite_usenglish.so.1 (0x00007f9d39311000)
    libflite_cmulex.so.1 => /lib/x86_64-linux-gnu/libflite_cmulex.so.1 (0x00007f9d39278000)
    libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007f9d3917d000)
    libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f9d39078000)
    libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f9d39036000)
    libsodium.so.23 => /lib/x86_64-linux-gnu/libsodium.so.23 (0x00007f9d38fde000)
    libpgm-5.2.so.0 => /lib/x86_64-linux-gnu/libpgm-5.2.so.0 (0x00007f9d38f8d000)
    libnorm.so.1 => /lib/x86_64-linux-gnu/libnorm.so.1 (0x00007f9d38e32000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f9d38e04000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f9d38dfb000)
    libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f9d3733a000)
    libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f9d3725b000)
    libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f9d3722a000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f9d37223000)
    libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f9d37214000)
    libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f9d3720e000)
    libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f9d371ae000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f9d37181000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f9d37165000)
    libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f9d3714c000)
    libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007f9d37141000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f9d3713b000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f9d37131000)
    libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f9d37104000)
    libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f9d370fd000)
    libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f9d370a6000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f9d37014000)
    libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f9d3700a000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f9d36ff0000)

So this does not look like static to me. :+)

For ffmpeg, I found only one way to statically compile it - use the "ffmpeg-static" repo...

I don't know if it's achievable here...