diff --git a/.travis.yml b/.travis.yml
index 820041a62..d11edb288 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,6 +10,12 @@ env:
- VERSION=snapshot VARIANT=scratch
- VERSION=snapshot VARIANT=vaapi
- VERSION=snapshot VARIANT=nvidia
+ - VERSION=4.2 VARIANT=ubuntu
+ - VERSION=4.2 VARIANT=alpine
+ - VERSION=4.2 VARIANT=centos
+ - VERSION=4.2 VARIANT=scratch
+ - VERSION=4.2 VARIANT=vaapi
+ - VERSION=4.2 VARIANT=nvidia
- VERSION=4.1 VARIANT=ubuntu
- VERSION=4.1 VARIANT=alpine
- VERSION=4.1 VARIANT=centos
diff --git a/.update.py.swp b/.update.py.swp
new file mode 100644
index 000000000..9e41acf4b
Binary files /dev/null and b/.update.py.swp differ
diff --git a/README.md b/README.md
index b7f8f602b..d0eafc552 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-FFmpeg Docker image
-==================
+# FFmpeg Docker image
+
[](https://registry.hub.docker.com/v2/repositories/jrottenberg/ffmpeg/stars/count/) [](https://registry.hub.docker.com/v2/repositories/jrottenberg/ffmpeg/)
[](https://travis-ci.org/jrottenberg/ffmpeg)
@@ -12,8 +12,7 @@ You can install the latest build of this image by running `docker pull jrottenbe
This image can be used as a base for an encoding farm.
-Ubuntu builds
---------------
+## Builds
You can use jrottenberg/ffmpeg or jrottenberg/ffmpeg:3.3
to get the latest build based on ubuntu.
@@ -24,44 +23,104 @@ You'll find centos based image using `ffmpeg:X.Y-centos` or `ffmpeg:centos` to g
alpine images `ffmpeg:X.Y-alpine` to get the latest.
scratch images `ffmpeg:X.Y-scratch` to get the latest. (Scratch is an experimental image containing only FFmpeg and libraries)
+Format is `ffmpeg:MAJOR.MINOR-VARIANT` with MAJOR.MINOR in :
+- 2.8
+- 3.0
+- 3.1
+- 3.2
+- 3.3
+- 3.4
+- 4.0
+- 4.1
+- snapshot
+
+and VARIANT in :
+- alpine
+- centos
+- nvidia
+- scratch
+- ubuntu
+- vaapi
+
+
Recent images:
```
-vaapi 86mb 2018-08-16
-snapshot-centos 95mb 2018-08-16
-snapshot-alpine 27mb 2018-08-16
-4.0-vaapi 86mb 2018-08-15
-4.0-ubuntu 94mb 2018-08-16
-4.0-scratch 20mb 2018-08-16
-4.0-centos 95mb 2018-08-16
-3.4-vaapi 84mb 2018-08-15
-3.4-scratch 18mb 2018-08-16
-3.4-alpine 24mb 2018-08-16
-3.4 92mb 2018-08-16
-3.3-scratch 17mb 2018-08-04
-3.2-scratch 17mb 2018-08-16
-3.2-alpine 24mb 2018-08-16
-3.0-scratch 17mb 2018-08-16
-3.0-centos 94mb 2018-08-16
-2.8-scratch 16mb 2018-08-16
-2.8 90mb 2018-08-16
+snapshot-vaapi 74mb
+snapshot-ubuntu 86mb
+snapshot-scratch 20mb
+snapshot-nvidia 640mb
+snapshot-centos 97mb
+snapshot-alpine 35mb
+4.1-vaapi 73mb
+4.1-ubuntu 85mb
+4.1-scratch 20mb
+4.1-nvidia 640mb
+4.1-centos 97mb
+4.1-alpine 34mb
+4.0-vaapi 73mb
+4.0-ubuntu 83mb
+4.0-scratch 20mb
+4.0-nvidia 639mb
+4.0-centos 97mb
+4.0-alpine 34mb
+3.4-vaapi 71mb
+3.4-ubuntu 83mb
+3.4-scratch 18mb
+3.4-nvidia 637mb
+3.4-centos 97mb
+3.4-alpine 32mb
+3.4 83mb
+3.3-vaapi 71mb
+3.3-ubuntu 83mb
+3.3-scratch 18mb
+3.3-nvidia 637mb
+3.3-centos 96mb
+3.3-alpine 31mb
+3.3 82mb
+3.2-vaapi 83mb
+3.2-ubuntu 83mb
+3.2-scratch 18mb
+3.2-nvidia 623mb
+3.2-centos 96mb
+3.2-alpine 32mb
+3.1-vaapi 83mb
+3.1-ubuntu 82mb
+3.1-scratch 17mb
+3.1-nvidia 623mb
+3.1-centos 96mb
+3.1-alpine 32mb
+3.1 81mb
+3.0-ubuntu 82mb
+3.0-scratch 17mb
+3.0-nvidia 623mb
+3.0-centos 96mb
+3.0-alpine 31mb
+2.8-vaapi 82mb
+2.8-ubuntu 81mb
+2.8-scratch 17mb
+2.8-nvidia 622mb
+2.8-centos 95mb
+2.8-alpine 30mb
```
-(How the 'recent images' was generated)
+### How the 'recent images' was generated
+
```
- $ curl --silent https://hub.docker.com/v2/repositories/jrottenberg/ffmpeg/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
+$ curl --silent https://hub.docker.com/v2/repositories/jrottenberg/ffmpeg/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)"
+
+# If you want to compare the one you have locally
+$ docker images | grep ffmpeg | sort | awk '{print $1 ":" $2 "\t" $7 $8}'
```
-
Please use [Github issues](https://github.com/jrottenberg/ffmpeg/issues/new) to report any bug or missing feature.
-Test
-----
+## Test
```
ffmpeg version 3.3.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
- configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib --extra-libs=-ldl --prefix=/opt/ffmpeg
+ configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib --extra-libs=-ldl --prefix=/opt/ffmpeg
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
@@ -90,6 +149,7 @@ ffmpeg version 3.3.4 Copyright (c) 2000-2017 the FFmpeg developers
--enable-libtheora
--enable-libvorbis
--enable-libvpx
+ --enable-libwebp
--enable-libx265
--enable-libxvid
--enable-libx264
@@ -126,52 +186,55 @@ Capture output from the container to the host running the command
#### Convert 10bits MKV into a 10Bits MP4
```
- docker run -v $PWD:/tmp jrottenberg/ffmpeg:3.4-scratch \
+ docker run -v $(pwd):$(pwd) -w $(pwd) jrottenberg/ffmpeg:3.4-scratch \
-stats \
-i http://www.jell.yfish.us/media/jellyfish-20-mbps-hd-hevc-10bit.mkv \
-c:v libx265 -pix_fmt yuv420p10 \
- -t 5 -f mp4 /tmp/test.mp4
+ -t 5 -f mp4 test.mp4
```
The image has been compiled with [X265 Multilib](https://x265.readthedocs.io/en/default/api.html#multi-library-interface).
Use the pixel format switch to change the number of bits per pixel by suffixing it with 10 for 10bits or 12 for 12bits.
-#### Convert a local GIF into a mp4
+#### Convert a local GIF into a mp4
Let's assume ```original.gif``` is located in the current directory :
```
- docker run -v $PWD:/temp/ \
+ docker run -v $(pwd):$(pwd) -w $(pwd)\
jrottenberg/ffmpeg:3.2-scratch -stats \
- -i /temp/original.gif \
- /temp/original-converted.mp4
+ -i original.gif \
+ original-converted.mp4
```
#### Use hardware acceleration enabled build
-Thanks to [qmfrederik](https://github.com/qmfrederik) for the vaapi ubuntu based variant
+Thanks to [qmfrederik](https://github.com/qmfrederik) for the [vaapi ubuntu based variant](https://github.com/jrottenberg/ffmpeg/pull/106)
- jrottenberg/ffmpeg:vaapi or jrottenberg/ffmpeg:vaapi-${VERSION}
+ jrottenberg/ffmpeg:vaapi or jrottenberg/ffmpeg:${VERSION}-vaapi
- Run the container with the device attached /dev/dri from your host into the container :
-`docker run --device /dev/dri:/dev/dri -v $(pwd):/mnt jrottenberg/ffmpeg:vaapi [...]`
+`docker run --device /dev/dri:/dev/dri -v $(pwd):$(pwd) -w $(pwd) jrottenberg/ffmpeg:vaapi [...]`
- Have the Intel drivers up and running on your host. You can run `vainfo` (part of vainfo package on Ubuntu) to determine whether your graphics card has been recognized correctly.
- Run ffmpeg with the correct parameters, this is the same as when running [ffmpeg natively](https://trac.ffmpeg.org/wiki/Hardware/VAAPI).
#### Use nvidia hardware acceleration enabled build
+
+Thanks to [ShaulMyplay](https://github.com/ShaulMyplay) for the [nvidia based variant](https://github.com/jrottenberg/ffmpeg/pull/168)
+
Supports nvenc only on all ffmpeg versions, and hardware decoding and scaling on ffmpeg >= 4.0
- Install nvidia latest drivers on host machine.
- Install [nvidia-docker](https://github.com/NVIDIA/nvidia-docker) on host machine.
-- Run container using "--runtime=nvidia" flag and use supported [ffmpeg hwaccel options](https://trac.ffmpeg.org/wiki/HWAccelIntro)
+- Run container using "--runtime=nvidia" flag and use supported [ffmpeg hwaccel options](https://trac.ffmpeg.org/wiki/HWAccelIntro)
Hardware encoding only example:
-`docker run --runtime=nvidia jrottenberg/ffmpeg:nvidia-2.8 -i INPUT -c:v nvenc_h264 -preset hq OUTPUT`
+`docker run --runtime=nvidia jrottenberg/ffmpeg:2.8-nvidia -i INPUT -c:v nvenc_h264 -preset hq OUTPUT`
Full hardware acceleration example:
-`docker run --runtime=nvidia jrottenberg/ffmpeg:nvidia-4.1 -hwaccel cuvid -c:v h264_cuvid -i INPUT -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow OUTPUT`
+`docker run --runtime=nvidia jrottenberg/ffmpeg:4.1-nvidia -hwaccel cuvid -c:v h264_cuvid -i INPUT -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow OUTPUT`
+
-See what's inside the beast
----------------------------
+##### See what's inside the beast
```
docker run -it --entrypoint='bash' jrottenberg/ffmpeg
@@ -179,8 +242,7 @@ 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
```
-Keep up to date
----------------
+## Keep up to date
See Dockerfile-env to update a version
@@ -192,6 +254,7 @@ See Dockerfile-env to update a version
- [LAME_VERSION](http://lame.sourceforge.net/download.php): [GNU Lesser General Public License (LGPL) version 2.1](http://lame.cvs.sourceforge.net/viewvc/lame/lame/LICENSE?revision=1.9)
- [OPUS_VERSION](https://www.opus-codec.org/downloads/): [BSD-style license](https://www.opus-codec.org/license/)
- [VPX_VERSION](https://github.com/webmproject/libvpx/releases): [BSD-style license](https://github.com/webmproject/libvpx/blob/master/LICENSE)
+- [WEBP_VERSION](https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html): [BSD-style license](https://github.com/webmproject/libvpx/blob/master/LICENSE)
- [XVID_VERSION](https://labs.xvid.com/source/): [GNU General Public Licence (GPL) version 2](http://websvn.xvid.org/cvs/viewvc.cgi/trunk/xvidcore/LICENSE?revision=851)
- [FDKAAC_VERSION](https://github.com/mstorsjo/fdk-aac/releases): [Liberal but not a license of patented technologies](https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE)
- [FREETYPE_VERSION](http://download.savannah.gnu.org/releases/freetype/): [GNU General Public License (GPL) version 2](https://www.freetype.org/license.html)
@@ -201,8 +264,7 @@ See Dockerfile-env to update a version
- [X265_VERSION](https://bitbucket.org/multicoreware/x265/downloads/):[GNU General Public License (GPL) version 2](https://bitbucket.org/multicoreware/x265/raw/f8ae7afc1f61ed0db3b2f23f5d581706fe6ed677/COPYING)
-Contribute
------------
+## Contribute
```
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index f5a48d092..267595563 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,3 +1,8 @@
+variables:
+- group: videotoolsbuild-dockerhub
+- name: DOCKER
+ value: jrottenberg/ffmpeg
+
jobs:
- job: Build
pool:
@@ -23,6 +28,24 @@ jobs:
snapshot_nvidia:
VERSION: snapshot
VARIANT: nvidia
+ 4_2_ubuntu:
+ VERSION: 4.2
+ VARIANT: ubuntu
+ 4_2_alpine:
+ VERSION: 4.2
+ VARIANT: alpine
+ 4_2_centos:
+ VERSION: 4.2
+ VARIANT: centos
+ 4_2_scratch:
+ VERSION: 4.2
+ VARIANT: scratch
+ 4_2_vaapi:
+ VERSION: 4.2
+ VARIANT: vaapi
+ 4_2_nvidia:
+ VERSION: 4.2
+ VARIANT: nvidia
4_1_ubuntu:
VERSION: 4.1
VARIANT: ubuntu
@@ -168,6 +191,14 @@ jobs:
VERSION: 2.8
VARIANT: nvidia
steps:
- - script: |
- docker build -t ffmpeg:${VERSION}-${VARIANT} --build-arg MAKEFLAGS="-j$(($(nproc) + 1))" docker-images/${VERSION}/${VARIANT}
- docker run --rm ffmpeg:${VERSION}-${VARIANT} -buildconf
+ - bash: |
+ docker build -t ${DOCKER}:${VERSION}-${VARIANT} --build-arg MAKEFLAGS="-j$(($(grep -c ^processor /proc/cpuinfo) + 1))" docker-images/${VERSION}/${VARIANT}
+ docker run --rm ${DOCKER}:${VERSION}-${VARIANT} -buildconf
+ displayName: Build docker image
+ - bash: |
+ docker login --username ${DOCKER_LOGIN} --password ${DOCKER_PASSWORD}
+ docker push ${DOCKER}:${VERSION}-${VARIANT}
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
+ displayName: Push docker image
+ env:
+ DOCKER_PASSWORD: $(docker.password)
\ No newline at end of file
diff --git a/docker-images/2.8/alpine/Dockerfile b/docker-images/2.8/alpine/Dockerfile
index 0cb0a74c1..92971e830 100644
--- a/docker-images/2.8/alpine/Dockerfile
+++ b/docker-images/2.8/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=2.8.15 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=2.8.15 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +74,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +390,433 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.8 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.0 \
+ libssl1.0 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=2.8.15
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=1.5.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=0.6.1
+ARG NVENC_VERSION=8.2.15.8
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/2.8/arm32v7/Dockerfile b/docker-images/2.8/arm32v7/Dockerfile
new file mode 100644
index 000000000..94446c7b7
--- /dev/null
+++ b/docker-images/2.8/arm32v7/Dockerfile
@@ -0,0 +1,426 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=2.8.15
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=1.5.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=0.6.1
+ARG NVENC_VERSION=8.2.15.8
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/2.8/centos/Dockerfile b/docker-images/2.8/centos/Dockerfile
index 9fe8d1875..37fd49d77 100644
--- a/docker-images/2.8/centos/Dockerfile
+++ b/docker-images/2.8/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=2.8.15 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=2.8.15 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +389,470 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=2.8.15
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=1.5.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=0.6.1
+ARG NVENC_VERSION=8.2.15.8
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/2.8/nvidia/Dockerfile b/docker-images/2.8/nvidia/Dockerfile
index 767d2fb01..cb7e928d3 100644
--- a/docker-images/2.8/nvidia/Dockerfile
+++ b/docker-images/2.8/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=2.8.15 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=2.8.15 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +109,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +200,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -360,6 +375,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -406,3 +422,427 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=2.8.15
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=1.5.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=0.6.1
+ARG NVENC_VERSION=8.2.15.8
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/2.8/scratch/Dockerfile b/docker-images/2.8/scratch/Dockerfile
index 2c9aa8401..fca5b23c7 100644
--- a/docker-images/2.8/scratch/Dockerfile
+++ b/docker-images/2.8/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=2.8.15 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=2.8.15 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/2.8/ubuntu/Dockerfile b/docker-images/2.8/ubuntu/Dockerfile
index 1a4aa2aa5..44ba6952c 100644
--- a/docker-images/2.8/ubuntu/Dockerfile
+++ b/docker-images/2.8/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=2.8.15 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=2.8.15 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +84,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +175,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +390,427 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=2.8.15
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=1.5.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=0.6.1
+ARG NVENC_VERSION=8.2.15.8
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/2.8/vaapi/Dockerfile b/docker-images/2.8/vaapi/Dockerfile
index d54e66186..60447f949 100644
--- a/docker-images/2.8/vaapi/Dockerfile
+++ b/docker-images/2.8/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=2.8.15 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=2.8.15 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -335,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.0/alpine/Dockerfile b/docker-images/3.0/alpine/Dockerfile
index bc9749238..9ce6dbf9a 100644
--- a/docker-images/3.0/alpine/Dockerfile
+++ b/docker-images/3.0/alpine/Dockerfile
@@ -18,37 +18,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.0.12 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.0.12 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +72,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +81,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +172,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +346,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.0/centos/Dockerfile b/docker-images/3.0/centos/Dockerfile
index f75148a5f..7739d0eff 100644
--- a/docker-images/3.0/centos/Dockerfile
+++ b/docker-images/3.0/centos/Dockerfile
@@ -20,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.0.12 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.0.12 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +81,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +172,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +346,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.0/nvidia/Dockerfile b/docker-images/3.0/nvidia/Dockerfile
index 7862b0656..c6822b901 100644
--- a/docker-images/3.0/nvidia/Dockerfile
+++ b/docker-images/3.0/nvidia/Dockerfile
@@ -35,37 +35,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=3.0.12 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.0.12 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +107,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +198,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -360,6 +373,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.0/scratch/Dockerfile b/docker-images/3.0/scratch/Dockerfile
index 7c6dd727b..3fce423b8 100644
--- a/docker-images/3.0/scratch/Dockerfile
+++ b/docker-images/3.0/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.0.12 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.0.12 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.0/ubuntu/Dockerfile b/docker-images/3.0/ubuntu/Dockerfile
index 2264764b2..8a9433ca9 100644
--- a/docker-images/3.0/ubuntu/Dockerfile
+++ b/docker-images/3.0/ubuntu/Dockerfile
@@ -5,7 +5,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.0.12 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.0.12 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +82,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +173,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +347,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +388,4 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/3.0/vaapi/Dockerfile b/docker-images/3.0/vaapi/Dockerfile
index 07ca4d9a9..5b424af79 100644
--- a/docker-images/3.0/vaapi/Dockerfile
+++ b/docker-images/3.0/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.0.12 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.0.12 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.1/alpine/Dockerfile b/docker-images/3.1/alpine/Dockerfile
index a369299ce..7ba2d7ee3 100644
--- a/docker-images/3.1/alpine/Dockerfile
+++ b/docker-images/3.1/alpine/Dockerfile
@@ -18,37 +18,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.1.11 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.1.11 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +72,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +81,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +172,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +346,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.1/centos/Dockerfile b/docker-images/3.1/centos/Dockerfile
index c79e08502..8bcad0787 100644
--- a/docker-images/3.1/centos/Dockerfile
+++ b/docker-images/3.1/centos/Dockerfile
@@ -20,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.1.11 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.1.11 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +81,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +172,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +346,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.1/nvidia/Dockerfile b/docker-images/3.1/nvidia/Dockerfile
index bbde61ffe..ed2c219af 100644
--- a/docker-images/3.1/nvidia/Dockerfile
+++ b/docker-images/3.1/nvidia/Dockerfile
@@ -35,37 +35,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=3.1.11 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.1.11 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +107,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +198,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -360,6 +373,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.1/scratch/Dockerfile b/docker-images/3.1/scratch/Dockerfile
index 72aaddfd1..ff7b6fcd8 100644
--- a/docker-images/3.1/scratch/Dockerfile
+++ b/docker-images/3.1/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.1.11 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.1.11 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.1/ubuntu/Dockerfile b/docker-images/3.1/ubuntu/Dockerfile
index 626086b60..62e7e0d0e 100644
--- a/docker-images/3.1/ubuntu/Dockerfile
+++ b/docker-images/3.1/ubuntu/Dockerfile
@@ -5,7 +5,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.1.11 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.1.11 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +82,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +173,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +347,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +388,4 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/3.1/vaapi/Dockerfile b/docker-images/3.1/vaapi/Dockerfile
index b4165dc01..214e1a0de 100644
--- a/docker-images/3.1/vaapi/Dockerfile
+++ b/docker-images/3.1/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.1.11 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.1.11 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.2/alpine/Dockerfile b/docker-images/3.2/alpine/Dockerfile
index fcef21416..fe9c86121 100644
--- a/docker-images/3.2/alpine/Dockerfile
+++ b/docker-images/3.2/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,47 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
+<<<<<<< HEAD
+ENV FFMPEG_VERSION=3.2.14 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+=======
ENV FFMPEG_VERSION=3.2.14 \
FDKAAC_VERSION=0.1.5 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
OGG_VERSION=1.3.2 \
+>>>>>>> 3.2.14
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +82,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +91,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +182,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +356,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +398,433 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=3.2.14
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/3.2/arm32v7/Dockerfile b/docker-images/3.2/arm32v7/Dockerfile
new file mode 100644
index 000000000..e5824abb0
--- /dev/null
+++ b/docker-images/3.2/arm32v7/Dockerfile
@@ -0,0 +1,426 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=3.2.14
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/3.2/centos/Dockerfile b/docker-images/3.2/centos/Dockerfile
index a4105e4eb..00554be73 100644
--- a/docker-images/3.2/centos/Dockerfile
+++ b/docker-images/3.2/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,47 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
+<<<<<<< HEAD
+ENV FFMPEG_VERSION=3.2.14 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+=======
ENV FFMPEG_VERSION=3.2.14 \
FDKAAC_VERSION=0.1.5 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
OGG_VERSION=1.3.2 \
+>>>>>>> 3.2.14
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +91,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +182,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +356,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +397,470 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=3.2.14
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/3.2/nvidia/Dockerfile b/docker-images/3.2/nvidia/Dockerfile
index 810465092..f2c5b1fe4 100644
--- a/docker-images/3.2/nvidia/Dockerfile
+++ b/docker-images/3.2/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,47 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
+<<<<<<< HEAD
+ENV FFMPEG_VERSION=3.2.14 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+=======
ENV FFMPEG_VERSION=3.2.14 \
FDKAAC_VERSION=0.1.5 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
OGG_VERSION=1.3.2 \
+>>>>>>> 3.2.14
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +117,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +208,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -360,6 +383,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -406,3 +430,427 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=3.2.14
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/3.2/scratch/Dockerfile b/docker-images/3.2/scratch/Dockerfile
index 75932cf3a..261911b78 100644
--- a/docker-images/3.2/scratch/Dockerfile
+++ b/docker-images/3.2/scratch/Dockerfile
@@ -13,37 +13,47 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
+<<<<<<< HEAD
+ENV FFMPEG_VERSION=3.2.14 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+=======
ENV FFMPEG_VERSION=3.2.14 \
FDKAAC_VERSION=0.1.5 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
OGG_VERSION=1.3.2 \
+>>>>>>> 3.2.14
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +76,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +86,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +177,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +351,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.2/ubuntu/Dockerfile b/docker-images/3.2/ubuntu/Dockerfile
index d434734cb..1c51127a3 100644
--- a/docker-images/3.2/ubuntu/Dockerfile
+++ b/docker-images/3.2/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,47 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
+<<<<<<< HEAD
+ENV FFMPEG_VERSION=3.2.14 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+=======
ENV FFMPEG_VERSION=3.2.14 \
FDKAAC_VERSION=0.1.5 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
OGG_VERSION=1.3.2 \
+>>>>>>> 3.2.14
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +92,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +183,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +357,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +398,427 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=3.2.14
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-nvenc \
+ --enable-nonfree \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/3.2/vaapi/Dockerfile b/docker-images/3.2/vaapi/Dockerfile
index 20a1aacfd..79e26ab6b 100644
--- a/docker-images/3.2/vaapi/Dockerfile
+++ b/docker-images/3.2/vaapi/Dockerfile
@@ -21,37 +21,47 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
+<<<<<<< HEAD
+ENV FFMPEG_VERSION=3.2.14 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+=======
ENV FFMPEG_VERSION=3.2.14 \
FDKAAC_VERSION=0.1.5 \
LAME_VERSION=3.100 \
LIBASS_VERSION=0.13.7 \
OGG_VERSION=1.3.2 \
+>>>>>>> 3.2.14
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +91,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +182,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +357,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.3/alpine/Dockerfile b/docker-images/3.3/alpine/Dockerfile
index b15b3ba1e..50086bbcf 100644
--- a/docker-images/3.3/alpine/Dockerfile
+++ b/docker-images/3.3/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.3.9 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.3.9 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +74,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +390,434 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=3.3.9
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/3.3/arm32v7/Dockerfile b/docker-images/3.3/arm32v7/Dockerfile
new file mode 100644
index 000000000..8eea0df28
--- /dev/null
+++ b/docker-images/3.3/arm32v7/Dockerfile
@@ -0,0 +1,427 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=3.3.9
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/3.3/centos/Dockerfile b/docker-images/3.3/centos/Dockerfile
index 61837b56f..4786f70d8 100644
--- a/docker-images/3.3/centos/Dockerfile
+++ b/docker-images/3.3/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.3.9 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.3.9 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +389,471 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=3.3.9
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/3.3/nvidia/Dockerfile b/docker-images/3.3/nvidia/Dockerfile
index c3d65e545..6762145d5 100644
--- a/docker-images/3.3/nvidia/Dockerfile
+++ b/docker-images/3.3/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=3.3.9 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.3.9 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +109,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +200,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -360,6 +375,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -406,3 +422,428 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=3.3.9
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/3.3/scratch/Dockerfile b/docker-images/3.3/scratch/Dockerfile
index 3a47cfc76..7412da7f4 100644
--- a/docker-images/3.3/scratch/Dockerfile
+++ b/docker-images/3.3/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.3.9 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.3.9 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.3/ubuntu/Dockerfile b/docker-images/3.3/ubuntu/Dockerfile
index ab46603ee..3be1e7c21 100644
--- a/docker-images/3.3/ubuntu/Dockerfile
+++ b/docker-images/3.3/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.3.9 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.3.9 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +84,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +175,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +390,428 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=3.3.9
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/3.3/vaapi/Dockerfile b/docker-images/3.3/vaapi/Dockerfile
index 6d4391838..6fdf51ad2 100644
--- a/docker-images/3.3/vaapi/Dockerfile
+++ b/docker-images/3.3/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.3.9 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.3.9 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.4/alpine/Dockerfile b/docker-images/3.4/alpine/Dockerfile
index b4e669f8e..1f09a55d4 100644
--- a/docker-images/3.4/alpine/Dockerfile
+++ b/docker-images/3.4/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.4.6 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.4.6 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +74,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +390,434 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=3.4.6
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/3.4/arm32v7/Dockerfile b/docker-images/3.4/arm32v7/Dockerfile
new file mode 100644
index 000000000..06e446af8
--- /dev/null
+++ b/docker-images/3.4/arm32v7/Dockerfile
@@ -0,0 +1,427 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=3.4.6
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/3.4/centos/Dockerfile b/docker-images/3.4/centos/Dockerfile
index 1215bbf14..cf846b073 100644
--- a/docker-images/3.4/centos/Dockerfile
+++ b/docker-images/3.4/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.4.6 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.4.6 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +389,471 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=3.4.6
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/3.4/nvidia/Dockerfile b/docker-images/3.4/nvidia/Dockerfile
index 52e81e6e7..ba457aed5 100644
--- a/docker-images/3.4/nvidia/Dockerfile
+++ b/docker-images/3.4/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=3.4.6 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.4.6 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +109,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +200,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -360,6 +375,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -406,3 +422,428 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=3.4.6
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/3.4/scratch/Dockerfile b/docker-images/3.4/scratch/Dockerfile
index e52b2001a..bdfda6855 100644
--- a/docker-images/3.4/scratch/Dockerfile
+++ b/docker-images/3.4/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.4.6 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.4.6 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/3.4/ubuntu/Dockerfile b/docker-images/3.4/ubuntu/Dockerfile
index 97aba403d..8008fa5f0 100644
--- a/docker-images/3.4/ubuntu/Dockerfile
+++ b/docker-images/3.4/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.4.6 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.4.6 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +84,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +175,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +390,428 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=3.4.6
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.1.2
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/3.4/vaapi/Dockerfile b/docker-images/3.4/vaapi/Dockerfile
index 753376589..b99490743 100644
--- a/docker-images/3.4/vaapi/Dockerfile
+++ b/docker-images/3.4/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=3.4.6 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=3.4.6 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/4.0/alpine/Dockerfile b/docker-images/4.0/alpine/Dockerfile
index d87c380bf..9899b15a2 100644
--- a/docker-images/4.0/alpine/Dockerfile
+++ b/docker-images/4.0/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.0.4 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.0.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +74,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +390,448 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=4.0.4
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/4.0/arm32v7/Dockerfile b/docker-images/4.0/arm32v7/Dockerfile
new file mode 100644
index 000000000..3aa229226
--- /dev/null
+++ b/docker-images/4.0/arm32v7/Dockerfile
@@ -0,0 +1,441 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=4.0.4
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/4.0/centos/Dockerfile b/docker-images/4.0/centos/Dockerfile
index f3c6cfc94..aa44d08de 100644
--- a/docker-images/4.0/centos/Dockerfile
+++ b/docker-images/4.0/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.0.4 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.0.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +389,485 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=4.0.4
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/4.0/nvidia/Dockerfile b/docker-images/4.0/nvidia/Dockerfile
index f5af37740..391fd9d88 100644
--- a/docker-images/4.0/nvidia/Dockerfile
+++ b/docker-images/4.0/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=4.0.4 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.0.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +109,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +200,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -363,6 +378,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -409,3 +425,442 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=4.0.4
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/4.0/scratch/Dockerfile b/docker-images/4.0/scratch/Dockerfile
index 25c509a16..9ffda5cfb 100644
--- a/docker-images/4.0/scratch/Dockerfile
+++ b/docker-images/4.0/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.0.4 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.0.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/4.0/ubuntu/Dockerfile b/docker-images/4.0/ubuntu/Dockerfile
index bbcaff765..2511001aa 100644
--- a/docker-images/4.0/ubuntu/Dockerfile
+++ b/docker-images/4.0/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.0.4 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.0.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +84,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +175,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +390,442 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=4.0.4
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=0.1.6
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/4.0/vaapi/Dockerfile b/docker-images/4.0/vaapi/Dockerfile
index d4fb83c13..36333b0f5 100644
--- a/docker-images/4.0/vaapi/Dockerfile
+++ b/docker-images/4.0/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.0.4 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.0.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/4.1/alpine/Dockerfile b/docker-images/4.1/alpine/Dockerfile
index d8a1d5867..e61a04b4e 100644
--- a/docker-images/4.1/alpine/Dockerfile
+++ b/docker-images/4.1/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.1.3 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.1.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +74,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +390,450 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libvdpau libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libvdpau-dev libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=4.1.3
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-vdpau \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/4.1/arm32v7/Dockerfile b/docker-images/4.1/arm32v7/Dockerfile
new file mode 100644
index 000000000..5e798060e
--- /dev/null
+++ b/docker-images/4.1/arm32v7/Dockerfile
@@ -0,0 +1,443 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libvdpau libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libvdpau-dev libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=4.1.3
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-vdpau \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/4.1/centos/Dockerfile b/docker-images/4.1/centos/Dockerfile
index cb68df0f5..f8d85c401 100644
--- a/docker-images/4.1/centos/Dockerfile
+++ b/docker-images/4.1/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.1.3 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.1.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +389,487 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libvdpau libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libvdpau-devel libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=4.1.3
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-vdpau \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/4.1/nvidia/Dockerfile b/docker-images/4.1/nvidia/Dockerfile
index d0f9ae97f..84c9c6dfb 100644
--- a/docker-images/4.1/nvidia/Dockerfile
+++ b/docker-images/4.1/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=4.1.3 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.1.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +109,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +200,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -363,6 +378,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -409,3 +425,444 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libvdpau1 libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libvdpau-dev libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=4.1.3
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-vdpau \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/4.1/scratch/Dockerfile b/docker-images/4.1/scratch/Dockerfile
index 746860572..c88708917 100644
--- a/docker-images/4.1/scratch/Dockerfile
+++ b/docker-images/4.1/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.1.3 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.1.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/4.1/ubuntu/Dockerfile b/docker-images/4.1/ubuntu/Dockerfile
index 1c7e0ebed..c8ecfe3f5 100644
--- a/docker-images/4.1/ubuntu/Dockerfile
+++ b/docker-images/4.1/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.1.3 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.1.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +84,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +175,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +390,444 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libvdpau1 libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libvdpau-dev libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=4.1.3
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-vdpau \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/4.1/vaapi/Dockerfile b/docker-images/4.1/vaapi/Dockerfile
index 29e0e8d9d..d18059815 100644
--- a/docker-images/4.1/vaapi/Dockerfile
+++ b/docker-images/4.1/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=4.1.3 \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=4.1.4 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/4.2/alpine/Dockerfile b/docker-images/4.2/alpine/Dockerfile
new file mode 100644
index 000000000..cab0d57c1
--- /dev/null
+++ b/docker-images/4.2/alpine/Dockerfile
@@ -0,0 +1,390 @@
+# ffmpeg - http://ffmpeg.org/download.html
+#
+# https://hub.docker.com/r/jrottenberg/ffmpeg/
+#
+#
+
+FROM alpine:3.8 AS base
+
+RUN apk add --no-cache --update libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0 libgomp expat git
+
+
+FROM base AS build
+
+WORKDIR /tmp/workdir
+
+ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
+ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
+ARG PREFIX=/opt/ffmpeg
+ARG MAKEFLAGS="-j2"
+
+ENV FFMPEG_VERSION=4.2.1 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+ OPENCOREAMR_VERSION=0.1.5 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
+ X264_VERSION=20170226-2245-stable \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
+ SRC=/usr/local
+
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
+
+
+RUN buildDeps="autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev" && \
+ apk add --no-cache --update ${buildDeps}
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=/tmp/opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=/tmp/x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=/tmp/x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${X265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+### libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=/tmp/ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
+ echo ${OGG_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libopus https://www.opus-codec.org/
+RUN \
+ DIR=/tmp/opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
+ echo ${OPUS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=/tmp/vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
+ echo ${VORBIS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=/tmp/theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
+ echo ${THEORA_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=/tmp/vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs --disable-install-bins && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=/tmp/lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=/tmp/xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
+ echo ${XVID_SHA256SUM} | sha256sum --check && \
+ tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=/tmp/fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=/tmp/openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=/tmp/freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
+ echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=/tmp/vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=/tmp/fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
+ echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=/tmp/fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libass https://github.com/libass/libass
+RUN \
+ DIR=/tmp/libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ echo ${LIBASS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=/tmp/kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/aom && \
+ git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+## ffmpeg https://ffmpeg.org/
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2
+
+
+
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-libmp3lame \
+ --enable-libopenjpeg \
+ --enable-libopus \
+ --enable-libtheora \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+ --enable-libx265 \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-nonfree \
+ --enable-openssl \
+ --enable-libfdk_aac \
+ --enable-libkvazaar \
+ --enable-libaom --extra-libs=-lpthread \
+ --enable-postproc \
+ --enable-small \
+ --enable-version3 \
+ --extra-cflags="-I${PREFIX}/include" \
+ --extra-ldflags="-L${PREFIX}/lib" \
+ --extra-libs=-ldl \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+
+RUN \
+ ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+### Release Stage
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/4.2/centos/Dockerfile b/docker-images/4.2/centos/Dockerfile
new file mode 100644
index 000000000..4274bdeb2
--- /dev/null
+++ b/docker-images/4.2/centos/Dockerfile
@@ -0,0 +1,390 @@
+# ffmpeg - http://ffmpeg.org/download.html
+#
+# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
+#
+# https://hub.docker.com/r/jrottenberg/ffmpeg/
+#
+#
+FROM centos:7 AS base
+
+RUN yum -y install libgomp && \
+ yum clean all;
+
+
+FROM base AS build
+
+WORKDIR /tmp/workdir
+
+ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
+ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
+ARG PREFIX=/opt/ffmpeg
+ARG MAKEFLAGS="-j2"
+
+ENV FFMPEG_VERSION=4.2.1 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+ OPENCOREAMR_VERSION=0.1.5 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
+ X264_VERSION=20170226-2245-stable \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
+ SRC=/usr/local
+
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
+
+
+RUN buildDeps="autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel" && \
+ echo "${SRC}/lib" > /etc/ld.so.conf.d/libc.conf && \
+ yum --enablerepo=extras install -y epel-release && \
+ yum install -y ${buildDeps}
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=/tmp/opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=/tmp/x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=/tmp/x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${X265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+### libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=/tmp/ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
+ echo ${OGG_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libopus https://www.opus-codec.org/
+RUN \
+ DIR=/tmp/opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
+ echo ${OPUS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=/tmp/vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
+ echo ${VORBIS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=/tmp/theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
+ echo ${THEORA_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=/tmp/vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs --disable-install-bins && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=/tmp/lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=/tmp/xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
+ echo ${XVID_SHA256SUM} | sha256sum --check && \
+ tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=/tmp/fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=/tmp/openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=/tmp/freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
+ echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=/tmp/vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=/tmp/fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
+ echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=/tmp/fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libass https://github.com/libass/libass
+RUN \
+ DIR=/tmp/libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ echo ${LIBASS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=/tmp/kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/aom && \
+ git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+## ffmpeg https://ffmpeg.org/
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2
+
+
+
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-libmp3lame \
+ --enable-libopenjpeg \
+ --enable-libopus \
+ --enable-libtheora \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+ --enable-libx265 \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-nonfree \
+ --enable-openssl \
+ --enable-libfdk_aac \
+ --enable-libkvazaar \
+ \
+ --enable-postproc \
+ --enable-small \
+ --enable-version3 \
+ --extra-cflags="-I${PREFIX}/include" \
+ --extra-ldflags="-L${PREFIX}/lib" \
+ --extra-libs=-ldl \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib64/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib64 ffmpeg -buildconf
+
+FROM base
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+ENV LD_LIBRARY_PATH=/usr/local/lib64
+
+COPY --from=build /usr/local/ /usr/local/
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
diff --git a/docker-images/4.2/nvidia/Dockerfile b/docker-images/4.2/nvidia/Dockerfile
new file mode 100644
index 000000000..758fc1f08
--- /dev/null
+++ b/docker-images/4.2/nvidia/Dockerfile
@@ -0,0 +1,425 @@
+# ffmpeg - http://ffmpeg.org/download.html
+#
+# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
+#
+# https://hub.docker.com/r/jrottenberg/ffmpeg/
+#
+#
+
+FROM nvidia/cudagl:9.2-devel-ubuntu18.04 AS devel-base
+
+ENV NVIDIA_DRIVER_CAPABILITIES compat32,compute,video
+WORKDIR /tmp/workdir
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM nvidia/cudagl:9.2-runtime-ubuntu18.04 AS runtime-base
+
+ENV NVIDIA_DRIVER_CAPABILITIES compat32,compute,video
+WORKDIR /tmp/workdir
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 libxcb-shape0-dev && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+
+FROM devel-base as build
+
+ENV NVIDIA_HEADERS_VERSION=8.1.24.9
+ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
+ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
+ARG PREFIX=/opt/ffmpeg
+ARG MAKEFLAGS="-j12"
+
+ENV FFMPEG_VERSION=4.2.1 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+ OPENCOREAMR_VERSION=0.1.5 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
+ X264_VERSION=20170226-2245-stable \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
+ SRC=/usr/local
+
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
+
+
+RUN buildDeps="autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl-dev \
+ yasm \
+ zlib1g-dev" && \
+ apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ${buildDeps}
+
+RUN \
+ DIR=/tmp/nv-codec-headers && \
+ git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ git checkout n${NVIDIA_HEADERS_VERSION} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=/tmp/opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=/tmp/x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=/tmp/x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${X265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+### libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=/tmp/ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
+ echo ${OGG_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libopus https://www.opus-codec.org/
+RUN \
+ DIR=/tmp/opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
+ echo ${OPUS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=/tmp/vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
+ echo ${VORBIS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=/tmp/theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
+ echo ${THEORA_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=/tmp/vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs --disable-install-bins && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=/tmp/lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=/tmp/xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
+ echo ${XVID_SHA256SUM} | sha256sum --check && \
+ tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=/tmp/fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=/tmp/openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=/tmp/freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
+ echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=/tmp/vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=/tmp/fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
+ echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=/tmp/fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libass https://github.com/libass/libass
+RUN \
+ DIR=/tmp/libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ echo ${LIBASS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=/tmp/kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/aom && \
+ git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+## ffmpeg https://ffmpeg.org/
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2
+
+
+
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-libnpp \
+ --enable-shared \
+ --enable-avresample \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-libmp3lame \
+ --enable-libopenjpeg \
+ --enable-libopus \
+ --enable-libtheora \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+ --enable-libx265 \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-nonfree \
+ --enable-openssl \
+ --enable-libfdk_aac \
+ --enable-libkvazaar \
+ --enable-libaom --extra-libs=-lpthread \
+ --enable-postproc \
+ --enable-small \
+ --enable-version3 \
+ --extra-cflags="-I${PREFIX}/include -I${PREFIX}/include/ffnvcodec -I/usr/local/cuda/include/" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/cuda/lib64/ -L/usr/local/cuda/lib32/" \
+ --extra-libs=-ldl \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+## cleanup
+RUN \
+ ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+
+FROM runtime-base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
+
+COPY --from=build /usr/local/bin /usr/local/bin/
+COPY --from=build /usr/local/share /usr/local/share/
+COPY --from=build /usr/local/lib /usr/local/lib/
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+
diff --git a/docker-images/4.2/scratch/Dockerfile b/docker-images/4.2/scratch/Dockerfile
new file mode 100644
index 000000000..08328c117
--- /dev/null
+++ b/docker-images/4.2/scratch/Dockerfile
@@ -0,0 +1,390 @@
+# ffmpeg - http://ffmpeg.org/download.html
+#
+# https://hub.docker.com/r/jrottenberg/ffmpeg/
+#
+#
+
+FROM alpine:3.8 AS build
+
+WORKDIR /tmp/workdir
+
+ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
+ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
+ARG PREFIX=/opt/ffmpeg
+ARG MAKEFLAGS="-j2"
+
+ENV FFMPEG_VERSION=4.2.1 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+ OPENCOREAMR_VERSION=0.1.5 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
+ X264_VERSION=20170226-2245-stable \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
+ SRC=/usr/local
+
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
+
+
+RUN buildDeps="autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ expat-dev \
+ file \
+ g++ \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ git" && \
+ apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=/tmp/opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=/tmp/x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=/tmp/x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${X265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+### libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=/tmp/ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
+ echo ${OGG_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libopus https://www.opus-codec.org/
+RUN \
+ DIR=/tmp/opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
+ echo ${OPUS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=/tmp/vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
+ echo ${VORBIS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=/tmp/theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
+ echo ${THEORA_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=/tmp/vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs --disable-install-bins && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=/tmp/lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=/tmp/xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
+ echo ${XVID_SHA256SUM} | sha256sum --check && \
+ tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=/tmp/fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=/tmp/openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=/tmp/freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
+ echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=/tmp/vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=/tmp/fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
+ echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=/tmp/fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libass https://github.com/libass/libass
+RUN \
+ DIR=/tmp/libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ echo ${LIBASS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=/tmp/kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/aom && \
+ git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+## ffmpeg https://ffmpeg.org/
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2
+
+
+
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-libmp3lame \
+ --enable-libopenjpeg \
+ --enable-libopus \
+ --enable-libtheora \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+ --enable-libx265 \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-nonfree \
+ --enable-openssl \
+ --enable-libfdk_aac \
+ --enable-libkvazaar \
+ --enable-libaom --extra-libs=-lpthread \
+ --enable-postproc \
+ --enable-small \
+ --enable-version3 \
+ --extra-cflags="-I${PREFIX}/include" \
+ --extra-ldflags="-L${PREFIX}/lib" \
+ --extra-libs=-ldl \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+
+RUN \
+ mkdir -p /tmp/fakeroot/lib && \
+ ldd ${PREFIX}/bin/ffmpeg | cut -d ' ' -f 3 | strings | xargs -I R cp R /tmp/fakeroot/lib/ && \
+ for lib in /tmp/fakeroot/lib/*; do strip --strip-all $lib; done && \
+ cp -r ${PREFIX}/bin /tmp/fakeroot/bin/ && \
+ cp -r ${PREFIX}/share/ffmpeg /tmp/fakeroot/share/ && \
+ LD_LIBRARY_PATH=/tmp/fakeroot/lib /tmp/fakeroot/bin/ffmpeg -buildconf
+
+### Release Stage
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /tmp/fakeroot/ /
+
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/4.2/ubuntu/Dockerfile b/docker-images/4.2/ubuntu/Dockerfile
new file mode 100644
index 000000000..32013d6ac
--- /dev/null
+++ b/docker-images/4.2/ubuntu/Dockerfile
@@ -0,0 +1,391 @@
+# ffmpeg - http://ffmpeg.org/download.html
+#
+# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
+#
+# https://hub.docker.com/r/jrottenberg/ffmpeg/
+#
+#
+FROM ubuntu:18.04 AS base
+
+WORKDIR /tmp/workdir
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
+ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
+ARG PREFIX=/opt/ffmpeg
+ARG MAKEFLAGS="-j2"
+
+ENV FFMPEG_VERSION=4.2.1 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+ OPENCOREAMR_VERSION=0.1.5 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
+ X264_VERSION=20170226-2245-stable \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
+ SRC=/usr/local
+
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
+
+
+RUN buildDeps="autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl-dev \
+ yasm \
+ zlib1g-dev" && \
+ apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ${buildDeps}
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=/tmp/opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=/tmp/x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=/tmp/x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${X265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+### libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=/tmp/ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
+ echo ${OGG_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libopus https://www.opus-codec.org/
+RUN \
+ DIR=/tmp/opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
+ echo ${OPUS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=/tmp/vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
+ echo ${VORBIS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=/tmp/theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
+ echo ${THEORA_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=/tmp/vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs --disable-install-bins && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=/tmp/lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=/tmp/xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
+ echo ${XVID_SHA256SUM} | sha256sum --check && \
+ tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=/tmp/fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=/tmp/openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=/tmp/freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
+ echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=/tmp/vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=/tmp/fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
+ echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=/tmp/fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libass https://github.com/libass/libass
+RUN \
+ DIR=/tmp/libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ echo ${LIBASS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=/tmp/kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/aom && \
+ git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+## ffmpeg https://ffmpeg.org/
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2
+
+
+
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-libmp3lame \
+ --enable-libopenjpeg \
+ --enable-libopus \
+ --enable-libtheora \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+ --enable-libx265 \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-nonfree \
+ --enable-openssl \
+ --enable-libfdk_aac \
+ --enable-libkvazaar \
+ --enable-libaom --extra-libs=-lpthread \
+ --enable-postproc \
+ --enable-small \
+ --enable-version3 \
+ --extra-cflags="-I${PREFIX}/include" \
+ --extra-ldflags="-L${PREFIX}/lib" \
+ --extra-libs=-ldl \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+## cleanup
+RUN \
+ ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+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/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/4.2/vaapi/Dockerfile b/docker-images/4.2/vaapi/Dockerfile
new file mode 100644
index 000000000..72f755690
--- /dev/null
+++ b/docker-images/4.2/vaapi/Dockerfile
@@ -0,0 +1,398 @@
+# ffmpeg - http://ffmpeg.org/download.html
+#
+# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
+#
+# https://hub.docker.com/r/jrottenberg/ffmpeg/
+#
+#
+FROM ubuntu:18.04 AS base
+
+WORKDIR /tmp/workdir
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
+ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
+ARG PREFIX=/opt/ffmpeg
+ARG MAKEFLAGS="-j2"
+
+ENV FFMPEG_VERSION=4.2.1 \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
+ OPENCOREAMR_VERSION=0.1.5 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
+ X264_VERSION=20170226-2245-stable \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
+ SRC=/usr/local
+
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
+
+
+RUN buildDeps="autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl-dev \
+ yasm \
+ libva-dev \
+ zlib1g-dev" && \
+ apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends ${buildDeps}
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=/tmp/opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=/tmp/x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=/tmp/x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${X265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+### libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=/tmp/ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
+ echo ${OGG_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libopus https://www.opus-codec.org/
+RUN \
+ DIR=/tmp/opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
+ echo ${OPUS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=/tmp/vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
+ echo ${VORBIS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=/tmp/theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
+ echo ${THEORA_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=/tmp/vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs --disable-install-bins && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=/tmp/lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=/tmp/xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
+ echo ${XVID_SHA256SUM} | sha256sum --check && \
+ tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=/tmp/fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=/tmp/openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=/tmp/freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
+ echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=/tmp/vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=/tmp/fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
+ echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=/tmp/fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libass https://github.com/libass/libass
+RUN \
+ DIR=/tmp/libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ echo ${LIBASS_SHA256SUM} | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=/tmp/kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/aom && \
+ git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+## ffmpeg https://ffmpeg.org/
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2
+
+
+
+RUN \
+ DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-vaapi \
+ --enable-shared \
+ --enable-avresample \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-libmp3lame \
+ --enable-libopenjpeg \
+ --enable-libopus \
+ --enable-libtheora \
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+ --enable-libx265 \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-nonfree \
+ --enable-openssl \
+ --enable-libfdk_aac \
+ --enable-libkvazaar \
+ --enable-libaom --extra-libs=-lpthread \
+ --enable-postproc \
+ --enable-small \
+ --enable-version3 \
+ --extra-cflags="-I${PREFIX}/include" \
+ --extra-ldflags="-L${PREFIX}/lib" \
+ --extra-libs=-ldl \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+## cleanup
+RUN \
+ ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+ENV LD_LIBRARY_PATH=/usr/local/lib
+
+COPY --from=build /usr/local /usr/local/
+
+RUN \
+ apt-get update -y && \
+ apt-get install -y --no-install-recommends libva-drm2 libva2 i965-va-driver && \
+ rm -rf /var/lib/apt/lists/*
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/snapshot/alpine/Dockerfile b/docker-images/snapshot/alpine/Dockerfile
index 9995c30d1..5b1b42eb8 100644
--- a/docker-images/snapshot/alpine/Dockerfile
+++ b/docker-images/snapshot/alpine/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
@@ -18,37 +20,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=snapshot \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=snapshot \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -70,6 +74,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
@@ -78,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -169,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -332,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,3 +390,460 @@ COPY --from=build /usr/local /usr/local
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=snapshot
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+ARG LIBDAV1D_VERSION=0.3.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## dav1d https://code.videolan.org/videolan/dav1d
+RUN \
+ DIR=dav1d && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://code.videolan.org/videolan/dav1d/-/archive/${LIBDAV1D_VERSION}/dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ meson build --prefix ${PREFIX} --buildtype release && \
+ ninja -C build install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-libdav1d \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/snapshot/arm32v7/Dockerfile b/docker-images/snapshot/arm32v7/Dockerfile
new file mode 100644
index 000000000..625aa0b2d
--- /dev/null
+++ b/docker-images/snapshot/arm32v7/Dockerfile
@@ -0,0 +1,453 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update libva \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apk add --no-cache --update libva-dev \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
+
+ARG FFMPEG_VERSION=snapshot
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+ARG LIBDAV1D_VERSION=0.3.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## dav1d https://code.videolan.org/videolan/dav1d
+RUN \
+ DIR=dav1d && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://code.videolan.org/videolan/dav1d/-/archive/${LIBDAV1D_VERSION}/dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ meson build --prefix ${PREFIX} --buildtype release && \
+ ninja -C build install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-libdav1d \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+
+FROM scratch AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["/bin/ffmpeg"]
+
+COPY --from=build /usr/local /
+RUN test "scratch" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/docker-images/snapshot/centos/Dockerfile b/docker-images/snapshot/centos/Dockerfile
index 231354327..7c2af0160 100644
--- a/docker-images/snapshot/centos/Dockerfile
+++ b/docker-images/snapshot/centos/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
@@ -20,37 +22,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=snapshot \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=snapshot \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -79,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -170,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -333,6 +348,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -373,4 +389,497 @@ ENV LD_LIBRARY_PATH=/usr/local/lib64
COPY --from=build /usr/local/ /usr/local/
# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM centos:7 as base
+
+RUN yum -y install libva libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig:/tmp/build/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ libva-devel \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
+
+ARG FFMPEG_VERSION=snapshot
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+ARG LIBDAV1D_VERSION=0.3.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## dav1d https://code.videolan.org/videolan/dav1d
+RUN \
+ DIR=dav1d && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://code.videolan.org/videolan/dav1d/-/archive/${LIBDAV1D_VERSION}/dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ meson build --prefix ${PREFIX} --buildtype release && \
+ ninja -C build install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-libdav1d \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/snapshot/nvidia/Dockerfile b/docker-images/snapshot/nvidia/Dockerfile
index 84d8ad4d1..05715d265 100644
--- a/docker-images/snapshot/nvidia/Dockerfile
+++ b/docker-images/snapshot/nvidia/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -35,37 +37,39 @@ ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j12"
-ENV FFMPEG_VERSION=snapshot \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=snapshot \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -105,7 +109,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -196,12 +200,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -363,6 +378,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -409,3 +425,454 @@ COPY --from=build /usr/local/lib /usr/local/lib/
# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> fix extra comma
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+ARG C_INCLUDE_PATH=/tmp/build/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
+
+ARG FFMPEG_VERSION=snapshot
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+ARG LIBDAV1D_VERSION=0.3.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## dav1d https://code.videolan.org/videolan/dav1d
+RUN \
+ DIR=dav1d && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://code.videolan.org/videolan/dav1d/-/archive/${LIBDAV1D_VERSION}/dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ meson build --prefix ${PREFIX} --buildtype release && \
+ ninja -C build install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-libdav1d \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
diff --git a/docker-images/snapshot/scratch/Dockerfile b/docker-images/snapshot/scratch/Dockerfile
index 0e70f0159..85d963184 100644
--- a/docker-images/snapshot/scratch/Dockerfile
+++ b/docker-images/snapshot/scratch/Dockerfile
@@ -13,37 +13,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=snapshot \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=snapshot \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -66,6 +68,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
@@ -75,7 +78,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -166,12 +169,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -329,6 +343,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker-images/snapshot/ubuntu/Dockerfile b/docker-images/snapshot/ubuntu/Dockerfile
index 62e942a28..ebf591472 100644
--- a/docker-images/snapshot/ubuntu/Dockerfile
+++ b/docker-images/snapshot/ubuntu/Dockerfile
@@ -1,3 +1,5 @@
+<<<<<<< HEAD
+<<<<<<< HEAD
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
@@ -5,7 +7,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -21,37 +23,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=snapshot \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=snapshot \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -80,7 +84,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -171,12 +175,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -334,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
@@ -374,4 +390,454 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+=======
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends libva2 libva-drm2 i965-va-driver ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=/tmp/build
+ARG MAKEFLAGS=-j6
+ARG PKG_CONFIG_PATH=/tmp/build/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ libva-dev \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
+
+ARG FFMPEG_VERSION=snapshot
+ARG LIBOPENCORE_AMR_VERSION=0.1.5
+ARG LIBX264_VERSION=20190526-2245-stable
+ARG LIBX265_VERSION=3.0
+ARG LIBOGG_VERSION=1.3.3
+ARG LIBOPUS_VERSION=1.3.1
+ARG LIBVORBIS_VERSION=1.3.6
+ARG LIBTHEORA_VERSION=1.1.1
+ARG LIBVPX_VERSION=1.8.0
+ARG LIBMP3LAME_VERSION=3.100
+ARG LIBXVID_VERSION=1.3.5
+ARG LIBFDK_AAC_VERSION=2.0.0
+ARG LIBOPENJPEG_VERSION=2.3.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBVIDSTAB_VERSION=1.1.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBFREETYPE_VERSION=2.10.0
+ARG LIBFRIBIDI_VERSION=0.19.7
+ARG LIBFONTCONFIG_VERSION=2.13.1
+ARG LIBASS_VERSION=0.14.0
+ARG LIBKVAZAAR_VERSION=1.2.0
+ARG LIBAOM_VERSION=1.0.0-errata1
+ARG NVENC_VERSION=9.0.18.1
+ARG LIBDAV1D_VERSION=0.3.1
+
+ARG LIBOGG_SHA256SUM=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+ARG LIBOPUS_SHA256SUM=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+ARG LIBVORBIS_SHA256SUM=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+ARG LIBTHEORA_SHA256SUM=40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+ARG LIBFRIBIDI_SHA256SUM=3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+## dav1d https://code.videolan.org/videolan/dav1d
+RUN \
+ DIR=dav1d && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://code.videolan.org/videolan/dav1d/-/archive/${LIBDAV1D_VERSION}/dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ meson build --prefix ${PREFIX} --buildtype release && \
+ ninja -C build install && \
+ rm -rf ${DIR}
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ --enable-libopencore-amrnb \
+ --enable-libopencore-amrwb \
+ --enable-version3 \
+ --enable-libx264 \
+ --enable-libx265 \
+ --enable-libopus \
+ --enable-libvorbis \
+ --enable-libtheora \
+ --enable-libvpx \
+ --enable-libmp3lame \
+ --enable-libxvid \
+ --enable-libfdk_aac \
+ --enable-nonfree \
+ --enable-libopenjpeg \
+ --enable-libfreetype \
+ --enable-libvidstab \
+ --enable-gpl \
+ --enable-libass \
+ --enable-libkvazaar \
+ --enable-libaom \
+ --extra-libs=-lpthread \
+ --enable-vaapi \
+ --enable-cuda \
+ --enable-nvenc \
+ --enable-cuvid \
+ --enable-libdav1d \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
+
+RUN \
+ if false; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if true; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
+
+FROM base AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["ffmpeg"]
+
+COPY --from=build /usr/local /usr/local
+RUN test "base" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
+<<<<<<< HEAD
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
diff --git a/docker-images/snapshot/vaapi/Dockerfile b/docker-images/snapshot/vaapi/Dockerfile
index 6c0966c55..58d5ca86f 100644
--- a/docker-images/snapshot/vaapi/Dockerfile
+++ b/docker-images/snapshot/vaapi/Dockerfile
@@ -21,37 +21,39 @@ ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG PREFIX=/opt/ffmpeg
ARG MAKEFLAGS="-j2"
-ENV FFMPEG_VERSION=snapshot \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+ENV FFMPEG_VERSION=snapshot \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
RUN buildDeps="autoconf \
@@ -81,7 +83,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -172,12 +174,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -336,6 +349,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/docker_gen.sh b/docker_gen.sh
new file mode 100644
index 000000000..9e45ef55a
--- /dev/null
+++ b/docker_gen.sh
@@ -0,0 +1,60 @@
+#! /bin/sh
+
+<<<<<<< HEAD
+<<<<<<< HEAD
+variants=("ubuntu" "centos" "alpine" "nvidia" "arm32v7")
+versions=("2.8" "3.2" "3.3" "3.4" "4.0" "4.1" "snapshot")
+
+for variant in ${variants[*]}; do
+ for version in ${versions[*]}; do
+=======
+variants=("ubuntu" "centos" "alpine", "nvidia", "arm32v7")
+versions=("2.8" "3.2" "3.3" "3.4" "4.0" "4.1" "snapshot")
+
+for variant in ${variants[*]}; do
+ for version in ${versions[*]}; do
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+variants=("ubuntu" "centos" "alpine" "nvidia" "arm32v7")
+versions=("2.8" "3.2" "3.3" "3.4" "4.0" "4.1" "snapshot")
+
+for variant in ${variants[*]}; do
+ for version in ${versions[*]}; do
+>>>>>>> fix extra comma
+ echo "${variant}: ffmpeg-${version}"
+ dir="docker-images/${version}/${variant}"
+ mkdir -p ${dir}
+ python3 update.py --slim --enable-all ${variant} ${version} > ${dir}/Dockerfile
+ done
+done
+
+scratch_variant="alpine"
+<<<<<<< HEAD
+<<<<<<< HEAD
+for version in ${versions[*]}; do
+=======
+for version in ${versions[*]}; do
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+for version in ${versions[*]}; do
+>>>>>>> fix extra comma
+ dir="docker-images/${version}/${variant}"
+ mkdir -p ${dir}
+ python3 update.py --scratch --enable-all ${scratch_variant} ${version} > ${dir}/Dockerfile
+done
+
+# FFMPEG 2.8 Patches
+# FFMPEG requires libssl1.0
+sed -ri\
+ -e 's/alpine:[[:digit:]]+.[[:digit:]]+/alpine:3.8/' \
+ -e 's/libssl1.[[:digit:]]/libssl1.0/' \
+ -e 's/libcrypto1.[[:digit:]]/libcrypto1.0/' \
+<<<<<<< HEAD
+<<<<<<< HEAD
+ docker-images/2.8/alpine/Dockerfile
+=======
+ docker-images/2.8/alpine/Dockerfile
+>>>>>>> rewrite the dockerfile generation + vdapu + armv7 + dav1d
+=======
+ docker-images/2.8/alpine/Dockerfile
+>>>>>>> fix extra comma
diff --git a/templates/Dockerfile-env b/templates/Dockerfile-env
index 4da6fa0bf..5771e5d89 100644
--- a/templates/Dockerfile-env
+++ b/templates/Dockerfile-env
@@ -1,31 +1,33 @@
-FFMPEG_VERSION=%%FFMPEG_VERSION%% \
- FDKAAC_VERSION=0.1.5 \
- LAME_VERSION=3.100 \
- LIBASS_VERSION=0.13.7 \
- OGG_VERSION=1.3.2 \
+FFMPEG_VERSION=%%FFMPEG_VERSION%% \
+ AOM_VERSION=v1.0.0 \
+ FDKAAC_VERSION=0.1.5 \
+ FONTCONFIG_VERSION=2.12.4 \
+ FREETYPE_VERSION=2.5.5 \
+ FRIBIDI_VERSION=0.19.7 \
+ KVAZAAR_VERSION=1.2.0 \
+ LAME_VERSION=3.100 \
+ LIBASS_VERSION=0.13.7 \
+ LIBVIDSTAB_VERSION=1.1.0 \
+ OGG_VERSION=1.3.2 \
OPENCOREAMR_VERSION=0.1.5 \
- OPUS_VERSION=1.2 \
- OPENJPEG_VERSION=2.1.2 \
- THEORA_VERSION=1.1.1 \
- VORBIS_VERSION=1.3.5 \
- VPX_VERSION=1.8.0 \
+ OPUS_VERSION=1.2 \
+ OPENJPEG_VERSION=2.1.2 \
+ THEORA_VERSION=1.1.1 \
+ VORBIS_VERSION=1.3.5 \
+ VPX_VERSION=1.8.0 \
+ WEBP_VERSION=1.0.2 \
X264_VERSION=20170226-2245-stable \
- X265_VERSION=2.3 \
- XVID_VERSION=1.3.4 \
- FREETYPE_VERSION=2.5.5 \
- FRIBIDI_VERSION=0.19.7 \
- FONTCONFIG_VERSION=2.12.4 \
- LIBVIDSTAB_VERSION=1.1.0 \
- KVAZAAR_VERSION=1.2.0 \
- AOM_VERSION=v1.0.0 \
+ X265_VERSION=3.1.1 \
+ XVID_VERSION=1.3.4 \
SRC=/usr/local
-ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
-ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
-ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
-ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
-ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
-ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
-ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
-ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
-ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
+ARG FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
+ARG LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
+ARG LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
+ARG OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
+ARG OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
+ARG THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
+ARG VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
+ARG XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"
+
diff --git a/templates/Dockerfile-run b/templates/Dockerfile-run
index 31fe08a6d..6ba368990 100644
--- a/templates/Dockerfile-run
+++ b/templates/Dockerfile-run
@@ -3,7 +3,7 @@ RUN \
DIR=/tmp/opencore-amr && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --enable-shared && \
make && \
@@ -94,12 +94,23 @@ RUN \
make && \
make install && \
rm -rf ${DIR}
+### libwebp https://developers.google.com/speed/webp/
+RUN \
+ DIR=/tmp/vebp && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
DIR=/tmp/lame && \
mkdir -p ${DIR} && \
cd ${DIR} && \
- curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
+ curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
make && \
@@ -257,6 +268,7 @@ RUN \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
+ --enable-libwebp \
--enable-libx265 \
--enable-libxvid \
--enable-libx264 \
diff --git a/templates/Dockerfile-template.alpine b/templates/Dockerfile-template.alpine
index 6b309db3f..a28e57125 100644
--- a/templates/Dockerfile-template.alpine
+++ b/templates/Dockerfile-template.alpine
@@ -39,6 +39,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
expat-dev" && \
apk add --no-cache --update ${buildDeps}
diff --git a/templates/Dockerfile-template.centos b/templates/Dockerfile-template.centos
deleted file mode 100644
index 04ffaccf3..000000000
--- a/templates/Dockerfile-template.centos
+++ /dev/null
@@ -1,64 +0,0 @@
-# ffmpeg - http://ffmpeg.org/download.html
-#
-# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
-#
-# https://hub.docker.com/r/jrottenberg/ffmpeg/
-#
-#
-FROM centos:7 AS base
-
-RUN yum -y install libgomp && \
- yum clean all;
-
-
-FROM base AS build
-
-WORKDIR /tmp/workdir
-
-ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
-ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
-ARG PREFIX=/opt/ffmpeg
-ARG MAKEFLAGS="-j2"
-
-ENV %%ENV%%
-
-RUN buildDeps="autoconf \
- automake \
- bzip2 \
- cmake \
- expat-devel \
- gcc \
- gcc-c++ \
- git \
- gperf \
- libtool \
- make \
- nasm \
- perl \
- openssl-devel \
- tar \
- yasm \
- which \
- zlib-devel" && \
- echo "${SRC}/lib" > /etc/ld.so.conf.d/libc.conf && \
- yum --enablerepo=extras install -y epel-release && \
- yum install -y ${buildDeps}
-%%RUN%%
-RUN \
- ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib64/ && \
- cp ${PREFIX}/bin/* /usr/local/bin/ && \
- cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
- LD_LIBRARY_PATH=/usr/local/lib64 ffmpeg -buildconf
-
-FROM base
-MAINTAINER Julien Rottenberg
-
-CMD ["--help"]
-ENTRYPOINT ["ffmpeg"]
-
-ENV LD_LIBRARY_PATH=/usr/local/lib64
-
-COPY --from=build /usr/local/ /usr/local/
-
-# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
diff --git a/templates/Dockerfile-template.nvidia b/templates/Dockerfile-template.nvidia
deleted file mode 100644
index 5938d9908..000000000
--- a/templates/Dockerfile-template.nvidia
+++ /dev/null
@@ -1,95 +0,0 @@
-# ffmpeg - http://ffmpeg.org/download.html
-#
-# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
-#
-# https://hub.docker.com/r/jrottenberg/ffmpeg/
-#
-#
-
-FROM nvidia/cudagl:9.2-devel-ubuntu18.04 AS devel-base
-
-ENV NVIDIA_DRIVER_CAPABILITIES compat32,compute,video
-WORKDIR /tmp/workdir
-
-RUN apt-get -yqq update && \
- apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
- apt-get autoremove -y && \
- apt-get clean -y
-
-FROM nvidia/cudagl:9.2-runtime-ubuntu18.04 AS runtime-base
-
-ENV NVIDIA_DRIVER_CAPABILITIES compat32,compute,video
-WORKDIR /tmp/workdir
-
-RUN apt-get -yqq update && \
- apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 libxcb-shape0-dev && \
- apt-get autoremove -y && \
- apt-get clean -y
-
-
-FROM devel-base as build
-
-ENV NVIDIA_HEADERS_VERSION=8.1.24.9
-ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
-ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/ffmpeg/lib"
-ARG PREFIX=/opt/ffmpeg
-ARG MAKEFLAGS="-j12"
-
-ENV %%ENV%%
-
-RUN buildDeps="autoconf \
- automake \
- cmake \
- curl \
- bzip2 \
- libexpat1-dev \
- g++ \
- gcc \
- git \
- gperf \
- libtool \
- make \
- nasm \
- perl \
- pkg-config \
- python \
- libssl-dev \
- yasm \
- zlib1g-dev" && \
- apt-get -yqq update && \
- apt-get install -yq --no-install-recommends ${buildDeps}
-
-RUN \
- DIR=/tmp/nv-codec-headers && \
- git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
- cd ${DIR} && \
- git checkout n${NVIDIA_HEADERS_VERSION} && \
- sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
- make && \
- make install && \
- rm -rf ${DIR}
-
-%%RUN%%
-## cleanup
-RUN \
- ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
- cp ${PREFIX}/bin/* /usr/local/bin/ && \
- cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
- LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
-
-
-
-FROM runtime-base AS release
-MAINTAINER Julien Rottenberg
-
-CMD ["--help"]
-ENTRYPOINT ["ffmpeg"]
-ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
-
-COPY --from=build /usr/local/bin /usr/local/bin/
-COPY --from=build /usr/local/share /usr/local/share/
-COPY --from=build /usr/local/lib /usr/local/lib/
-
-# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
-
diff --git a/templates/Dockerfile-template.scratch b/templates/Dockerfile-template.scratch
index 494237f12..676d5e9b0 100644
--- a/templates/Dockerfile-template.scratch
+++ b/templates/Dockerfile-template.scratch
@@ -35,6 +35,7 @@ RUN buildDeps="autoconf \
openssl-dev \
tar \
yasm \
+ nasm \
zlib-dev \
git" && \
apk add --update ${buildDeps} libgcc libstdc++ ca-certificates libcrypto1.0 libssl1.0
diff --git a/templates/Dockerfile-template.ubuntu b/templates/Dockerfile-template.ubuntu
index 3aa59439e..5b99fe043 100644
--- a/templates/Dockerfile-template.ubuntu
+++ b/templates/Dockerfile-template.ubuntu
@@ -5,7 +5,7 @@
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
-FROM ubuntu:16.04 AS base
+FROM ubuntu:18.04 AS base
WORKDIR /tmp/workdir
@@ -62,4 +62,4 @@ 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/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/templates/Dockerfile-template.vaapi b/templates/Dockerfile-template.vaapi
deleted file mode 100644
index ccd06f5c2..000000000
--- a/templates/Dockerfile-template.vaapi
+++ /dev/null
@@ -1,71 +0,0 @@
-# ffmpeg - http://ffmpeg.org/download.html
-#
-# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
-#
-# https://hub.docker.com/r/jrottenberg/ffmpeg/
-#
-#
-FROM ubuntu:18.04 AS base
-
-WORKDIR /tmp/workdir
-
-RUN apt-get -yqq update && \
- apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 && \
- apt-get autoremove -y && \
- apt-get clean -y
-
-FROM base as build
-
-ARG PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
-ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib
-ARG PREFIX=/opt/ffmpeg
-ARG MAKEFLAGS="-j2"
-
-ENV %%ENV%%
-
-RUN buildDeps="autoconf \
- automake \
- cmake \
- curl \
- bzip2 \
- libexpat1-dev \
- g++ \
- gcc \
- git \
- gperf \
- libtool \
- make \
- nasm \
- perl \
- pkg-config \
- python \
- libssl-dev \
- yasm \
- libva-dev \
- zlib1g-dev" && \
- apt-get -yqq update && \
- apt-get install -yq --no-install-recommends ${buildDeps}
-%%RUN%%
-## cleanup
-RUN \
- ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
- cp ${PREFIX}/bin/* /usr/local/bin/ && \
- cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
- LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
-
-FROM base AS release
-MAINTAINER Julien Rottenberg
-
-CMD ["--help"]
-ENTRYPOINT ["ffmpeg"]
-ENV LD_LIBRARY_PATH=/usr/local/lib
-
-COPY --from=build /usr/local /usr/local/
-
-RUN \
- apt-get update -y && \
- apt-get install -y --no-install-recommends libva-drm2 libva2 i965-va-driver && \
- rm -rf /var/lib/apt/lists/*
-
-# Let's make sure the app built correctly
-# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
diff --git a/templates/azure.template b/templates/azure.template
index 9f6991ba4..8d146bc58 100644
--- a/templates/azure.template
+++ b/templates/azure.template
@@ -1,3 +1,8 @@
+variables:
+- group: videotoolsbuild-dockerhub
+- name: DOCKER
+ value: jrottenberg/ffmpeg
+
jobs:
- job: Build
pool:
@@ -7,6 +12,14 @@ jobs:
matrix:
%%VERSIONS%%
steps:
- - script: |
- docker build -t ffmpeg:${VERSION}-${VARIANT} --build-arg MAKEFLAGS="-j$(($(grep -c ^processor /proc/cpuinfo) + 1))" docker-images/${VERSION}/${VARIANT}
- docker run --rm ffmpeg:${VERSION}-${VARIANT} -buildconf
+ - bash: |
+ docker build -t ${DOCKER}:${VERSION}-${VARIANT} --build-arg MAKEFLAGS="-j$(($(grep -c ^processor /proc/cpuinfo) + 1))" docker-images/${VERSION}/${VARIANT}
+ docker run --rm ${DOCKER}:${VERSION}-${VARIANT} -buildconf
+ displayName: Build docker image
+ - bash: |
+ docker login --username ${DOCKER_LOGIN} --password ${DOCKER_PASSWORD}
+ docker push ${DOCKER}:${VERSION}-${VARIANT}
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
+ displayName: Push docker image
+ env:
+ DOCKER_PASSWORD: $(docker.password)
\ No newline at end of file
diff --git a/templates/common/fat b/templates/common/fat
new file mode 100644
index 000000000..c42cffabd
--- /dev/null
+++ b/templates/common/fat
@@ -0,0 +1,4 @@
+
+RUN \
+ cp -r ${PREFIX}/* /usr/local && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
diff --git a/templates/common/release b/templates/common/release
new file mode 100644
index 000000000..25f32d312
--- /dev/null
+++ b/templates/common/release
@@ -0,0 +1,12 @@
+
+FROM $source AS release
+MAINTAINER Julien Rottenberg
+
+CMD ["--help"]
+ENTRYPOINT ["$entrypoint"]
+
+COPY --from=build /usr/local $install_dir
+RUN test "$source" = "base" && ldconfig /usr/local/lib /usr/local/lib64
+
+# Let's make sure the app built correctly
+# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output
\ No newline at end of file
diff --git a/templates/common/scratch b/templates/common/scratch
new file mode 100644
index 000000000..90f23c615
--- /dev/null
+++ b/templates/common/scratch
@@ -0,0 +1,19 @@
+
+RUN \
+ if $bins; then \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/* | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ cut -d ' ' -f 3 | \
+ strings | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if $strip; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
diff --git a/templates/common/slim b/templates/common/slim
new file mode 100644
index 000000000..0a77506f7
--- /dev/null
+++ b/templates/common/slim
@@ -0,0 +1,17 @@
+
+RUN \
+ if $bins; then \
+ cp -r ${PREFIX}/lib/*so* /usr/local/lib/ && \
+ cp ${PREFIX}/bin/* /usr/local/bin/ ; \
+ else \
+ LD_LIBRARY_PATH=${PREFIX}/lib ldd ${PREFIX}/bin/ffmpeg | \
+ grep ${PREFIX} | \
+ cut -d ' ' -f 3 | \
+ xargs -i cp {} /usr/local/lib/ && \
+ cp ${PREFIX}/bin/ff* /usr/local/bin/ ; \
+ fi && \
+ if $strip; then \
+ for lib in /usr/local/lib/*.so* /usr/local/bin/*; do strip --strip-all $lib; done ; \
+ fi && \
+ cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
+ LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf
\ No newline at end of file
diff --git a/templates/config/config_2.8.ini b/templates/config/config_2.8.ini
new file mode 100644
index 000000000..93e4a0ba0
--- /dev/null
+++ b/templates/config/config_2.8.ini
@@ -0,0 +1,90 @@
+[ffmpeg]
+Version = 2.8.15
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 0.1.6
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 0.6.1
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 1.5.2
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=8.2.15.8
+Flags = --enable-nvenc, --enable-nonfree
+Variants = nvidia
\ No newline at end of file
diff --git a/templates/config/config_3.2.ini b/templates/config/config_3.2.ini
new file mode 100644
index 000000000..15d3972f7
--- /dev/null
+++ b/templates/config/config_3.2.ini
@@ -0,0 +1,90 @@
+[ffmpeg]
+Version = 3.2.14
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 0.1.6
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 1.2.0
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 2.1.2
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=9.0.18.1
+Flags = --enable-nvenc, --enable-nonfree
+Variants = nvidia
\ No newline at end of file
diff --git a/templates/config/config_3.3.ini b/templates/config/config_3.3.ini
new file mode 100644
index 000000000..8f80f2de5
--- /dev/null
+++ b/templates/config/config_3.3.ini
@@ -0,0 +1,90 @@
+[ffmpeg]
+Version = 3.3.9
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 0.1.6
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 1.2.0
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 2.1.2
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=9.0.18.1
+Flags = --enable-cuda, --enable-nvenc, --enable-cuvid
+Variants = nvidia
\ No newline at end of file
diff --git a/templates/config/config_3.4.ini b/templates/config/config_3.4.ini
new file mode 100644
index 000000000..8a523291b
--- /dev/null
+++ b/templates/config/config_3.4.ini
@@ -0,0 +1,90 @@
+[ffmpeg]
+Version = 3.4.6
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 0.1.6
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 1.2.0
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 2.1.2
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=9.0.18.1
+Flags = --enable-cuda, --enable-nvenc, --enable-cuvid
+Variants = nvidia
\ No newline at end of file
diff --git a/templates/config/config_4.0.ini b/templates/config/config_4.0.ini
new file mode 100644
index 000000000..29bc3ec9d
--- /dev/null
+++ b/templates/config/config_4.0.ini
@@ -0,0 +1,94 @@
+[ffmpeg]
+Version = 4.0.4
+
+[libaom]
+Version = 1.0.0-errata1
+Flags = --enable-libaom, --extra-libs=-lpthread
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 0.1.6
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 1.2.0
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 2.3.1
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=9.0.18.1
+Flags = --enable-cuda, --enable-nvenc, --enable-cuvid
+Variants = nvidia
\ No newline at end of file
diff --git a/templates/config/config_4.1.ini b/templates/config/config_4.1.ini
new file mode 100644
index 000000000..a06710c89
--- /dev/null
+++ b/templates/config/config_4.1.ini
@@ -0,0 +1,99 @@
+[ffmpeg]
+Version = 4.1.3
+
+[libaom]
+Version = 1.0.0-errata1
+Flags = --enable-libaom, --extra-libs=-lpthread
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 2.0.0
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 1.2.0
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 2.3.1
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=9.0.18.1
+Flags = --enable-cuda, --enable-nvenc, --enable-cuvid
+Variants = nvidia
+
+[vdpau]
+Flags = --enable-vdpau
+Install = libvdpau
+InstallDev = libvdpau-dev
\ No newline at end of file
diff --git a/templates/config/config_snapshot.ini b/templates/config/config_snapshot.ini
new file mode 100644
index 000000000..c55c64bb6
--- /dev/null
+++ b/templates/config/config_snapshot.ini
@@ -0,0 +1,98 @@
+[ffmpeg]
+Version = snapshot
+
+[libaom]
+Version = 1.0.0-errata1
+Flags = --enable-libaom, --extra-libs=-lpthread
+
+[libass]
+Version = 0.14.0
+DependsOn = libfreetype, libfribidi, libfontconfig
+Flags = --enable-libass
+
+[libfdk-aac]
+Version = 2.0.0
+Flags = --enable-libfdk_aac, --enable-nonfree
+
+[libfontconfig]
+Version = 2.13.1
+
+[libfreetype]
+Version = 2.10.0
+Flags = --enable-libfreetype
+
+[libfribidi]
+Version = 0.19.7
+SHA256sum = 3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8
+
+[libkvazaar]
+Version = 1.2.0
+Flags = --enable-libkvazaar
+
+[libmp3lame]
+Version = 3.100
+Flags = --enable-libmp3lame
+
+[libogg]
+Version = 1.3.3
+SHA256sum = c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
+
+[libopencore-amr]
+Version = 0.1.5
+Flags = --enable-libopencore-amrnb, --enable-libopencore-amrwb, --enable-version3
+
+[libopenjpeg]
+Version = 2.3.1
+Flags = --enable-libopenjpeg
+
+[libopus]
+Version = 1.3.1
+SHA256sum = 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
+Flags = --enable-libopus
+
+[libtheora]
+Version = 1.1.1
+SHA256sum = 40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b
+DependsOn = libogg
+Flags = --enable-libtheora
+
+[libvidstab]
+Version = 1.1.0
+SHA256sum = 14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
+Flags = --enable-libvidstab, --enable-gpl
+
+[libvorbis]
+Version = 1.3.6
+SHA256sum = 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
+DependsOn = libogg
+Flags = --enable-libvorbis
+
+[libvpx]
+Version = 1.8.0
+Flags = --enable-libvpx
+
+[libx264]
+Version = 20190526-2245-stable
+Flags = --enable-libx264
+
+[libx265]
+Version = 3.0
+Flags = --enable-libx265
+
+[libxvid]
+Version = 1.3.5
+Flags = --enable-libxvid
+
+[vaapi]
+Flags = --enable-vaapi
+Install = libva
+InstallDev = libva-dev
+
+[nvenc]
+Version=9.0.18.1
+Flags = --enable-cuda, --enable-nvenc, --enable-cuvid
+Variants = nvidia
+
+[libdav1d]
+Version=0.3.1
+Flags= --enable-libdav1d
\ No newline at end of file
diff --git a/templates/fragments/ffmpeg b/templates/fragments/ffmpeg
new file mode 100644
index 000000000..00d6d6243
--- /dev/null
+++ b/templates/fragments/ffmpeg
@@ -0,0 +1,24 @@
+RUN \
+ DIR=ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
+ curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
+ ./configure \
+ --disable-debug \
+ --disable-doc \
+ --disable-ffplay \
+ --enable-shared \
+ --enable-avresample \
+ --enable-openssl \
+ --enable-postproc \
+ --enable-small \
+ --extra-cflags="-I${PREFIX}/include -I/usr/local/include" \
+ --extra-ldflags="-L${PREFIX}/lib -L/usr/local/lib" \
+ $lib_flags \
+ --prefix="${PREFIX}" && \
+ make && \
+ make install && \
+ make distclean && \
+ hash -r && \
+ cd tools && \
+ make qt-faststart && \
+ cp qt-faststart ${PREFIX}/bin
\ No newline at end of file
diff --git a/templates/fragments/libaom b/templates/fragments/libaom
new file mode 100644
index 000000000..d60d431a6
--- /dev/null
+++ b/templates/fragments/libaom
@@ -0,0 +1,11 @@
+RUN \
+ DIR=aom && \
+ git clone --branch v${LIBAOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
+ cd ${DIR} ; \
+ rm -rf CMakeCache.txt CMakeFiles ; \
+ mkdir -p ./aom_build ; \
+ cd ./aom_build ; \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
+ make ; \
+ make install ; \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libass b/templates/fragments/libass
new file mode 100644
index 000000000..f3f6aa318
--- /dev/null
+++ b/templates/fragments/libass
@@ -0,0 +1,11 @@
+RUN \
+ DIR=libass && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libdav1d b/templates/fragments/libdav1d
new file mode 100644
index 000000000..24a46e3a7
--- /dev/null
+++ b/templates/fragments/libdav1d
@@ -0,0 +1,10 @@
+## dav1d https://code.videolan.org/videolan/dav1d
+RUN \
+ DIR=dav1d && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://code.videolan.org/videolan/dav1d/-/archive/${LIBDAV1D_VERSION}/dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f dav1d-${LIBDAV1D_VERSION}.tar.gz && \
+ meson build --prefix ${PREFIX} --buildtype release && \
+ ninja -C build install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libfdk-aac b/templates/fragments/libfdk-aac
new file mode 100644
index 000000000..2f6768f2d
--- /dev/null
+++ b/templates/fragments/libfdk-aac
@@ -0,0 +1,12 @@
+### fdk-aac https://github.com/mstorsjo/fdk-aac
+RUN \
+ DIR=fdk-aac && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${LIBFDK_AAC_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libfontconfig b/templates/fragments/libfontconfig
new file mode 100644
index 000000000..6fed3e4bd
--- /dev/null
+++ b/templates/fragments/libfontconfig
@@ -0,0 +1,11 @@
+## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
+RUN \
+ DIR=fontconfig && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 &&\
+ tar -jx --strip-components=1 -f fontconfig-${LIBFONTCONFIG_VERSION}.tar.bz2 && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libfreetype b/templates/fragments/libfreetype
new file mode 100644
index 000000000..85f084118
--- /dev/null
+++ b/templates/fragments/libfreetype
@@ -0,0 +1,11 @@
+## freetype https://www.freetype.org/
+RUN \
+ DIR=freetype && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ tar -zx --strip-components=1 -f freetype-${LIBFREETYPE_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libfribidi b/templates/fragments/libfribidi
new file mode 100644
index 000000000..99469ca4b
--- /dev/null
+++ b/templates/fragments/libfribidi
@@ -0,0 +1,15 @@
+## fridibi https://www.fribidi.org/
+# + https://github.com/fribidi/fribidi/issues/8
+RUN \
+ DIR=fribidi && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/fribidi/fribidi/archive/${LIBFRIBIDI_VERSION}.tar.gz && \
+ echo "${LIBFRIBIDI_SHA256SUM} ${LIBFRIBIDI_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f ${LIBFRIBIDI_VERSION}.tar.gz && \
+ sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
+ ./bootstrap --no-config && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
+ make -j 1 && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libkvazaar b/templates/fragments/libkvazaar
new file mode 100644
index 000000000..94e80bd61
--- /dev/null
+++ b/templates/fragments/libkvazaar
@@ -0,0 +1,16 @@
+## kvazaar https://github.com/ultravideo/kvazaar
+RUN \
+ DIR=kvazaar && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/ultravideo/kvazaar/archive/v${LIBKVAZAAR_VERSION}.tar.gz &&\
+ tar -zx --strip-components=1 -f v${LIBKVAZAAR_VERSION}.tar.gz && \
+ if [ -e ./autogen.sh ]; then \
+ ./autogen.sh && \
+ ./configure -prefix="${PREFIX}" --disable-static --enable-shared ; \
+ else \
+ cd src ; \
+ fi && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libmp3lame b/templates/fragments/libmp3lame
new file mode 100644
index 000000000..06a6f4b1e
--- /dev/null
+++ b/templates/fragments/libmp3lame
@@ -0,0 +1,11 @@
+### libmp3lame http://lame.sourceforge.net/
+RUN \
+ DIR=lame && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/lame/lame/$(echo ${LIBMP3LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LIBMP3LAME_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libogg b/templates/fragments/libogg
new file mode 100644
index 000000000..d93368e15
--- /dev/null
+++ b/templates/fragments/libogg
@@ -0,0 +1,12 @@
+## libogg https://www.xiph.org/ogg/
+RUN \
+ DIR=ogg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${LIBOGG_VERSION}.tar.gz && \
+ echo "${LIBOGG_SHA256SUM} libogg-${LIBOGG_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libogg-${LIBOGG_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libopencore-amr b/templates/fragments/libopencore-amr
new file mode 100644
index 000000000..0eb21a18b
--- /dev/null
+++ b/templates/fragments/libopencore-amr
@@ -0,0 +1,11 @@
+## opencore-amr https://sourceforge.net/projects/opencore-amr/
+RUN \
+ DIR=opencore-amr && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://kent.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${LIBOPENCORE_AMR_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libopenjpeg b/templates/fragments/libopenjpeg
new file mode 100644
index 000000000..2c5c89747
--- /dev/null
+++ b/templates/fragments/libopenjpeg
@@ -0,0 +1,16 @@
+## openjpeg https://github.com/uclouvain/openjpeg
+RUN \
+ DIR=openjpeg && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ if test `echo ${LIBOPENJPEG_VERSION} | tr -d '.'` -ge '210'; then \
+ version_prefix='v'; \
+ else \
+ version_prefix='version.' ;\
+ fi && \
+ curl -sL https://github.com/uclouvain/openjpeg/archive/${version_prefix}${LIBOPENJPEG_VERSION}.tar.gz | \
+ tar -zx --strip-components=1 && \
+ cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libopus b/templates/fragments/libopus
new file mode 100644
index 000000000..a5a3f9d58
--- /dev/null
+++ b/templates/fragments/libopus
@@ -0,0 +1,12 @@
+RUN \
+ DIR=opus && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://archive.mozilla.org/pub/opus/opus-${LIBOPUS_VERSION}.tar.gz && \
+ echo "${LIBOPUS_SHA256SUM} opus-${LIBOPUS_VERSION}.tar.gz"| sha256sum --check && \
+ tar -zx --strip-components=1 -f opus-${LIBOPUS_VERSION}.tar.gz && \
+ autoreconf -fiv && \
+ ./configure --prefix="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libtheora b/templates/fragments/libtheora
new file mode 100644
index 000000000..431728745
--- /dev/null
+++ b/templates/fragments/libtheora
@@ -0,0 +1,12 @@
+### libtheora http://www.theora.org/
+RUN \
+ DIR=theora && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ echo "${LIBTHEORA_SHA256SUM} libtheora-${LIBTHEORA_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libtheora-${LIBTHEORA_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libvidstab b/templates/fragments/libvidstab
new file mode 100644
index 000000000..198daa7e3
--- /dev/null
+++ b/templates/fragments/libvidstab
@@ -0,0 +1,12 @@
+## libvstab https://github.com/georgmartius/vid.stab
+RUN \
+ DIR=vid.stab && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
+ echo "${LIBVIDSTAB_SHA256SUM} v${LIBVIDSTAB_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
+ cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libvorbis b/templates/fragments/libvorbis
new file mode 100644
index 000000000..cd8285542
--- /dev/null
+++ b/templates/fragments/libvorbis
@@ -0,0 +1,12 @@
+### libvorbis https://xiph.org/vorbis/
+RUN \
+ DIR=vorbis && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ echo "${LIBVORBIS_SHA256SUM} libvorbis-${LIBVORBIS_VERSION}.tar.gz" | sha256sum --check && \
+ tar -zx --strip-components=1 -f libvorbis-${LIBVORBIS_VERSION}.tar.gz && \
+ ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libvpx b/templates/fragments/libvpx
new file mode 100644
index 000000000..c8460983d
--- /dev/null
+++ b/templates/fragments/libvpx
@@ -0,0 +1,12 @@
+### libvpx https://www.webmproject.org/code/
+RUN \
+ DIR=vpx && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${LIBVPX_VERSION} | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
+ --disable-debug --disable-examples --disable-docs && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
diff --git a/templates/fragments/libx264 b/templates/fragments/libx264
new file mode 100644
index 000000000..af230c59c
--- /dev/null
+++ b/templates/fragments/libx264
@@ -0,0 +1,11 @@
+## x264 http://www.videolan.org/developers/x264.html
+RUN \
+ DIR=x264 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${LIBX264_VERSION}.tar.bz2 | \
+ tar -jx --strip-components=1 && \
+ ./configure --prefix="${PREFIX}" --enable-shared --enable-pic && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libx265 b/templates/fragments/libx265
new file mode 100644
index 000000000..c45da2910
--- /dev/null
+++ b/templates/fragments/libx265
@@ -0,0 +1,13 @@
+### x265 http://x265.org/
+RUN \
+ DIR=x265 && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://download.videolan.org/pub/videolan/x265/x265_${LIBX265_VERSION}.tar.gz | \
+ tar -zx && \
+ cd x265_${LIBX265_VERSION}/build/linux && \
+ sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
+ sed -i "/^cmake/ s/$/ -DENABLE_CLI=ON/" multilib.sh && \
+ ./multilib.sh && \
+ make -C 8bit install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/libxvid b/templates/fragments/libxvid
new file mode 100644
index 000000000..e8c3f10e2
--- /dev/null
+++ b/templates/fragments/libxvid
@@ -0,0 +1,12 @@
+### xvid https://www.xvid.com/
+RUN \
+ DIR=xvid && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sLO http://downloads.xvid.org/downloads/xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ tar -zx -f xvidcore-${LIBXVID_VERSION}.tar.gz && \
+ cd xvidcore/build/generic && \
+ ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/nvenc b/templates/fragments/nvenc
new file mode 100644
index 000000000..de0cea90d
--- /dev/null
+++ b/templates/fragments/nvenc
@@ -0,0 +1,8 @@
+RUN \
+ DIR=nv-codec-headers && \
+ git clone --branch n${NVENC_VERSION} --depth=1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git ${DIR} && \
+ cd ${DIR} && \
+ sed -i 's@/usr/local@'"$PREFIX"'@' Makefile && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/fragments/vaapi b/templates/fragments/vaapi
new file mode 100644
index 000000000..e69de29bb
diff --git a/templates/fragments/vdpau b/templates/fragments/vdpau
new file mode 100644
index 000000000..e69de29bb
diff --git a/templates/travis.template b/templates/travis.template
index 7b9e2620c..ecfa78aed 100644
--- a/templates/travis.template
+++ b/templates/travis.template
@@ -21,7 +21,7 @@ before_script:
- image="ffmpeg:${VERSION}-${VARIANT:-ubuntu}"
script:
- - docker build -t "${image}" --build-arg MAKEFLAGS="-j$(($(grep -c ^processor /proc/cpuinfo) + 1))" docker-images/${VERSION}/${VARIANT}
+ - docker build -t "${image}" --build-arg MAKEFLAGS="-j$(($(nproc) + 1))" docker-images/${VERSION}/${VARIANT}
- docker run --rm ${image} -buildconf
after_script:
diff --git a/templates/variants/Dockerfile.alpine b/templates/variants/Dockerfile.alpine
new file mode 100644
index 000000000..62a53761c
--- /dev/null
+++ b/templates/variants/Dockerfile.alpine
@@ -0,0 +1,47 @@
+FROM alpine:3.9 as base
+
+RUN apk add --no-cache --update $packages \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=$prefix
+ARG MAKEFLAGS=$makeflags
+ARG PKG_CONFIG_PATH=$prefix/lib/pkgconfig
+
+RUN apk add --no-cache --update $dev_packages \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
\ No newline at end of file
diff --git a/templates/variants/Dockerfile.armv7 b/templates/variants/Dockerfile.armv7
new file mode 100644
index 000000000..da7477d07
--- /dev/null
+++ b/templates/variants/Dockerfile.armv7
@@ -0,0 +1,47 @@
+FROM arm32v7/alpine:3.9 as base
+
+RUN apk add --no-cache --update $packages \
+ libgcc \
+ libstdc++ \
+ ca-certificates \
+ libcrypto1.1 \
+ libssl1.1 \
+ libgomp \
+ expat \
+ libuuid
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=$prefix
+ARG MAKEFLAGS=$makeflags
+ARG PKG_CONFIG_PATH=$prefix/lib/pkgconfig
+
+RUN apk add --no-cache --update $dev_packages \
+ autoconf \
+ automake \
+ bash \
+ binutils \
+ bzip2 \
+ cmake \
+ curl \
+ coreutils \
+ diffutils \
+ file \
+ g++ \
+ git \
+ gcc \
+ gperf \
+ libtool \
+ make \
+ python \
+ openssl-dev \
+ tar \
+ yasm \
+ nasm \
+ zlib-dev \
+ expat-dev \
+ util-linux-dev \
+ meson \
+ ninja
\ No newline at end of file
diff --git a/templates/variants/Dockerfile.centos b/templates/variants/Dockerfile.centos
new file mode 100644
index 000000000..ea82aed7c
--- /dev/null
+++ b/templates/variants/Dockerfile.centos
@@ -0,0 +1,83 @@
+FROM centos:7 as base
+
+RUN yum -y install $packages libgomp libuuid && \
+ echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf && \
+ echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=$prefix
+ARG MAKEFLAGS=$makeflags
+ARG PKG_CONFIG_PATH=$prefix/lib/pkgconfig:$prefix/lib64/pkgconfig
+
+RUN yum --enablerepo=extras install -y epel-release && \
+ yum install -y \
+ $dev_packages \
+ autoconf \
+ automake \
+ bzip2 \
+ cmake \
+ expat-devel \
+ gcc \
+ gcc-c++ \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ openssl-devel \
+ tar \
+ yasm \
+ which \
+ zlib-devel \
+ libuuid-devel \
+ libcurl-devel \
+ xz-devel \
+ libarchive-devel \
+ python36 \
+ python36-pip
+
+#Centos is missing recent version of CMake (>= 3.5)
+RUN \
+ DIR=/tmp/cmake && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./bootstrap --system-libs --no-system-jsoncpp && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing recent version of nasm (>= 2.13)
+RUN \
+ DIR=/tmp/nasm && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz | \
+ tar -zx --strip-components=1 && \
+ ./configure --prefix="/usr" && \
+ make && \
+ make install && \
+ rm -rf ${DIR}
+
+#Centos is missing ninja
+RUN \
+ DIR=/tmp/ninja && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ curl -sL https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz | \
+ tar -zx --strip-components=1 && \
+ python configure.py --bootstrap && \
+ cp ./ninja /usr/bin/ && \
+ rm -rf ${DIR}
+
+RUN \
+ DIR=/tmp/meson && \
+ mkdir -p ${DIR} && \
+ cd ${DIR} && \
+ pip3 install meson && \
+ rm -rf ${DIR}
\ No newline at end of file
diff --git a/templates/variants/Dockerfile.nvidia b/templates/variants/Dockerfile.nvidia
new file mode 100644
index 000000000..c52c5ce74
--- /dev/null
+++ b/templates/variants/Dockerfile.nvidia
@@ -0,0 +1,41 @@
+FROM nvidia/cuda:10.1-runtime-ubuntu18.04 AS base
+
+ENV NVIDIA_DRIVER_CAPABILITIES=video
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends $packages ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=$prefix
+ARG MAKEFLAGS=$makeflags
+ARG PKG_CONFIG_PATH=$prefix/lib/pkgconfig
+ARG C_INCLUDE_PATH=$prefix/include/ffnvcodec
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ $dev_packages \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev
\ No newline at end of file
diff --git a/templates/variants/Dockerfile.ubuntu b/templates/variants/Dockerfile.ubuntu
new file mode 100644
index 000000000..89963d668
--- /dev/null
+++ b/templates/variants/Dockerfile.ubuntu
@@ -0,0 +1,40 @@
+FROM ubuntu:18.04 AS base
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends $packages ca-certificates expat libgomp1 libuuid1 libssl1.0 && \
+ apt-get autoremove -y && \
+ apt-get clean -y
+
+FROM base as build
+
+WORKDIR /tmp/workdir
+
+ARG PREFIX=$prefix
+ARG MAKEFLAGS=$makeflags
+ARG PKG_CONFIG_PATH=$prefix/lib/pkgconfig
+
+RUN apt-get -yqq update && \
+ apt-get install -yq --no-install-recommends \
+ $dev_packages \
+ autoconf \
+ automake \
+ cmake \
+ curl \
+ bzip2 \
+ libexpat1-dev \
+ g++ \
+ gcc \
+ git \
+ gperf \
+ libtool \
+ make \
+ nasm \
+ perl \
+ pkg-config \
+ python \
+ libssl1.0-dev \
+ yasm \
+ zlib1g-dev \
+ uuid-dev \
+ ninja-build \
+ meson
\ No newline at end of file
diff --git a/templates/variants/packages.ini b/templates/variants/packages.ini
new file mode 100644
index 000000000..cf2e91ffe
--- /dev/null
+++ b/templates/variants/packages.ini
@@ -0,0 +1,30 @@
+[ubuntu]
+libva = libva2 libva-drm2 i965-va-driver
+libva-dev = libva-dev
+libssl1.0 = libssl1.0
+libssl1.0-dev = libssl1.0-dev
+libvdpau = libvdpau1
+libvdpau-dev = libvdpau-dev
+
+[centos]
+libva = libva
+libva-dev = libva-devel
+libvdpau = libvdpau
+libvdpau-dev = libvdpau-devel
+
+
+[alpine]
+libva = libva
+libva-dev = libva-dev
+libssl1.0 = libressl
+libssl1.0-dev = libressl-dev
+libvdpau = libvdpau
+libvdpau-dev = libvdpau-dev
+
+[nvidia]
+libva = libva2 libva-drm2 i965-va-driver
+libva-dev = libva-dev
+libssl1.0 = libssl1.0
+libssl1.0-dev = libssl1.0-dev
+libvdpau = libvdpau1
+libvdpau-dev = libvdpau-dev
diff --git a/update.py b/update.py
index 3d252192b..67ceb6976 100755
--- a/update.py
+++ b/update.py
@@ -1,11 +1,11 @@
-#!/usr/bin/env python
+#! /usr/bin/env python
-
-# Get latest release from ffmpeg.org
-import os
+from string import Template
import sys
+<<<<<<< HEAD
+<<<<<<< HEAD
import re
-import urllib2
+import urllib
from distutils.version import StrictVersion
MIN_VERSION = '2.8'
@@ -49,68 +49,186 @@
version, variant)
travis.append(' - VERSION=%s VARIANT=%s' % (version, variant))
azure.append(' %s_%s:\n VERSION: %s\n VARIANT: %s' % (version.replace('.', '_'), variant, version, variant))
+=======
+=======
+>>>>>>> fix extra comma
+import getopt
+import argparse
+import configparser
+from os import listdir, path
+
+variants = ['alpine', 'centos', 'ubuntu', 'nvidia', 'armv7']
+versions = ['snapshot', '4.1', '4.0', '3.4', '3.3', '3.2', '2.8']
+builddir = '/tmp/build'
+makeflags = '-j6'
+
+templates = "./templates"
+
+fragments = path.join(templates, "fragments")
+common = path.join(templates, "common")
+configfile_template = path.join(templates, 'config', "config_${version}.ini")
+
+class ActionEnableDisable(argparse.Action):
+ def __init__(self, option_strings, dest, default=None, required=False, help=None):
+ if len(option_strings) != 1:
+ raise ValueError('Only a single argument is allowed with enable/disable action')
+ if not option_strings[0].startswith('--'):
+ raise ValueError('Enable/Disable arguments must be prefixed with "--"')
+
+ opt_name = option_strings[0][2:]
+ opts = ['--enable-' + opt_name, '--disable-' + opt_name]
+ super(ActionEnableDisable, self).__init__(opts, dest, nargs=0, const=None, default=default, required=required, help=help)
+
+ def __call__(self, parser, namespace, values, option_strings=None):
+ if option_strings.startswith('--disable-'):
+ setattr(namespace, self.dest, False)
+<<<<<<< HEAD
+>>>>>>> fix extra comma
+=======
+>>>>>>> fix extra comma
else:
- dockerfile = 'docker-images/%s/%s/Dockerfile' % (
- version[0:3], variant)
- travis.append(' - VERSION=%s VARIANT=%s' % (version[0:3], variant))
- azure.append(' %s_%s:\n VERSION: %s\n VARIANT: %s' % (version[0:3].replace('.', '_'), variant, version[0:3], variant))
-
- with open('templates/Dockerfile-env', 'r') as tmpfile:
- env_content = tmpfile.read()
- with open('templates/Dockerfile-template.' + variant, 'r') as tmpfile:
- template = tmpfile.read()
- with open('templates/Dockerfile-run', 'r') as tmpfile:
- run_content = tmpfile.read()
- env_content = env_content.replace('%%FFMPEG_VERSION%%', version)
- docker_content = template.replace('%%ENV%%', env_content)
- docker_content = docker_content.replace('%%RUN%%', run_content)
- # OpenJpeg 2.1 is not supported in 2.8
- if version[0:3] == '2.8':
- docker_content = docker_content.replace('--enable-libopenjpeg', '')
- docker_content = docker_content.replace('--enable-libkvazaar', '')
- if (version != 'snapshot' and version[0] < '4') or variant == 'centos':
- docker_content = re.sub(r"--enable-libaom [^\\]*", "", docker_content)
- if (version == 'snapshot' or version[0] >= '3') and variant == 'vaapi':
- docker_content = docker_content.replace('--disable-ffplay', '--disable-ffplay \\\n --enable-vaapi')
-
- if variant == 'nvidia':
- docker_content = docker_content.replace('--extra-cflags="-I${PREFIX}/include"', '--extra-cflags="-I${PREFIX}/include -I${PREFIX}/include/ffnvcodec -I/usr/local/cuda/include/"')
- docker_content = docker_content.replace('--extra-ldflags="-L${PREFIX}/lib"', '--extra-ldflags="-L${PREFIX}/lib -L/usr/local/cuda/lib64/ -L/usr/local/cuda/lib32/"')
- if (version == 'snapshot' or version[0] >= '4') :
- docker_content = docker_content.replace('--disable-ffplay', '--disable-ffplay \\\n --enable-cuda \\\n --enable-nvenc \\\n --enable-cuvid \\\n --enable-libnpp')
- # Don't support hw decoding and scaling on older ffmpeg versions
- if (version[0] < '4') :
- docker_content = docker_content.replace('--disable-ffplay', '--disable-ffplay \\\n --enable-nvenc')
- # FFmpeg 3.2 and earlier don't compile correctly on Ubuntu 18.04 due to openssl issues
- if (version[0] < '3' or (version[0] == '3' and version[2] < '3')) :
- docker_content = docker_content.replace('-ubuntu18.04', '-ubuntu16.04')
-
- # FFmpeg 3.2 and earlier don't compile correctly on Ubuntu 18.04 due to openssl issues
- if variant == 'vaapi' and (version[0] < '3' or (version[0] == '3' and version[2] < '3')):
- docker_content = docker_content.replace('ubuntu:18.04', 'ubuntu:16.04')
- docker_content = docker_content.replace('libva-drm2', 'libva-drm1')
- docker_content = docker_content.replace('libva2', 'libva1')
-
- d = os.path.dirname(dockerfile)
- if not os.path.exists(d):
- os.makedirs(d)
-
- with open(dockerfile, 'w') as dfile:
- dfile.write(docker_content)
-
-
-with open('templates/travis.template', 'r') as tmpfile:
- template = tmpfile.read()
-travis = template.replace('%%VERSIONS%%', '\n'.join(travis))
-
-
-with open('.travis.yml', 'w') as travisfile:
- travisfile.write(travis)
-
-with open('templates/azure.template', 'r') as tmpfile:
- template = tmpfile.read()
-azure = template.replace('%%VERSIONS%%', '\n'.join(azure))
-
-
-with open('azure-pipelines.yml', 'w') as azurefile:
- azurefile.write(azure)
+ setattr(namespace, self.dest, True)
+
+def parser_gen():
+ parser = argparse.ArgumentParser(description='Dockerfile generator.')
+ for f in listdir(fragments):
+ if f != 'ffmpeg' and path.isfile(path.join(fragments, f)):
+ parser.add_argument('--' + f, action=ActionEnableDisable, default=None, help='enable/disable ' + f)
+
+ parser.add_argument('--enable-all', help='set all external libraries to true', action='store_true', default=False)
+ parser.add_argument('variant', default='alpine', choices=variants)
+ parser.add_argument('version', default='4.1', choices=versions)
+ parser.add_argument('--with-bins', action='store_true', default=False )
+ parser.add_argument('--no-strip', action='store_true', default=False)
+
+ outsize = parser.add_mutually_exclusive_group(required=False)
+ outsize.add_argument('--fat', help='keep everything', action='store_true', default=True)
+ outsize.add_argument('--slim', help='only keep libraries', action='store_true', default=False)
+ outsize.add_argument('--scratch', help='build from scratch', action='store_true', default=False)
+
+ return parser
+
+def kebab_arg(name):
+ return name.replace('_', '-')
+
+def snake_arg(name):
+ return name.replace('-', '_')
+
+def dockerfile_gen(args, config, packages):
+ variant = open(path.join(templates, 'variants', "Dockerfile.%s" % (getattr(args, 'variant'))))
+ src = Template(variant.read())
+
+ d={
+ 'prefix': builddir,
+ 'makeflags': makeflags,
+ 'packages': '',
+ 'dev_packages': ''
+ }
+
+
+
+ deps = []
+ flags = []
+ default = False
+ if getattr(args, 'enable_all'):
+ delattr(args, 'enable_all')
+ default = True
+
+ for section in config.sections():
+ dep = snake_arg(section)
+ if hasattr(args, dep) and getattr(args, dep) is None:
+ setattr(args, dep, default)
+
+ for arg in vars(args):
+ library = kebab_arg(arg)
+ if getattr(args, arg) and library in config:
+ if 'Variants' in config[library] and variant in config[library]['Variants'].split(','):
+ continue
+ if 'DependsOn' in config[library]:
+ if not config[library]['DependsOn'] in deps:
+ for dependency in config[library]['DependsOn'].split(','):
+ deps.append(dependency.strip())
+ if 'Flags' in config[library]:
+ if not config[library]['Flags'] in flags:
+ for flag in config[library]['Flags'].split(','):
+ flags.append(flag.strip())
+ if not library in deps:
+ deps.append(library)
+
+ for dep in deps + ['ffmpeg']:
+ if 'Install' in config[dep]:
+ for package in config[dep]['Install'].split(','):
+ d['packages'] = "%s %s" % (packages[getattr(args, 'variant')][package].strip(), d['packages'])
+ if 'InstallDev' in config[dep]:
+ for package in config[dep]['InstallDev'].split(','):
+ d['dev_packages'] = "%s %s" % (packages[getattr(args, 'variant')][package].strip(), d['dev_packages'])
+
+ result = src.safe_substitute(d)
+ print(result)
+
+ print ("")
+ print ("ARG\tFFMPEG_VERSION=%s" % (config.get('ffmpeg', 'Version')))
+ for dependency in deps:
+ if "Version" in config[dependency]:
+ print ("ARG\t%s_VERSION=%s" % (snake_arg(dependency.upper()), config.get(dependency, "Version")))
+
+ print ("")
+ for dependency in deps:
+ if "SHA256sum" in config[dependency]:
+ print ("ARG\t%s_SHA256SUM=%s" % (dependency.upper(), config.get(dependency, "SHA256sum")))
+
+ print("")
+ for dependency in deps:
+ with open(path.join(fragments, dependency)) as fragment:
+ print (fragment.read())
+
+ with open(path.join(fragments, 'ffmpeg')) as ffmpeg_fragment:
+ ffmpeg_template = Template(ffmpeg_fragment.read())
+ ffmpeg_flags = ' \\\n\t'.join(flags)
+
+ result = ffmpeg_template.safe_substitute({'lib_flags': ffmpeg_flags})
+ print(result)
+
+ if getattr(args, 'slim'):
+ assembly_type = 'slim'
+ release_pattern = {'source': 'base', 'entrypoint': 'ffmpeg', 'install_dir': '/usr/local'}
+ assembly_pattern = {
+ 'bins': 'true' if getattr(args, 'with_bins') else 'false',
+ 'strip': 'false' if getattr(args, 'no_strip') else 'true'
+ }
+ elif getattr(args, 'scratch'):
+ assembly_type = 'scratch'
+ release_pattern = {'source': 'scratch', 'entrypoint': '/bin/ffmpeg', 'install_dir': '/'}
+ assembly_pattern = {
+ 'bins': 'true' if getattr(args, 'with_bins') else 'false',
+ 'strip': 'false' if getattr(args, 'no_strip') else 'true'
+ }
+ else :
+ assembly_type = 'fat'
+ release_pattern = {'source': 'base', 'entrypoint': 'ffmpeg', 'install_dir': '/usr/local'}
+ assembly_pattern = {}
+
+ with open(path.join(common, assembly_type)) as assembly:
+ assembly_template = Template(assembly.read())
+ print (assembly_template.safe_substitute(assembly_pattern))
+
+ with open(path.join(common, 'release')) as release:
+ release_template = Template(release.read())
+ print (release_template.safe_substitute(release_pattern))
+
+
+
+def main(argv):
+ args_parser = parser_gen()
+ config_parser = configparser.ConfigParser()
+ package_parser = configparser.ConfigParser()
+
+ args = args_parser.parse_args()
+ configfile = Template(configfile_template)
+
+ config_parser.read(configfile.safe_substitute({'version': getattr(args, 'version')}))
+ package_parser.read(path.join(templates, 'variants', 'packages.ini'))
+ dockerfile_gen(args, config_parser, package_parser)
+
+if __name__ == '__main__':
+ main(sys.argv)
\ No newline at end of file