homebridge / ffmpeg-for-homebridge

Static FFmpeg binaries for Homebridge with support for audio (libfdk-aac) and hardware-accelerated decoding and encoding (h264_qsv, h264_v4l2m2m, videotoolbox).
109 stars 13 forks source link

The ffmpeg v6.0 binaries are huge vs prior versions of this package #69

Closed tsightler closed 10 months ago

tsightler commented 11 months ago

Describe The Bug: Honestly, this is perhaps not really a bug, but as I was updating my project to use these newer libraries I noticed that the size of the docker image had increased by more than 25%, from 75MB to more than 100MB, at least for the x86_64 and arm64 builds (the 32-bit arm builds increased less, but still probably 15%).

At first I couldn't find why because nothing in my build process had changed, but in comparing ffmpeg I saw that the new 6.0 binaries are more than 2x the size of the 5.0 binaries, moving from 32MB to 74 MB. I also noticed that these new binaries show as fully static builds, while the prior versions used the dynamic linker, so I'm assuming that might be part of the size increase and may very well be intentional.

Mostly filing this bug just to find out if this was an intentional change or some unintended side effect of a new build process.

To Reproduce: You can just look at the binaries or even the tar.gz files.

Expected behavior: Maybe this is expected, I'm just asking to be sure.

ffmpeg output:

ffmpeg version 6.0-homebridge-alpine-x86_64-static Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.1 (Alpine 12.2.1_git20220924-r10) 20220924
  configuration: --enable-hardcoded-tables --enable-nonfree --enable-gpl --enable-hardcoded-tables --enable-hardcoded-tables --enable-openssl --enable-libdav1d --enable-libsvtav1 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libxvid --enable-libvidstab --enable-libaom --enable-libzimg --enable-lv2 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libfdk-aac --enable-libwebp --enable-libsrt --enable-libvpl --enable-vaapi --disable-ffnvcodec --enable-amf --disable-debug --disable-shared --enable-pthreads --enable-static --enable-version3 --extra-cflags='-I/build/workspace/include -I/build/workspace/include/lilv-0' --extra-ldexeflags=-static --extra-ldflags=-L/build/workspace/lib --extra-libs='-ldl -lpthread -lm -lz' --pkgconfigdir=/build/workspace/lib/pkgconfig --pkg-config-flags=--static --prefix=/build/workspace --extra-version=homebridge-alpine-x86_64-static
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Hyper fast Audio and Video encoder
$ file ffmpeg
ffmpeg: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped

Environment:

github-actions[bot] commented 10 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 10 months ago

This issue has been closed as no further activity has occurred.