This project prepares a minimalist Docker image with FFMPEG. It compiles FFMPEG from sources following instructions from the Compilation Guide.
You can install the latest build of this image by running docker pull jrottenberg/ffmpeg.
This image can be used as a base for an encoding farm, based on centos7.
You can use jrottenberg/ffmpeg:ubuntu or jrottenberg/ffmpeg:3.1 or jrottenberg/ffmpeg:3 to get the latest build based on ubuntu.
Note : I've made ubuntu the default after 3.1
You'll find centos based image using ffmpeg:X.Y-centos or ffmpeg:centos to get the latest. alpine images ffmpeg:X.Y-alpine or ffmpeg:alpine to get the latest.
For information :
u-3.2 ubuntu 1e998987f2da 2 minutes ago 205.5 MB c-3.2 centos b73e2e768092 9 minutes ago 274.4 MB a-3.2 alpine 5da8a4eaeb41 45 minutes ago 73.64 MB Please use Github issues to report any bug or missing feature.
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4) configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --bindir=/usr/local/bin --extra-libs=-ldl --enable-version3 --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-gpl --enable-postproc --enable-nonfree --enable-avresample --enable-libfdk_aac --disable-debug --enable-small --enable-openssl --enable-libtheora --enable-libx265 --enable-libopus --enable-libvorbis --enable-libvpx libavutil 55. 17.103 / 55. 17.103 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libavresample 3. 0. 0 / 3. 0. 0 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --bindir=/usr/local/bin --extra-libs=-ldl --enable-version3 --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-gpl --enable-postproc --enable-nonfree --enable-avresample --enable-libfdk_aac --disable-debug --enable-small --enable-openssl --enable-libtheora --enable-libx265 --enable-libopus --enable-libvorbis --enable-libvpx --enable-libfreetype Capture output from the container to the host running the command
docker run jrottenberg/ffmpeg \ -i http://url/to/media.mp4 \ -stats \ $ffmpeg_options - > out.mp4 docker run jrottenberg/ffmpeg -stats \ -i http://archive.org/download/thethreeagesbusterkeaton/Buster.Keaton.The.Three.Ages.ogv \ -loop 0 \ -final_delay 500 -c:v gif -f gif -ss 00:49:42 -t 5 - > trow_ball.gif docker run -it --entrypoint='bash' jrottenberg/ffmpeg 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
${EDITOR} Dockerfile-env ./update.py # generates the Dockerfile docker build -t my-build VERSION/path/ # 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 env file THEN all the generated Dockerfile for a merge request. So it's easier to find the template change.