This project aims to provide Dockerfile(s) to compile full-featured FFmpeg executable files with dynamic-linking on Ubuntu-based Linux distributions.
If someone only uses Ubuntu and has no need to cross-compile FFmpeg for other platforms, dynamic linking can help re-using a lot of shared libraries and generating smaller and more efficient executable files.
However, this project still uses some static libraries which are useful but not provided by Ubuntu software repositories.
sudo apt install docker.io docker-buildxdocker build -t ffmpeg-build -f Dockerfile.<ubuntu_name> .
docker run --rm --user "$(id -u):$(id -g)" -v "$(pwd)/output":/output ffmpeg-build<ubuntu_name> can be Noble (24.04) or Resolute (26.04).
Now, the executable files should be in the ./output directory.
docker image rm ffmpeg-build && docker image prune
docker builder prune- Open the Dockerfile you used.
- Copy the
apt-get installcommand in the runtime environment stage. - Run the command in the Ubuntu system that you want to run FFmpeg executable files (to fix shared libraries not found issues).
No. Even though Ubuntu is based on Debian, their software sources are somewhat different. Maybe you can find replaceable packages but I would recommend just modifying the base image written in the Dockerfile of this project to a corresponding Debian image and build it.