NOTE : Please use https://github.com/jrottenberg/ffmpeg for now
This project prepares a development Docker image for FFmpeg. It compiles FFmpeg from sources following instructions from the Compilation Guide. All the generated libs are left in the final image to be reuse.
You can test the latest build of this image by running docker pull videotools/ffmpeg-build
.
This image can be used as a base for an encoding farm.
It is on purpose very large as it contains all the lib for ffmpeg, feel free to extend and generate yours with multistage:
FROM base AS release
MAINTAINER Julien Rottenberg <julien@rottenberg.info>
CMD ["--help"]
ENTRYPOINT ["ffmpeg"]
ENV LD_LIBRARY_PATH=/usr/local/lib
COPY --from=build /usr/local /usr/local/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/videotools/ffmpeg-build/builds console output
You can use videotools/ffmpeg-build to get the latest build based on ubuntu.
How the 'recent images' was generated
$ curl --silent https://hub.docker.com/v2/repositories/videotools/ffmpeg-build/tags/?page_size=500 | jq -cr ".results|sort_by(.name)|reverse[]|.sz=(.full_size/1048576|floor|tostring+\"mb\")|[.name,( (20-(.name|length))*\" \" ),.sz,( (8-(.sz|length))*\" \"),.last_updated[:10]]|@text|gsub(\"[,\\\"\\\]\\\[]\";null)" | grep 2018-08
Please use Github issues to report any bug or missing feature.
docker run -it --entrypoint='bash' videotools/ffmpeg-build:VERSION
for i in ogg amr vorbis theora mp3lame opus vpx xvid fdk x264 x265;do echo $i; find /usr/local/ -name *$i*;done
See Dockerfile-env to update a version
- FFMPEG_VERSION: GNU Lesser General Public License (LGPL) version 2.1
- OGG_VERSION: BSD-style license
- OPENCOREAMR_VERSION: Apache License
- VORBIS_VERSION: BSD-style license
- THEORA_VERSION: BSD-style license
- LAME_VERSION: GNU Lesser General Public License (LGPL) version 2.1
- OPUS_VERSION: BSD-style license
- VPX_VERSION: BSD-style license
- XVID_VERSION: GNU General Public Licence (GPL) version 2
- FDKAAC_VERSION: Liberal but not a license of patented technologies
- FREETYPE_VERSION: GNU General Public License (GPL) version 2
- LIBVIDSTAB_VERSION: GNU General Public License (GPL) version 2
- LIBFRIDIBI_VERSION: GNU General Public License (GPL) version 2
- X264_VERSION: GNU General Public License (GPL) version 2
- X265_VERSION:GNU General Public License (GPL) version 2
# Add / fix stuff
${EDITOR} templates/
# Generates the Dockerfile for all variants
./update.py
# Test a specific variant
docker build -t my-build docker-images/VERSION/
# Make sure all variants pass before Travis does
find ffmpeg/ -name Dockerfile | xargs dirname | parallel --no-notice -j 4 --results logs docker build -t {} {}
Commit the templates files THEN all the generated Dockerfile for a merge request. So it's easier to review the template change.