diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e2ee3b579..d70c6fc13 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ repos: # pre-commit autoupdate - id: flake8 - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.2.0 + rev: v4.3.0 hooks: - id: trailing-whitespace - id: check-added-large-files @@ -22,7 +22,7 @@ repos: # pre-commit autoupdate # If you want to avoid flake8 errors due to unused vars or imports: - repo: https://github.com/myint/autoflake.git - rev: v1.4 + rev: v1.6.0 hooks: - id: autoflake args: @@ -34,15 +34,13 @@ repos: # pre-commit autoupdate - id: isort - repo: https://github.com/psf/black - rev: 22.3.0 + rev: 22.8.0 hooks: - id: black language_version: python3 - - repo: local - hooks: - - id: update - name: Generate Dockerfiles - entry: ./update.py - language: python - pass_filenames: false + # - repo: https://github.com/jrottenberg/ffmpeg + # rev: libaom-3.4.0 + # hooks: + # - id: generate_dockerfile + # language_version: python3 diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml new file mode 100644 index 000000000..19715efc3 --- /dev/null +++ b/.pre-commit-hooks.yaml @@ -0,0 +1,6 @@ +- id: generate_dockerfile + name: Generate Dockerfile + entry: generate_dockerfile + language: python + require_serial: true + always_run: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fd7218009..2ea6434b0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,7 +24,8 @@ Before you open a PR make the change locally and verify it passes pre-commit : ```sh -pip install pre-commit +# you'll need python3-packaging +pip install pre-commit packaging pre-commit install # inside the local checkout pre-commit run -a # to force a run, but it will execute on commits ``` @@ -38,9 +39,9 @@ If you forget and don't have pre-commit configured, the pre-commit step will fai ```sh # Generates the Dockerfile for all variants -./update.py +./generate_dockerfile.py -pre-commit run -a # recommanded +pre-commit run -a # recommended # Test a specific variant docker build -t my-build docker-images/VERSION/ diff --git a/README.md b/README.md index b377b7355..56c6ac0cc 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ [![Docker Automated build](https://img.shields.io/docker/automated/jrottenberg/ffmpeg.svg?logo=docker)](https://hub.docker.com/r/jrottenberg/ffmpeg/tags) [![Github Container Registry Images](https://img.shields.io/badge/images-automated-blue?logo=github&style=plastic)](https://github.com/jrottenberg/ffmpeg/pkgs/container/ffmpeg) [![gitlab pipeline status](https://gitlab.com/jrottenberg/ffmpeg/badges/main/pipeline.svg)](https://gitlab.com/jrottenberg/ffmpeg/commits/main) -[![Azure Build Status](https://dev.azure.com/video-tools/ffmpeg/_apis/build/status/jrottenberg.ffmpeg)](https://dev.azure.com/video-tools/ffmpeg/_build/latest?definitionId=1) +[![Build Status](https://dev.azure.com/video-tools/ffmpeg/_apis/build/status/jrottenberg.ffmpeg?branchName=main)](https://dev.azure.com/video-tools/ffmpeg/_build/latest?definitionId=1&branchName=main) +[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) This project prepares a minimalist Docker image with FFmpeg. It compiles FFmpeg from sources following instructions from the [Compilation Guide](https://trac.ffmpeg.org/wiki/CompilationGuide). @@ -26,13 +27,13 @@ There are different builds available: `` can be one of the following: - 3.2 -- 3.3 - 3.4 -- 4.0 - 4.1 - 4.2 - 4.3 - 4.4 +- 5.0 +- 5.1 Not all combinations are supported and older versions will fade out over time. See the table below for the currently supported combinations. @@ -260,3 +261,19 @@ See Dockerfile-env to update a version ## Contribute See [the contributing guide](CONTRIBUTING.md) + + +## Contributors + +Thanks to [all contributors](https://github.com/jrottenberg/ffmpeg/graphs/contributors) + +[![jrottenberg/ffmpeg's contributors](https://contrib.rocks/image?repo=jrottenberg/ffmpeg)](https://github.com/jrottenberg/ffmpeg/graphs/contributors) + +### GitHub Contributor Over Time +[![GitHub Contributor Over Time](https://contributor-overtime-api.git-contributor.com/contributors-svg?chart=contributorOverTime&repo=jrottenberg/ffmpeg)](https://git-contributor.com?chart=contributorOverTime&repo=jrottenberg/ffmpeg) + +## Stargazers over time + +Thanks to our users starring the project + +[![Stargazers over time for jrottenberg/ffmpeg](https://starchart.cc/jrottenberg/ffmpeg.svg)](https://starchart.cc/jrottenberg/ffmpeg) diff --git a/docker-images/3.2/alpine313/Dockerfile b/docker-images/3.2/alpine313/Dockerfile index 315ffa6d1..42921b905 100644 --- a/docker-images/3.2/alpine313/Dockerfile +++ b/docker-images/3.2/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.2.18 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=3.2.18 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=3.2.18 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.2/centos7/Dockerfile b/docker-images/3.2/centos7/Dockerfile index fecd986e0..3de4b5567 100644 --- a/docker-images/3.2/centos7/Dockerfile +++ b/docker-images/3.2/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.2.18 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=3.2.18 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=3.2.18 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.2/scratch313/Dockerfile b/docker-images/3.2/scratch313/Dockerfile index cd00693cd..5fb87a53f 100644 --- a/docker-images/3.2/scratch313/Dockerfile +++ b/docker-images/3.2/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.2.18 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=3.2.18 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=3.2.18 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.2/ubuntu2004/Dockerfile b/docker-images/3.2/ubuntu2004/Dockerfile index 75784e610..65fe65a8c 100644 --- a/docker-images/3.2/ubuntu2004/Dockerfile +++ b/docker-images/3.2/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=3.2.18 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=3.2.18 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=3.2.18 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.2/vaapi2004/Dockerfile b/docker-images/3.2/vaapi2004/Dockerfile index 11f8b658e..040f2c672 100644 --- a/docker-images/3.2/vaapi2004/Dockerfile +++ b/docker-images/3.2/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=3.2.18 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=3.2.18 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=3.2.18 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.3/alpine313/Dockerfile b/docker-images/3.3/alpine313/Dockerfile deleted file mode 100644 index 323b10a1a..000000000 --- a/docker-images/3.3/alpine313/Dockerfile +++ /dev/null @@ -1,594 +0,0 @@ -# ffmpeg - http://ffmpeg.org/download.html -# -# https://hub.docker.com/r/jrottenberg/ffmpeg/ -# -# - -FROM alpine:3.13 AS base - -RUN apk add --no-cache --update libgcc libstdc++ ca-certificates libcrypto1.1 libssl1.1 libgomp expat git - - -FROM base AS build - -WORKDIR /tmp/workdir - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bash \ - binutils \ - bzip2 \ - cmake \ - coreutils \ - curl \ - diffutils \ - expat-dev \ - file \ - g++ \ - gcc \ - gperf \ - libtool \ - make \ - nasm \ - openssl-dev \ - python3 \ - tar \ - xcb-proto \ - yasm \ - zlib-dev" && \ - apk add --no-cache --update ${buildDeps} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - mkdir -p /usr/local/include && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -### Release Stage -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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/3.3/centos7/Dockerfile b/docker-images/3.3/centos7/Dockerfile deleted file mode 100644 index 285a02b94..000000000 --- a/docker-images/3.3/centos7/Dockerfile +++ /dev/null @@ -1,626 +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 - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bzip2 \ - cmake3 \ - diffutils \ - expat-devel \ - file \ - gcc \ - gcc-c++ \ - git \ - gperf \ - libtool \ - make \ - perl \ - python3 \ - 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 --enablerepo=epel install -y ${buildDeps} && \ - alternatives --install /usr/bin/cmake cmake /usr/bin/cmake3 0 && \ - # Install the tools required to build nasm 2.14.02 \ - nasmDeps="asciidoc \ - perl-Font-TTF \ - perl-Sort-Versions \ - xmlto" && \ - yum --enablerepo=epel install -y ${nasmDeps} && \ - # Compile and install nasm 2.14.02 \ - DIR=/tmp/nasm && \ - mkdir -p ${DIR} && \ - curl -LSs https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz | \ - tar xzC ${DIR} --strip-components=1 && \ - pushd ${DIR} && \ - ./configure --host=x86_64-redhat-linux-gnu \ - --build=x86_64-redhat-linux-gnu \ - --prefix=/usr/local \ - --exec-prefix=/usr/local \ - --bindir=/usr/local/bin \ - --sbindir=/usr/local/sbin \ - --sysconfdir=/usr/local/etc \ - --datadir=/usr/local/share \ - --includedir=/usr/local/include \ - --libdir=/usr/local/lib \ - --libexecdir=/usr/local/libexec \ - --enable-sections && \ - make all && \ - make install && \ - make install_rdf && \ - popd && rm -rf ${DIR} && \ - alternatives --install /usr/bin/nasm nasm /usr/local/bin/nasm 0 && \ - # Now that we have a modern nasm build and available, we can undo the last \ - # yum transaction as none of those packages are required for the rest of the build \ - yum history undo $(yum history info | grep 'Transaction ID' | awk -F: '{print$2}' | tr -d ' ') -y && \ - yum autoremove -y - -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib64/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib64/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib64/pkgconfig/"${pc##*/}"; \ - done - -FROM base -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib - -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/3.3/centos8/Dockerfile b/docker-images/3.3/centos8/Dockerfile deleted file mode 100644 index 340581b05..000000000 --- a/docker-images/3.3/centos8/Dockerfile +++ /dev/null @@ -1,598 +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:8 AS base - -# Until we move to Rockylinux -RUN sed -i '/mirrorlist=/d;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \ - dnf -y install libgomp && \ - dnf clean all; - - -FROM base AS build - -WORKDIR /tmp/workdir - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bzip2 \ - cmake \ - diffutils \ - expat-devel \ - gcc \ - gcc-c++ \ - git \ - gperf \ - libtool \ - make \ - nasm \ - perl \ - python3 \ - openssl-devel \ - tar \ - yasm \ - which \ - zlib-devel" && \ - echo "${SRC}/lib" > /etc/ld.so.conf.d/libc.conf && \ - dnf --enablerepo=extras install -y epel-release && \ - dnf update -y && \ - dnf -y install dnf-plugins-core && \ - yum config-manager --set-enabled powertools && \ - dnf install -y ${buildDeps} && \ - alternatives --set python /usr/bin/python3 -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib64/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib64/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib64/pkgconfig/"${pc##*/}"; \ - done - -FROM base -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib - -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/3.3/nvidia2004/Dockerfile b/docker-images/3.3/nvidia2004/Dockerfile deleted file mode 100644 index 4d15a08ff..000000000 --- a/docker-images/3.3/nvidia2004/Dockerfile +++ /dev/null @@ -1,626 +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/cuda:11.4.1-devel-ubuntu20.04 AS devel-base - -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video -ENV DEBIAN_FRONTEND=nonintercative -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/cuda:11.4.1-runtime-ubuntu20.04 AS runtime-base - -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video -ENV DEBIAN_FRONTEND=nonintercative -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=11.1.5.0 - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -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://github.com/FFmpeg/nv-codec-headers ${DIR} && \ - cd ${DIR} && \ - git checkout n${NVIDIA_HEADERS_VERSION} && \ - make PREFIX="${PREFIX}" && \ - make install PREFIX="${PREFIX}" && \ - rm -rf ${DIR} - -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-nvenc \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --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 clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - make distclean && \ - hash -r && \ - cd tools && \ - make qt-faststart && cp qt-faststart ${PREFIX}/bin/ - -## cleanup -RUN \ - LD_LIBRARY_PATH="${PREFIX}/lib:${PREFIX}/lib64:${LD_LIBRARY_PATH}" ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/* /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g; s:/lib64:/lib:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - - - -FROM runtime-base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -CMD ["--help"] -ENTRYPOINT ["ffmpeg"] - -# copy only needed files, without copying nvidia dev files -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/ -COPY --from=build /usr/local/include /usr/local/include/ - -# 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/scratch313/Dockerfile b/docker-images/3.3/scratch313/Dockerfile deleted file mode 100644 index b8b821ae6..000000000 --- a/docker-images/3.3/scratch313/Dockerfile +++ /dev/null @@ -1,591 +0,0 @@ -# ffmpeg - http://ffmpeg.org/download.html -# -# https://hub.docker.com/r/jrottenberg/ffmpeg/ -# -# - -FROM alpine:3.13 AS build - -WORKDIR /tmp/workdir - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bash \ - binutils \ - bzip2 \ - ca-certificates \ - cmake \ - coreutils \ - curl \ - diffutils \ - expat-dev \ - file \ - g++ \ - gcc \ - git \ - gperf \ - libcrypto1.1 \ - libgcc \ - libssl1.1 \ - libstdc++ \ - libtool \ - make \ - nasm \ - openssl-dev \ - python3 \ - tar \ - xcb-proto \ - yasm \ - zlib-dev" && \ - apk add --update ${buildDeps} - -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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 -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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/3.3/ubuntu1804/Dockerfile b/docker-images/3.3/ubuntu1804/Dockerfile deleted file mode 100644 index 8a910cea0..000000000 --- a/docker-images/3.3/ubuntu1804/Dockerfile +++ /dev/null @@ -1,592 +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 - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -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} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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/3.3/ubuntu2004/Dockerfile b/docker-images/3.3/ubuntu2004/Dockerfile deleted file mode 100644 index 13770b721..000000000 --- a/docker-images/3.3/ubuntu2004/Dockerfile +++ /dev/null @@ -1,595 +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:20.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 - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -ARG DEBIAN_FRONTEND=noninteractive - -RUN buildDeps="autoconf \ - automake \ - cmake \ - curl \ - bzip2 \ - libexpat1-dev \ - g++ \ - gcc \ - git \ - gperf \ - libtool \ - make \ - meson \ - nasm \ - perl \ - pkg-config \ - python \ - libssl-dev \ - yasm \ - zlib1g-dev" && \ - apt-get -yqq update && \ - apt-get install -yq --no-install-recommends ${buildDeps} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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/3.3/vaapi2004/Dockerfile b/docker-images/3.3/vaapi2004/Dockerfile deleted file mode 100644 index 075d8fea5..000000000 --- a/docker-images/3.3/vaapi2004/Dockerfile +++ /dev/null @@ -1,602 +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:20.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 - -ENV FFMPEG_VERSION=3.3.9 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -ARG DEBIAN_FRONTEND=noninteractive - -RUN buildDeps="autoconf \ - automake \ - cmake \ - curl \ - bzip2 \ - libexpat1-dev \ - g++ \ - gcc \ - git \ - gperf \ - libtool \ - make \ - meson \ - nasm \ - perl \ - pkg-config \ - python \ - libssl-dev \ - yasm \ - libva-dev \ - zlib1g-dev" && \ - apt-get -yqq update && \ - apt-get install -yq --no-install-recommends ${buildDeps} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-vaapi \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -CMD ["--help"] -ENTRYPOINT ["ffmpeg"] - -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/3.4/alpine313/Dockerfile b/docker-images/3.4/alpine313/Dockerfile index 056e905b3..9e9375216 100644 --- a/docker-images/3.4/alpine313/Dockerfile +++ b/docker-images/3.4/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/centos7/Dockerfile b/docker-images/3.4/centos7/Dockerfile index 9373a8612..b7e674c5b 100644 --- a/docker-images/3.4/centos7/Dockerfile +++ b/docker-images/3.4/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/centos8/Dockerfile b/docker-images/3.4/centos8/Dockerfile index b32a6bc3e..63c4699f9 100644 --- a/docker-images/3.4/centos8/Dockerfile +++ b/docker-images/3.4/centos8/Dockerfile @@ -18,7 +18,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/nvidia2004/Dockerfile b/docker-images/3.4/nvidia2004/Dockerfile index 8df8c9c25..7ed6366e9 100644 --- a/docker-images/3.4/nvidia2004/Dockerfile +++ b/docker-images/3.4/nvidia2004/Dockerfile @@ -34,7 +34,7 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/scratch313/Dockerfile b/docker-images/3.4/scratch313/Dockerfile index de3a47829..e324cb8eb 100644 --- a/docker-images/3.4/scratch313/Dockerfile +++ b/docker-images/3.4/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/ubuntu2004/Dockerfile b/docker-images/3.4/ubuntu2004/Dockerfile index d686810c7..aa5208941 100644 --- a/docker-images/3.4/ubuntu2004/Dockerfile +++ b/docker-images/3.4/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/ubuntu1804/Dockerfile b/docker-images/3.4/ubuntu2204/Dockerfile similarity index 97% rename from docker-images/3.4/ubuntu1804/Dockerfile rename to docker-images/3.4/ubuntu2204/Dockerfile index b67173ae1..a8332b0ad 100644 --- a/docker-images/3.4/ubuntu1804/Dockerfile +++ b/docker-images/3.4/ubuntu2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,21 +76,21 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -346,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/3.4/vaapi2004/Dockerfile b/docker-images/3.4/vaapi2004/Dockerfile index c28c6be5d..9c428134c 100644 --- a/docker-images/3.4/vaapi2004/Dockerfile +++ b/docker-images/3.4/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=3.4.11 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=3.4.11 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=3.4.11 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.0/alpine313/Dockerfile b/docker-images/4.0/alpine313/Dockerfile deleted file mode 100644 index 16e510ac7..000000000 --- a/docker-images/4.0/alpine313/Dockerfile +++ /dev/null @@ -1,597 +0,0 @@ -# ffmpeg - http://ffmpeg.org/download.html -# -# https://hub.docker.com/r/jrottenberg/ffmpeg/ -# -# - -FROM alpine:3.13 AS base - -RUN apk add --no-cache --update libgcc libstdc++ ca-certificates libcrypto1.1 libssl1.1 libgomp expat git - - -FROM base AS build - -WORKDIR /tmp/workdir - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bash \ - binutils \ - bzip2 \ - cmake \ - coreutils \ - curl \ - diffutils \ - expat-dev \ - file \ - g++ \ - gcc \ - gperf \ - libtool \ - make \ - nasm \ - openssl-dev \ - python3 \ - tar \ - xcb-proto \ - yasm \ - zlib-dev" && \ - apk add --no-cache --update ${buildDeps} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - mkdir -p /usr/local/include && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -### Release Stage -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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.0/centos7/Dockerfile b/docker-images/4.0/centos7/Dockerfile deleted file mode 100644 index 18e989b1f..000000000 --- a/docker-images/4.0/centos7/Dockerfile +++ /dev/null @@ -1,629 +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 - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bzip2 \ - cmake3 \ - diffutils \ - expat-devel \ - file \ - gcc \ - gcc-c++ \ - git \ - gperf \ - libtool \ - make \ - perl \ - python3 \ - 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 --enablerepo=epel install -y ${buildDeps} && \ - alternatives --install /usr/bin/cmake cmake /usr/bin/cmake3 0 && \ - # Install the tools required to build nasm 2.14.02 \ - nasmDeps="asciidoc \ - perl-Font-TTF \ - perl-Sort-Versions \ - xmlto" && \ - yum --enablerepo=epel install -y ${nasmDeps} && \ - # Compile and install nasm 2.14.02 \ - DIR=/tmp/nasm && \ - mkdir -p ${DIR} && \ - curl -LSs https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz | \ - tar xzC ${DIR} --strip-components=1 && \ - pushd ${DIR} && \ - ./configure --host=x86_64-redhat-linux-gnu \ - --build=x86_64-redhat-linux-gnu \ - --prefix=/usr/local \ - --exec-prefix=/usr/local \ - --bindir=/usr/local/bin \ - --sbindir=/usr/local/sbin \ - --sysconfdir=/usr/local/etc \ - --datadir=/usr/local/share \ - --includedir=/usr/local/include \ - --libdir=/usr/local/lib \ - --libexecdir=/usr/local/libexec \ - --enable-sections && \ - make all && \ - make install && \ - make install_rdf && \ - popd && rm -rf ${DIR} && \ - alternatives --install /usr/bin/nasm nasm /usr/local/bin/nasm 0 && \ - # Now that we have a modern nasm build and available, we can undo the last \ - # yum transaction as none of those packages are required for the rest of the build \ - yum history undo $(yum history info | grep 'Transaction ID' | awk -F: '{print$2}' | tr -d ' ') -y && \ - yum autoremove -y - -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib64/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib64/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib64/pkgconfig/"${pc##*/}"; \ - done - -FROM base -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib - -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.0/centos8/Dockerfile b/docker-images/4.0/centos8/Dockerfile deleted file mode 100644 index f82fb3f8b..000000000 --- a/docker-images/4.0/centos8/Dockerfile +++ /dev/null @@ -1,601 +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:8 AS base - -# Until we move to Rockylinux -RUN sed -i '/mirrorlist=/d;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \ - dnf -y install libgomp && \ - dnf clean all; - - -FROM base AS build - -WORKDIR /tmp/workdir - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bzip2 \ - cmake \ - diffutils \ - expat-devel \ - gcc \ - gcc-c++ \ - git \ - gperf \ - libtool \ - make \ - nasm \ - perl \ - python3 \ - openssl-devel \ - tar \ - yasm \ - which \ - zlib-devel" && \ - echo "${SRC}/lib" > /etc/ld.so.conf.d/libc.conf && \ - dnf --enablerepo=extras install -y epel-release && \ - dnf update -y && \ - dnf -y install dnf-plugins-core && \ - yum config-manager --set-enabled powertools && \ - dnf install -y ${buildDeps} && \ - alternatives --set python /usr/bin/python3 -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib64/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib64/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib64/pkgconfig/"${pc##*/}"; \ - done - -FROM base -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib - -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.0/nvidia2004/Dockerfile b/docker-images/4.0/nvidia2004/Dockerfile deleted file mode 100644 index 05582ff1f..000000000 --- a/docker-images/4.0/nvidia2004/Dockerfile +++ /dev/null @@ -1,632 +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/cuda:11.4.1-devel-ubuntu20.04 AS devel-base - -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video -ENV DEBIAN_FRONTEND=nonintercative -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/cuda:11.4.1-runtime-ubuntu20.04 AS runtime-base - -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video -ENV DEBIAN_FRONTEND=nonintercative -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=11.1.5.0 - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -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://github.com/FFmpeg/nv-codec-headers ${DIR} && \ - cd ${DIR} && \ - git checkout n${NVIDIA_HEADERS_VERSION} && \ - make PREFIX="${PREFIX}" && \ - make install PREFIX="${PREFIX}" && \ - rm -rf ${DIR} - -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-cuda \ - --enable-cuvid \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libnpp \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-nvenc \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --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 \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - make distclean && \ - hash -r && \ - cd tools && \ - make qt-faststart && cp qt-faststart ${PREFIX}/bin/ - -## cleanup -RUN \ - LD_LIBRARY_PATH="${PREFIX}/lib:${PREFIX}/lib64:${LD_LIBRARY_PATH}" ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/* /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g; s:/lib64:/lib:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - - - -FROM runtime-base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -CMD ["--help"] -ENTRYPOINT ["ffmpeg"] - -# copy only needed files, without copying nvidia dev files -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/ -COPY --from=build /usr/local/include /usr/local/include/ - -# 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/scratch313/Dockerfile b/docker-images/4.0/scratch313/Dockerfile deleted file mode 100644 index 70f852381..000000000 --- a/docker-images/4.0/scratch313/Dockerfile +++ /dev/null @@ -1,594 +0,0 @@ -# ffmpeg - http://ffmpeg.org/download.html -# -# https://hub.docker.com/r/jrottenberg/ffmpeg/ -# -# - -FROM alpine:3.13 AS build - -WORKDIR /tmp/workdir - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -RUN buildDeps="autoconf \ - automake \ - bash \ - binutils \ - bzip2 \ - ca-certificates \ - cmake \ - coreutils \ - curl \ - diffutils \ - expat-dev \ - file \ - g++ \ - gcc \ - git \ - gperf \ - libcrypto1.1 \ - libgcc \ - libssl1.1 \ - libstdc++ \ - libtool \ - make \ - nasm \ - openssl-dev \ - python3 \ - tar \ - xcb-proto \ - yasm \ - zlib-dev" && \ - apk add --update ${buildDeps} - -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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 -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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.0/ubuntu1804/Dockerfile b/docker-images/4.0/ubuntu1804/Dockerfile deleted file mode 100644 index 80c3062c6..000000000 --- a/docker-images/4.0/ubuntu1804/Dockerfile +++ /dev/null @@ -1,595 +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 - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -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} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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.0/ubuntu2004/Dockerfile b/docker-images/4.0/ubuntu2004/Dockerfile deleted file mode 100644 index e546752b6..000000000 --- a/docker-images/4.0/ubuntu2004/Dockerfile +++ /dev/null @@ -1,598 +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:20.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 - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -ARG DEBIAN_FRONTEND=noninteractive - -RUN buildDeps="autoconf \ - automake \ - cmake \ - curl \ - bzip2 \ - libexpat1-dev \ - g++ \ - gcc \ - git \ - gperf \ - libtool \ - make \ - meson \ - nasm \ - perl \ - pkg-config \ - python \ - libssl-dev \ - yasm \ - zlib1g-dev" && \ - apt-get -yqq update && \ - apt-get install -yq --no-install-recommends ${buildDeps} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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.0/vaapi2004/Dockerfile b/docker-images/4.0/vaapi2004/Dockerfile deleted file mode 100644 index 4aaa27e7d..000000000 --- a/docker-images/4.0/vaapi2004/Dockerfile +++ /dev/null @@ -1,605 +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:20.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 - -ENV FFMPEG_VERSION=4.0.6 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -ARG DEBIAN_FRONTEND=noninteractive - -RUN buildDeps="autoconf \ - automake \ - cmake \ - curl \ - bzip2 \ - libexpat1-dev \ - g++ \ - gcc \ - git \ - gperf \ - libtool \ - make \ - meson \ - nasm \ - perl \ - pkg-config \ - python \ - libssl-dev \ - yasm \ - libva-dev \ - zlib1g-dev" && \ - apt-get -yqq update && \ - apt-get install -yq --no-install-recommends ${buildDeps} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-avresample \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-vaapi \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -CMD ["--help"] -ENTRYPOINT ["ffmpeg"] - -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/4.1/alpine313/Dockerfile b/docker-images/4.1/alpine313/Dockerfile index 2b0420570..0ae24a6d4 100644 --- a/docker-images/4.1/alpine313/Dockerfile +++ b/docker-images/4.1/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/centos7/Dockerfile b/docker-images/4.1/centos7/Dockerfile index eed3978a6..bfe184734 100644 --- a/docker-images/4.1/centos7/Dockerfile +++ b/docker-images/4.1/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/centos8/Dockerfile b/docker-images/4.1/centos8/Dockerfile index f84ab8866..5398134c2 100644 --- a/docker-images/4.1/centos8/Dockerfile +++ b/docker-images/4.1/centos8/Dockerfile @@ -18,7 +18,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/nvidia2004/Dockerfile b/docker-images/4.1/nvidia2004/Dockerfile index d6bb8cc2d..15ddb3167 100644 --- a/docker-images/4.1/nvidia2004/Dockerfile +++ b/docker-images/4.1/nvidia2004/Dockerfile @@ -34,7 +34,7 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/scratch313/Dockerfile b/docker-images/4.1/scratch313/Dockerfile index 4cf86c2ac..6d00586a6 100644 --- a/docker-images/4.1/scratch313/Dockerfile +++ b/docker-images/4.1/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/ubuntu2004/Dockerfile b/docker-images/4.1/ubuntu2004/Dockerfile index 1f8e4e29c..699e11fe0 100644 --- a/docker-images/4.1/ubuntu2004/Dockerfile +++ b/docker-images/4.1/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/ubuntu1804/Dockerfile b/docker-images/4.1/ubuntu2204/Dockerfile similarity index 97% rename from docker-images/4.1/ubuntu1804/Dockerfile rename to docker-images/4.1/ubuntu2204/Dockerfile index 44a8a0dbb..817aba490 100644 --- a/docker-images/4.1/ubuntu1804/Dockerfile +++ b/docker-images/4.1/ubuntu2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,21 +76,21 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -346,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.1/vaapi2004/Dockerfile b/docker-images/4.1/vaapi2004/Dockerfile index 8fc3c97b7..39121d07b 100644 --- a/docker-images/4.1/vaapi2004/Dockerfile +++ b/docker-images/4.1/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.1.9 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.1.9 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.1.9 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/alpine313/Dockerfile b/docker-images/4.2/alpine313/Dockerfile index f626accfd..cb55f5d3b 100644 --- a/docker-images/4.2/alpine313/Dockerfile +++ b/docker-images/4.2/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/centos7/Dockerfile b/docker-images/4.2/centos7/Dockerfile index db029a9b9..52749db58 100644 --- a/docker-images/4.2/centos7/Dockerfile +++ b/docker-images/4.2/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/centos8/Dockerfile b/docker-images/4.2/centos8/Dockerfile index bc347ada4..8fca8f1c1 100644 --- a/docker-images/4.2/centos8/Dockerfile +++ b/docker-images/4.2/centos8/Dockerfile @@ -18,7 +18,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/nvidia2004/Dockerfile b/docker-images/4.2/nvidia2004/Dockerfile index 34a537915..2b912b081 100644 --- a/docker-images/4.2/nvidia2004/Dockerfile +++ b/docker-images/4.2/nvidia2004/Dockerfile @@ -34,7 +34,7 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/scratch313/Dockerfile b/docker-images/4.2/scratch313/Dockerfile index b5a836650..2c4bb7003 100644 --- a/docker-images/4.2/scratch313/Dockerfile +++ b/docker-images/4.2/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/ubuntu2004/Dockerfile b/docker-images/4.2/ubuntu2004/Dockerfile index 3ad663b08..ecb62462b 100644 --- a/docker-images/4.2/ubuntu2004/Dockerfile +++ b/docker-images/4.2/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/ubuntu1804/Dockerfile b/docker-images/4.2/ubuntu2204/Dockerfile similarity index 97% rename from docker-images/4.2/ubuntu1804/Dockerfile rename to docker-images/4.2/ubuntu2204/Dockerfile index 53a0a5795..b4776224e 100644 --- a/docker-images/4.2/ubuntu1804/Dockerfile +++ b/docker-images/4.2/ubuntu2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,21 +76,21 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -346,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.2/vaapi2004/Dockerfile b/docker-images/4.2/vaapi2004/Dockerfile index 98b2f2278..ebfcf98c6 100644 --- a/docker-images/4.2/vaapi2004/Dockerfile +++ b/docker-images/4.2/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.2.7 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.2.7 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.2.7 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/alpine313/Dockerfile b/docker-images/4.3/alpine313/Dockerfile index 5cb21c51f..a0df49fd0 100644 --- a/docker-images/4.3/alpine313/Dockerfile +++ b/docker-images/4.3/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/centos7/Dockerfile b/docker-images/4.3/centos7/Dockerfile index 22b846689..40ac6c913 100644 --- a/docker-images/4.3/centos7/Dockerfile +++ b/docker-images/4.3/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/centos8/Dockerfile b/docker-images/4.3/centos8/Dockerfile index 927fe1642..09f8be289 100644 --- a/docker-images/4.3/centos8/Dockerfile +++ b/docker-images/4.3/centos8/Dockerfile @@ -18,7 +18,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/nvidia2004/Dockerfile b/docker-images/4.3/nvidia2004/Dockerfile index 256765010..708b3d3ed 100644 --- a/docker-images/4.3/nvidia2004/Dockerfile +++ b/docker-images/4.3/nvidia2004/Dockerfile @@ -34,7 +34,7 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/scratch313/Dockerfile b/docker-images/4.3/scratch313/Dockerfile index 6e11f2164..44820c312 100644 --- a/docker-images/4.3/scratch313/Dockerfile +++ b/docker-images/4.3/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/ubuntu2004/Dockerfile b/docker-images/4.3/ubuntu2004/Dockerfile index 502fee340..55b4aafca 100644 --- a/docker-images/4.3/ubuntu2004/Dockerfile +++ b/docker-images/4.3/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -543,7 +543,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/4.3/ubuntu1804/Dockerfile b/docker-images/4.3/ubuntu2204/Dockerfile similarity index 97% rename from docker-images/4.3/ubuntu1804/Dockerfile rename to docker-images/4.3/ubuntu2204/Dockerfile index 194f5f0c7..3106296d0 100644 --- a/docker-images/4.3/ubuntu1804/Dockerfile +++ b/docker-images/4.3/ubuntu2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,21 +76,21 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -346,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.3/vaapi2004/Dockerfile b/docker-images/4.3/vaapi2004/Dockerfile index 020656854..ebe5bb948 100644 --- a/docker-images/4.3/vaapi2004/Dockerfile +++ b/docker-images/4.3/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -544,7 +543,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/4.3/vaapi1804/Dockerfile b/docker-images/4.3/vaapi2204/Dockerfile similarity index 97% rename from docker-images/4.3/vaapi1804/Dockerfile rename to docker-images/4.3/vaapi2204/Dockerfile index 513a8ce44..9e8e068d8 100644 --- a/docker-images/4.3/vaapi1804/Dockerfile +++ b/docker-images/4.3/vaapi2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.3.4 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.3.4 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.3.4 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,23 +76,22 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -347,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/alpine313/Dockerfile b/docker-images/4.4/alpine313/Dockerfile index 348767a08..c8781cc02 100644 --- a/docker-images/4.4/alpine313/Dockerfile +++ b/docker-images/4.4/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/centos7/Dockerfile b/docker-images/4.4/centos7/Dockerfile index 6a0b919f2..bc3c7da75 100644 --- a/docker-images/4.4/centos7/Dockerfile +++ b/docker-images/4.4/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/centos8/Dockerfile b/docker-images/4.4/centos8/Dockerfile index 2ef51c421..0d0390201 100644 --- a/docker-images/4.4/centos8/Dockerfile +++ b/docker-images/4.4/centos8/Dockerfile @@ -18,7 +18,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/nvidia2004/Dockerfile b/docker-images/4.4/nvidia2004/Dockerfile index 9b12a04db..98c1f854f 100644 --- a/docker-images/4.4/nvidia2004/Dockerfile +++ b/docker-images/4.4/nvidia2004/Dockerfile @@ -34,7 +34,7 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/scratch313/Dockerfile b/docker-images/4.4/scratch313/Dockerfile index 2d2549829..e8aacba3a 100644 --- a/docker-images/4.4/scratch313/Dockerfile +++ b/docker-images/4.4/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/ubuntu2004/Dockerfile b/docker-images/4.4/ubuntu2004/Dockerfile index 4dd3fc7ee..0a5b8ab01 100644 --- a/docker-images/4.4/ubuntu2004/Dockerfile +++ b/docker-images/4.4/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -543,7 +543,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/4.4/ubuntu1804/Dockerfile b/docker-images/4.4/ubuntu2204/Dockerfile similarity index 97% rename from docker-images/4.4/ubuntu1804/Dockerfile rename to docker-images/4.4/ubuntu2204/Dockerfile index d51714a3f..0401daaba 100644 --- a/docker-images/4.4/ubuntu1804/Dockerfile +++ b/docker-images/4.4/ubuntu2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,21 +76,21 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -346,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/4.4/vaapi2004/Dockerfile b/docker-images/4.4/vaapi2004/Dockerfile index 7e2a4c8fa..d4fdd95d8 100644 --- a/docker-images/4.4/vaapi2004/Dockerfile +++ b/docker-images/4.4/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -544,7 +543,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/4.4/vaapi1804/Dockerfile b/docker-images/4.4/vaapi2204/Dockerfile similarity index 97% rename from docker-images/4.4/vaapi1804/Dockerfile rename to docker-images/4.4/vaapi2204/Dockerfile index f753b6018..0258885ca 100644 --- a/docker-images/4.4/vaapi1804/Dockerfile +++ b/docker-images/4.4/vaapi2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=4.4.2 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=4.4.2 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=4.4.2 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,23 +76,22 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -347,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/alpine313/Dockerfile b/docker-images/5.0/alpine313/Dockerfile index 217f145ed..447b89626 100644 --- a/docker-images/5.0/alpine313/Dockerfile +++ b/docker-images/5.0/alpine313/Dockerfile @@ -14,7 +14,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/centos7/Dockerfile b/docker-images/5.0/centos7/Dockerfile index d21d7a95f..d1ec19abb 100644 --- a/docker-images/5.0/centos7/Dockerfile +++ b/docker-images/5.0/centos7/Dockerfile @@ -16,7 +16,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/centos8/Dockerfile b/docker-images/5.0/centos8/Dockerfile index 0a03adc53..65f43e5bb 100644 --- a/docker-images/5.0/centos8/Dockerfile +++ b/docker-images/5.0/centos8/Dockerfile @@ -18,7 +18,7 @@ FROM base AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/nvidia2004/Dockerfile b/docker-images/5.0/nvidia2004/Dockerfile index a9679f436..5d940e204 100644 --- a/docker-images/5.0/nvidia2004/Dockerfile +++ b/docker-images/5.0/nvidia2004/Dockerfile @@ -34,7 +34,7 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/scratch313/Dockerfile b/docker-images/5.0/scratch313/Dockerfile index 4790dafda..e7ed6d5ee 100644 --- a/docker-images/5.0/scratch313/Dockerfile +++ b/docker-images/5.0/scratch313/Dockerfile @@ -9,7 +9,7 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/ubuntu2004/Dockerfile b/docker-images/5.0/ubuntu2004/Dockerfile index e3ba48bac..3fd5b24c3 100644 --- a/docker-images/5.0/ubuntu2004/Dockerfile +++ b/docker-images/5.0/ubuntu2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -542,7 +542,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/5.0/ubuntu1804/Dockerfile b/docker-images/5.0/ubuntu2204/Dockerfile similarity index 97% rename from docker-images/5.0/ubuntu1804/Dockerfile rename to docker-images/5.0/ubuntu2204/Dockerfile index 0f2cde7e9..a2ba5cb02 100644 --- a/docker-images/5.0/ubuntu1804/Dockerfile +++ b/docker-images/5.0/ubuntu2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,21 +76,21 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -346,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.0/vaapi2004/Dockerfile b/docker-images/5.0/vaapi2004/Dockerfile index 8612154a8..57e6b16b8 100644 --- a/docker-images/5.0/vaapi2004/Dockerfile +++ b/docker-images/5.0/vaapi2004/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -543,7 +542,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/5.0/vaapi1804/Dockerfile b/docker-images/5.0/vaapi2204/Dockerfile similarity index 97% rename from docker-images/5.0/vaapi1804/Dockerfile rename to docker-images/5.0/vaapi2204/Dockerfile index 11b0acbe8..488a49d13 100644 --- a/docker-images/5.0/vaapi1804/Dockerfile +++ b/docker-images/5.0/vaapi2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -17,7 +17,7 @@ RUN apt-get -yqq update && \ FROM base as build ENV FFMPEG_VERSION=5.0.1 \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.0.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.0.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,23 +76,22 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -347,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.1/alpine313/Dockerfile b/docker-images/5.1/alpine313/Dockerfile index cc126cd2f..1be4cb834 100644 --- a/docker-images/5.1/alpine313/Dockerfile +++ b/docker-images/5.1/alpine313/Dockerfile @@ -13,8 +13,8 @@ FROM base AS build WORKDIR /tmp/workdir -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -22,15 +22,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -38,16 +44,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -91,7 +91,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} @@ -346,17 +345,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.1/centos7/Dockerfile b/docker-images/5.1/centos7/Dockerfile index 00405d74c..099c3107e 100644 --- a/docker-images/5.1/centos7/Dockerfile +++ b/docker-images/5.1/centos7/Dockerfile @@ -15,8 +15,8 @@ FROM base AS build WORKDIR /tmp/workdir -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -24,15 +24,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -40,16 +46,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -382,17 +382,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.1/centos8/Dockerfile b/docker-images/5.1/centos8/Dockerfile index ed3946a67..398598fcf 100644 --- a/docker-images/5.1/centos8/Dockerfile +++ b/docker-images/5.1/centos8/Dockerfile @@ -17,8 +17,8 @@ FROM base AS build WORKDIR /tmp/workdir -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -26,15 +26,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -42,16 +48,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -353,17 +353,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.1/nvidia2004/Dockerfile b/docker-images/5.1/nvidia2004/Dockerfile index 980c4fa8d..df1c5408d 100644 --- a/docker-images/5.1/nvidia2004/Dockerfile +++ b/docker-images/5.1/nvidia2004/Dockerfile @@ -33,8 +33,8 @@ FROM devel-base as build ENV NVIDIA_HEADERS_VERSION=11.1.5.0 -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -42,15 +42,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -58,16 +64,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -373,17 +373,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.1/scratch313/Dockerfile b/docker-images/5.1/scratch313/Dockerfile index 6a3e927e4..a48ea4abc 100644 --- a/docker-images/5.1/scratch313/Dockerfile +++ b/docker-images/5.1/scratch313/Dockerfile @@ -8,8 +8,8 @@ FROM alpine:3.13 AS build WORKDIR /tmp/workdir -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -17,15 +17,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -33,16 +39,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -92,7 +92,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} @@ -348,17 +347,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/5.1/ubuntu1804/Dockerfile b/docker-images/5.1/ubuntu1804/Dockerfile deleted file mode 100644 index 4be72279a..000000000 --- a/docker-images/5.1/ubuntu1804/Dockerfile +++ /dev/null @@ -1,595 +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 - -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ - CHROMAPRINT_VERSION=1.5.0 \ - FDKAAC_VERSION=0.1.5 \ - FONTCONFIG_VERSION=2.12.4 \ - FREETYPE_VERSION=2.10.4 \ - FRIBIDI_VERSION=0.19.7 \ - KVAZAAR_VERSION=2.0.0 \ - LAME_VERSION=3.100 \ - LIBASS_VERSION=0.13.7 \ - LIBPTHREAD_STUBS_VERSION=0.4 \ - LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ - 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.4 \ - XAU_VERSION=1.0.9 \ - XORG_MACROS_VERSION=1.19.2 \ - XPROTO_VERSION=7.0.31 \ - XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ - SRC=/usr/local - -ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" -ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" -ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" -ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" - - -ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib -ARG MAKEFLAGS="-j2" -ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" -ARG PREFIX=/opt/ffmpeg -ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" - - -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} -## libvmaf https://github.com/Netflix/vmaf -RUN \ - if which meson || false; then \ - echo "Building VMAF." && \ - DIR=/tmp/vmaf && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ - cd /tmp/vmaf/libvmaf && \ - meson build --buildtype release --prefix=${PREFIX} && \ - ninja -vC build && \ - ninja -vC build install && \ - mkdir -p ${PREFIX}/share/model/ && \ - cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ - rm -rf ${DIR}; \ - else \ - echo "VMAF skipped."; \ - fi - -## opencore-amr https://sourceforge.net/projects/opencore-amr/ -RUN \ - DIR=/tmp/opencore-amr && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ - 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ - tar -zx --strip-components=1 && \ - ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ - 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/ -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 bin/' Makefile.am && \ - ./bootstrap --no-config --auto && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make -j1 && \ - 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} - -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ -RUN \ - DIR=/tmp/xorg-macros && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/xproto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libXau && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ - ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libpthread-stubs && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb-proto && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -RUN \ - DIR=/tmp/libxcb && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ - tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ - ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ - ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libxml2 - for libbluray -RUN \ - DIR=/tmp/libxml2 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ - tar -xz --strip-components=1 && \ - ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libbluray - Requires libxml, freetype, and fontconfig -RUN \ - DIR=/tmp/libbluray && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ - tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ - ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libzmq https://github.com/zeromq/libzmq/ -RUN \ - DIR=/tmp/libzmq && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ - echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libsrt https://github.com/Haivision/srt -RUN \ - DIR=/tmp/srt && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ - tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ - cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ - make && \ - make install && \ - rm -rf ${DIR} - -## libpng -RUN \ - DIR=/tmp/png && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ - ./autogen.sh && \ - ./configure --prefix="${PREFIX}" && \ - make check && \ - make install && \ - rm -rf ${DIR} - -## libaribb24 -RUN \ - DIR=/tmp/b24 && \ - mkdir -p ${DIR} && \ - cd ${DIR} && \ - curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ - echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ - tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ - autoreconf -fiv && \ - ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ - make && \ - make install && \ - rm -rf ${DIR} - -## Download 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 && \ - ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ - make ; make install - - - - - -## Build ffmpeg https://ffmpeg.org/ -RUN \ - DIR=/tmp/ffmpeg && cd ${DIR} && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libaribb24 \ - --enable-libass \ - --enable-libbluray \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxcb \ - --enable-libxvid \ - --enable-libzmq \ - --enable-nonfree \ - --enable-openssl \ - --enable-postproc \ - --enable-shared \ - --enable-small \ - --enable-version3 \ - --extra-cflags="-I${PREFIX}/include" \ - --extra-ldflags="-L${PREFIX}/lib" \ - --extra-libs=-ldl \ - --extra-libs=-lpthread \ - --prefix="${PREFIX}" && \ - make clean && \ - make && \ - make install && \ - make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ - 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/ && \ - for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ - cp ${PREFIX}/bin/* /usr/local/bin/ && \ - cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ - LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ - cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ - mkdir -p /usr/local/lib/pkgconfig && \ - for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ - sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ - done - -FROM base AS release -LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ - org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg - -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 - -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/5.1/ubuntu2004/Dockerfile b/docker-images/5.1/ubuntu2004/Dockerfile index 9c44ca92e..97a8f3c27 100644 --- a/docker-images/5.1/ubuntu2004/Dockerfile +++ b/docker-images/5.1/ubuntu2004/Dockerfile @@ -16,8 +16,8 @@ RUN apt-get -yqq update && \ FROM base as build -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,22 +78,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ @@ -349,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -542,7 +542,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/5.1/ubuntu2204/Dockerfile b/docker-images/5.1/ubuntu2204/Dockerfile new file mode 100644 index 000000000..8e4cc7f2b --- /dev/null +++ b/docker-images/5.1/ubuntu2204/Dockerfile @@ -0,0 +1,596 @@ +# ffmpeg - http://ffmpeg.org/download.html +# +# From https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu +# +# https://hub.docker.com/r/jrottenberg/ffmpeg/ +# +# +FROM ubuntu:22.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 + +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ + CHROMAPRINT_VERSION=1.5.0 \ + FDKAAC_VERSION=0.1.5 \ + FONTCONFIG_VERSION=2.12.4 \ + FREETYPE_VERSION=2.10.4 \ + FRIBIDI_VERSION=0.19.7 \ + KVAZAAR_VERSION=2.0.0 \ + LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ + LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ + LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ + LIBVIDSTAB_VERSION=1.1.0 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ + OGG_VERSION=1.3.2 \ + OPENCOREAMR_VERSION=0.1.5 \ + OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=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.4 \ + XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ + XORG_MACROS_VERSION=1.19.2 \ + XPROTO_VERSION=7.0.31 \ + XVID_VERSION=1.3.4 \ + SRC=/usr/local + +ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.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" +ARG LIBBLURAY_SHA256SUM="a3dd452239b100dc9da0d01b30e1692693e2a332a7d29917bf84bb10ea7c0b42 libbluray-1.1.2.tar.bz2" +ARG LIBZMQ_SHA256SUM="02ecc88466ae38cf2c8d79f09cfd2675ba299a439680b64ade733e26a349edeb v4.3.2.tar.gz" +ARG LIBARIBB24_SHA256SUM="f61560738926e57f9173510389634d8c06cabedfa857db4b28fb7704707ff128 v1.0.3.tar.gz" + + +ARG LD_LIBRARY_PATH=/opt/ffmpeg/lib +ARG MAKEFLAGS="-j2" +ARG PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig" +ARG PREFIX=/opt/ffmpeg +ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" + + +RUN buildDeps="autoconf \ + automake \ + bzip2 \ + cmake \ + curl \ + g++ \ + gcc \ + git \ + gperf \ + libexpat1-dev \ + libssl-dev \ + libtool \ + make \ + nasm \ + perl \ + pkg-config \ + python3 \ + yasm \ + zlib1g-dev" && \ + apt-get -yqq update && \ + apt-get install -yq --no-install-recommends ${buildDeps} +## libvmaf https://github.com/Netflix/vmaf +RUN \ + if which meson || false; then \ + echo "Building VMAF." && \ + DIR=/tmp/vmaf && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \ + tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \ + cd /tmp/vmaf/libvmaf && \ + meson build --buildtype release --prefix=${PREFIX} && \ + ninja -vC build && \ + ninja -vC build install && \ + mkdir -p ${PREFIX}/share/model/ && \ + cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \ + rm -rf ${DIR}; \ + else \ + echo "VMAF skipped."; \ + fi + +## opencore-amr https://sourceforge.net/projects/opencore-amr/ +RUN \ + DIR=/tmp/opencore-amr && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz/download | \ + 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://github.com/videolan/x265/archive/refs/tags/${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://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download | \ + tar -zx --strip-components=1 && \ + ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --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" && \ + 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/ +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 bin/' Makefile.am && \ + ./bootstrap --no-config --auto && \ + ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ + make -j1 && \ + 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 && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ + rm -rf ${DIR} + +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +RUN \ + DIR=/tmp/xorg-macros && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz && \ + tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \ + ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ + make && \ + make install && \ + rm -rf ${DIR} + +RUN \ + DIR=/tmp/xproto && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz && \ + tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \ + ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ + make && \ + make install && \ + rm -rf ${DIR} + +RUN \ + DIR=/tmp/libXau && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz && \ + tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \ + ./configure --srcdir=${DIR} --prefix="${PREFIX}" && \ + make && \ + make install && \ + rm -rf ${DIR} + +RUN \ + DIR=/tmp/libpthread-stubs && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ + tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \ + ./configure --prefix="${PREFIX}" && \ + make && \ + make install && \ + rm -rf ${DIR} + +RUN \ + DIR=/tmp/libxcb-proto && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ + tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \ + ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ + ./configure --prefix="${PREFIX}" && \ + make && \ + make install && \ + rm -rf ${DIR} + +RUN \ + DIR=/tmp/libxcb && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz && \ + tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \ + ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \ + ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \ + make && \ + make install && \ + rm -rf ${DIR} + +## libxml2 - for libbluray +RUN \ + DIR=/tmp/libxml2 && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sL https://github.com/GNOME/libxml2/archive/refs/tags/v${LIBXML2_VERSION}.tar.gz | \ + tar -xz --strip-components=1 && \ + ./autogen.sh --prefix="${PREFIX}" --with-ftp=no --with-http=no --with-python=no && \ + make && \ + make install && \ + rm -rf ${DIR} + +## libbluray - Requires libxml, freetype, and fontconfig +RUN \ + DIR=/tmp/libbluray && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ + echo ${LIBBLURAY_SHA256SUM} | sha256sum --check && \ + tar -jx --strip-components=1 -f libbluray-${LIBBLURAY_VERSION}.tar.bz2 && \ + ./configure --prefix="${PREFIX}" --disable-examples --disable-bdjava-jar --disable-static --enable-shared && \ + make && \ + make install && \ + rm -rf ${DIR} + +## libzmq https://github.com/zeromq/libzmq/ +RUN \ + DIR=/tmp/libzmq && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://github.com/zeromq/libzmq/archive/v${LIBZMQ_VERSION}.tar.gz && \ + echo ${LIBZMQ_SHA256SUM} | sha256sum --check && \ + tar -xz --strip-components=1 -f v${LIBZMQ_VERSION}.tar.gz && \ + ./autogen.sh && \ + ./configure --prefix="${PREFIX}" && \ + make && \ + make check && \ + make install && \ + rm -rf ${DIR} + +## libsrt https://github.com/Haivision/srt +RUN \ + DIR=/tmp/srt && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://github.com/Haivision/srt/archive/v${LIBSRT_VERSION}.tar.gz && \ + tar -xz --strip-components=1 -f v${LIBSRT_VERSION}.tar.gz && \ + cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \ + make && \ + make install && \ + rm -rf ${DIR} + +## libpng +RUN \ + DIR=/tmp/png && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + git clone https://git.code.sf.net/p/libpng/code ${DIR} -b v${LIBPNG_VERSION} --depth 1 && \ + ./autogen.sh && \ + ./configure --prefix="${PREFIX}" && \ + make check && \ + make install && \ + rm -rf ${DIR} + +## libaribb24 +RUN \ + DIR=/tmp/b24 && \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://github.com/nkoriyama/aribb24/archive/v${LIBARIBB24_VERSION}.tar.gz && \ + echo ${LIBARIBB24_SHA256SUM} | sha256sum --check && \ + tar -xz --strip-components=1 -f v${LIBARIBB24_VERSION}.tar.gz && \ + autoreconf -fiv && \ + ./configure CFLAGS="-I${PREFIX}/include -fPIC" --prefix="${PREFIX}" && \ + make && \ + make install && \ + rm -rf ${DIR} + +## Download 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 && \ + ./configure --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-gpl --extra-libs=-ldl && \ + make ; make install + + + + + +## Build ffmpeg https://ffmpeg.org/ +RUN \ + DIR=/tmp/ffmpeg && cd ${DIR} && \ + ./configure \ + --disable-debug \ + --disable-doc \ + --disable-ffplay \ + --enable-fontconfig \ + --enable-gpl \ + --enable-libaom \ + --enable-libaribb24 \ + --enable-libass \ + --enable-libbluray \ + --enable-libfdk_aac \ + --enable-libfreetype \ + --enable-libkvazaar \ + --enable-libmp3lame \ + --enable-libopencore-amrnb \ + --enable-libopencore-amrwb \ + --enable-libopenjpeg \ + --enable-libopus \ + --enable-libsrt \ + --enable-libtheora \ + --enable-libvidstab \ + --enable-libvorbis \ + --enable-libvpx \ + --enable-libwebp \ + --enable-libx264 \ + --enable-libx265 \ + --enable-libxcb \ + --enable-libxvid \ + --enable-libzmq \ + --enable-nonfree \ + --enable-openssl \ + --enable-postproc \ + --enable-shared \ + --enable-small \ + --enable-version3 \ + --extra-cflags="-I${PREFIX}/include" \ + --extra-ldflags="-L${PREFIX}/lib" \ + --extra-libs=-ldl \ + --extra-libs=-lpthread \ + --prefix="${PREFIX}" && \ + make clean && \ + make && \ + make install && \ + make tools/zmqsend && cp tools/zmqsend ${PREFIX}/bin/ && \ + 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/ && \ + for lib in /usr/local/lib/*.so.*; do ln -s "${lib##*/}" "${lib%%.so.*}".so; done && \ + cp ${PREFIX}/bin/* /usr/local/bin/ && \ + cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \ + LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf && \ + cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include && \ + mkdir -p /usr/local/lib/pkgconfig && \ + for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do \ + sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}"; \ + done + +FROM base AS release +LABEL org.opencontainers.image.authors="julien@rottenberg.info" \ + org.opencontainers.image.source=https://github.com/jrottenberg/ffmpeg + +ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64 + +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/5.1/vaapi2004/Dockerfile b/docker-images/5.1/vaapi2004/Dockerfile index 30d1123fa..40dbd1492 100644 --- a/docker-images/5.1/vaapi2004/Dockerfile +++ b/docker-images/5.1/vaapi2004/Dockerfile @@ -16,8 +16,8 @@ RUN apt-get -yqq update && \ FROM base as build -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -78,24 +78,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -350,17 +348,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ @@ -543,7 +542,6 @@ RUN \ --enable-libsrt \ --enable-libtheora \ --enable-libvidstab \ - --enable-libvmaf \ --enable-libvorbis \ --enable-libvpx \ --enable-libwebp \ diff --git a/docker-images/5.1/vaapi1804/Dockerfile b/docker-images/5.1/vaapi2204/Dockerfile similarity index 96% rename from docker-images/5.1/vaapi1804/Dockerfile rename to docker-images/5.1/vaapi2204/Dockerfile index 4feaf4670..15038a76c 100644 --- a/docker-images/5.1/vaapi1804/Dockerfile +++ b/docker-images/5.1/vaapi2204/Dockerfile @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -16,8 +16,8 @@ RUN apt-get -yqq update && \ FROM base as build -ENV FFMPEG_VERSION=5.1 \ - AOM_VERSION=v1.0.0 \ +ENV FFMPEG_VERSION=5.1.1 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -25,15 +25,21 @@ ENV FFMPEG_VERSION=5.1 \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -41,16 +47,10 @@ ENV FFMPEG_VERSION=5.1 \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" @@ -76,23 +76,22 @@ ARG LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64" RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} @@ -347,17 +346,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/docker-images/azure-jobs.yml b/docker-images/azure-jobs.yml index 849d01421..0e7ab3c02 100644 --- a/docker-images/azure-jobs.yml +++ b/docker-images/azure-jobs.yml @@ -8,733 +8,589 @@ jobs: maxParallel: 10 matrix: - ubuntu1804_5.1: + ubuntu2204_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: ubuntu1804 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True - ubuntu2004_5.1: + ubuntu2004_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: ubuntu2004 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False - alpine313_5.1: + alpine313_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: alpine313 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True - centos7_5.1: + centos7_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: centos7 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False - centos8_5.1: + centos8_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: centos8 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True - scratch313_5.1: + scratch313_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: scratch313 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True - vaapi1804_5.1: + vaapi2204_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: vaapi1804 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: vaapi2204 PARENT: vaapi - ISPARENT: False + ISPARENT: True - vaapi2004_5.1: + vaapi2004_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: vaapi2004 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: False - nvidia2004_5.1: + nvidia2004_5.1.1: MAJOR_VERSION: 5 - VERSION: 5.1 - LONG_VERSION: 5.1 - VARIANT: nvidia2004 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True - ubuntu1804_5.0.1: + ubuntu2204_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: ubuntu1804 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True ubuntu2004_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False alpine313_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False centos8_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: centos8 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True - vaapi1804_5.0.1: + vaapi2204_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: vaapi1804 + VARIANT: vaapi2204 PARENT: vaapi - ISPARENT: False + ISPARENT: True vaapi2004_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: False nvidia2004_5.0.1: MAJOR_VERSION: 5 - VERSION: 5.0 + VERSION: 5.0 LONG_VERSION: 5.0.1 - VARIANT: nvidia2004 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True - ubuntu1804_4.4.2: + ubuntu2204_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: ubuntu1804 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True ubuntu2004_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False alpine313_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False centos8_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: centos8 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True - vaapi1804_4.4.2: + vaapi2204_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: vaapi1804 + VARIANT: vaapi2204 PARENT: vaapi - ISPARENT: False + ISPARENT: True vaapi2004_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: False nvidia2004_4.4.2: MAJOR_VERSION: 4 - VERSION: 4.4 + VERSION: 4.4 LONG_VERSION: 4.4.2 - VARIANT: nvidia2004 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True - ubuntu1804_4.3.4: + ubuntu2204_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: ubuntu1804 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True ubuntu2004_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False alpine313_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False centos8_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: centos8 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True - vaapi1804_4.3.4: + vaapi2204_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: vaapi1804 + VARIANT: vaapi2204 PARENT: vaapi - ISPARENT: False + ISPARENT: True vaapi2004_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: False nvidia2004_4.3.4: MAJOR_VERSION: 4 - VERSION: 4.3 + VERSION: 4.3 LONG_VERSION: 4.3.4 - VARIANT: nvidia2004 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True - ubuntu1804_4.2.7: + ubuntu2204_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: ubuntu1804 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True ubuntu2004_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False alpine313_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False centos8_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: centos8 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True vaapi2004_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: True nvidia2004_4.2.7: MAJOR_VERSION: 4 - VERSION: 4.2 + VERSION: 4.2 LONG_VERSION: 4.2.7 - VARIANT: nvidia2004 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True - ubuntu1804_4.1.9: + ubuntu2204_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: ubuntu1804 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True ubuntu2004_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False alpine313_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False centos8_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: centos8 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True vaapi2004_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: True nvidia2004_4.1.9: MAJOR_VERSION: 4 - VERSION: 4.1 + VERSION: 4.1 LONG_VERSION: 4.1.9 - VARIANT: nvidia2004 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True - ubuntu1804_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: ubuntu1804 - PARENT: ubuntu - ISPARENT: False - - - ubuntu2004_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: ubuntu2004 - PARENT: ubuntu - ISPARENT: True - - - alpine313_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: alpine313 - PARENT: alpine - ISPARENT: True - - - centos7_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: centos7 - PARENT: centos - ISPARENT: False - - - centos8_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: centos8 - PARENT: centos - ISPARENT: True - - - scratch313_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: scratch313 - PARENT: scratch - ISPARENT: True - - - vaapi2004_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: vaapi2004 - PARENT: vaapi - ISPARENT: True - - - nvidia2004_4.0.6: - MAJOR_VERSION: 4 - VERSION: 4.0 - LONG_VERSION: 4.0.6 - VARIANT: nvidia2004 - PARENT: nvidia - ISPARENT: True - - - ubuntu1804_3.4.11: + ubuntu2204_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: ubuntu1804 + VARIANT: ubuntu2204 PARENT: ubuntu - ISPARENT: False + ISPARENT: True ubuntu2004_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: False alpine313_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: False + ISPARENT: False centos8_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: centos8 + VARIANT: centos8 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True vaapi2004_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: True nvidia2004_3.4.11: MAJOR_VERSION: 3 - VERSION: 3.4 + VERSION: 3.4 LONG_VERSION: 3.4.11 - VARIANT: nvidia2004 - PARENT: nvidia - ISPARENT: True - - - ubuntu1804_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: ubuntu1804 - PARENT: ubuntu - ISPARENT: False - - - ubuntu2004_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: ubuntu2004 - PARENT: ubuntu - ISPARENT: True - - - alpine313_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: alpine313 - PARENT: alpine - ISPARENT: True - - - centos7_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: centos7 - PARENT: centos - ISPARENT: False - - - centos8_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: centos8 - PARENT: centos - ISPARENT: True - - - scratch313_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: scratch313 - PARENT: scratch - ISPARENT: True - - - vaapi2004_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: vaapi2004 - PARENT: vaapi - ISPARENT: True - - - nvidia2004_3.3.9: - MAJOR_VERSION: 3 - VERSION: 3.3 - LONG_VERSION: 3.3.9 - VARIANT: nvidia2004 + VARIANT: nvidia2004 PARENT: nvidia - ISPARENT: True + ISPARENT: True ubuntu2004_3.2.18: MAJOR_VERSION: 3 - VERSION: 3.2 + VERSION: 3.2 LONG_VERSION: 3.2.18 - VARIANT: ubuntu2004 + VARIANT: ubuntu2004 PARENT: ubuntu - ISPARENT: True + ISPARENT: True alpine313_3.2.18: MAJOR_VERSION: 3 - VERSION: 3.2 + VERSION: 3.2 LONG_VERSION: 3.2.18 - VARIANT: alpine313 + VARIANT: alpine313 PARENT: alpine - ISPARENT: True + ISPARENT: True centos7_3.2.18: MAJOR_VERSION: 3 - VERSION: 3.2 + VERSION: 3.2 LONG_VERSION: 3.2.18 - VARIANT: centos7 + VARIANT: centos7 PARENT: centos - ISPARENT: True + ISPARENT: True scratch313_3.2.18: MAJOR_VERSION: 3 - VERSION: 3.2 + VERSION: 3.2 LONG_VERSION: 3.2.18 - VARIANT: scratch313 + VARIANT: scratch313 PARENT: scratch - ISPARENT: True + ISPARENT: True vaapi2004_3.2.18: MAJOR_VERSION: 3 - VERSION: 3.2 + VERSION: 3.2 LONG_VERSION: 3.2.18 - VARIANT: vaapi2004 + VARIANT: vaapi2004 PARENT: vaapi - ISPARENT: True + ISPARENT: True steps: - template: ../azure-steps.yml diff --git a/docker-images/gitlab-ci.yml b/docker-images/gitlab-ci.yml index a46b729a7..6b4270337 100644 --- a/docker-images/gitlab-ci.yml +++ b/docker-images/gitlab-ci.yml @@ -7,893 +7,717 @@ stages: - ubuntu - vaapi -5.1-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" - -5.1-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" - -5.1-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" - -5.1-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" - -5.1-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" - -5.1-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" - -5.1-vaapi1804: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: vaapi1804 - PARENT: "vaapi" - ISPARENT: "False" - -5.1-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" - -5.1-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 5 - VERSION: "5.1" - LONG_VERSION: "5.1" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -5.0.1-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" +5.1.1-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True + +5.1.1-ubuntu2004: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False + +5.1.1-alpine313: + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True + +5.1.1-centos7: + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: centos7 + PARENT: centos + ISPARENT: False + +5.1.1-centos8: + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: centos8 + PARENT: centos + ISPARENT: True + +5.1.1-scratch313: + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True + +5.1.1-vaapi2204: + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: vaapi2204 + PARENT: vaapi + ISPARENT: True + +5.1.1-vaapi2004: + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: False + +5.1.1-nvidia2004: + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 5 + VERSION: 5.1 + LONG_VERSION: 5.1.1 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True + +5.0.1-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True 5.0.1-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False 5.0.1-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 5.0.1-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: centos7 + PARENT: centos + ISPARENT: False 5.0.1-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: centos8 + PARENT: centos + ISPARENT: True 5.0.1-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" - -5.0.1-vaapi1804: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: vaapi1804 - PARENT: "vaapi" - ISPARENT: "False" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True + +5.0.1-vaapi2204: + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: vaapi2204 + PARENT: vaapi + ISPARENT: True 5.0.1-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: False 5.0.1-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 5 - VERSION: "5.0" - LONG_VERSION: "5.0.1" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -4.4.2-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 5 + VERSION: 5.0 + LONG_VERSION: 5.0.1 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True + +4.4.2-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True 4.4.2-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False 4.4.2-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 4.4.2-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: centos7 + PARENT: centos + ISPARENT: False 4.4.2-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: centos8 + PARENT: centos + ISPARENT: True 4.4.2-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" - -4.4.2-vaapi1804: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: vaapi1804 - PARENT: "vaapi" - ISPARENT: "False" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True + +4.4.2-vaapi2204: + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: vaapi2204 + PARENT: vaapi + ISPARENT: True 4.4.2-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: False 4.4.2-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 4 - VERSION: "4.4" - LONG_VERSION: "4.4.2" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -4.3.4-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 4 + VERSION: 4.4 + LONG_VERSION: 4.4.2 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True + +4.3.4-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True 4.3.4-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False 4.3.4-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 4.3.4-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: centos7 + PARENT: centos + ISPARENT: False 4.3.4-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: centos8 + PARENT: centos + ISPARENT: True 4.3.4-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" - -4.3.4-vaapi1804: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: vaapi1804 - PARENT: "vaapi" - ISPARENT: "False" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True + +4.3.4-vaapi2204: + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: vaapi2204 + PARENT: vaapi + ISPARENT: True 4.3.4-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: False 4.3.4-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 4 - VERSION: "4.3" - LONG_VERSION: "4.3.4" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -4.2.7-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 4 + VERSION: 4.3 + LONG_VERSION: 4.3.4 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True + +4.2.7-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True 4.2.7-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False 4.2.7-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 4.2.7-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: centos7 + PARENT: centos + ISPARENT: False 4.2.7-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: centos8 + PARENT: centos + ISPARENT: True 4.2.7-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True 4.2.7-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: True 4.2.7-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 4 - VERSION: "4.2" - LONG_VERSION: "4.2.7" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -4.1.9-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 4 + VERSION: 4.2 + LONG_VERSION: 4.2.7 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True + +4.1.9-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True 4.1.9-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False 4.1.9-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 4.1.9-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: centos7 + PARENT: centos + ISPARENT: False 4.1.9-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: centos8 + PARENT: centos + ISPARENT: True 4.1.9-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True 4.1.9-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: True 4.1.9-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 4 - VERSION: "4.1" - LONG_VERSION: "4.1.9" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -4.0.6-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" - -4.0.6-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" - -4.0.6-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" - -4.0.6-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" - -4.0.6-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" - -4.0.6-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" - -4.0.6-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" - -4.0.6-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 4 - VERSION: "4.0" - LONG_VERSION: "4.0.6" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -3.4.11-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 4 + VERSION: 4.1 + LONG_VERSION: 4.1.9 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True + +3.4.11-ubuntu2204: + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: ubuntu2204 + PARENT: ubuntu + ISPARENT: True 3.4.11-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: False 3.4.11-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 3.4.11-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: centos7 + PARENT: centos + ISPARENT: False 3.4.11-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: centos8 + PARENT: centos + ISPARENT: True 3.4.11-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True 3.4.11-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: True 3.4.11-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 3 - VERSION: "3.4" - LONG_VERSION: "3.4.11" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" - -3.3.9-ubuntu1804: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: ubuntu1804 - PARENT: "ubuntu" - ISPARENT: "False" - -3.3.9-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" - -3.3.9-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" - -3.3.9-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "False" - -3.3.9-centos8: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: centos8 - PARENT: "centos" - ISPARENT: "True" - -3.3.9-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" - -3.3.9-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" - -3.3.9-nvidia2004: - extends: .docker - stage: nvidia - variables: - MAJOR_VERSION: 3 - VERSION: "3.3" - LONG_VERSION: "3.3.9" - VARIANT: nvidia2004 - PARENT: "nvidia" - ISPARENT: "True" + extends: .docker + stage: nvidia + variables: + MAJOR_VERSION: 3 + VERSION: 3.4 + LONG_VERSION: 3.4.11 + VARIANT: nvidia2004 + PARENT: nvidia + ISPARENT: True 3.2.18-ubuntu2004: - extends: .docker - stage: ubuntu - variables: - MAJOR_VERSION: 3 - VERSION: "3.2" - LONG_VERSION: "3.2.18" - VARIANT: ubuntu2004 - PARENT: "ubuntu" - ISPARENT: "True" + extends: .docker + stage: ubuntu + variables: + MAJOR_VERSION: 3 + VERSION: 3.2 + LONG_VERSION: 3.2.18 + VARIANT: ubuntu2004 + PARENT: ubuntu + ISPARENT: True 3.2.18-alpine313: - extends: .docker - stage: alpine - variables: - MAJOR_VERSION: 3 - VERSION: "3.2" - LONG_VERSION: "3.2.18" - VARIANT: alpine313 - PARENT: "alpine" - ISPARENT: "True" + extends: .docker + stage: alpine + variables: + MAJOR_VERSION: 3 + VERSION: 3.2 + LONG_VERSION: 3.2.18 + VARIANT: alpine313 + PARENT: alpine + ISPARENT: True 3.2.18-centos7: - extends: .docker - stage: centos - variables: - MAJOR_VERSION: 3 - VERSION: "3.2" - LONG_VERSION: "3.2.18" - VARIANT: centos7 - PARENT: "centos" - ISPARENT: "True" + extends: .docker + stage: centos + variables: + MAJOR_VERSION: 3 + VERSION: 3.2 + LONG_VERSION: 3.2.18 + VARIANT: centos7 + PARENT: centos + ISPARENT: True 3.2.18-scratch313: - extends: .docker - stage: scratch - variables: - MAJOR_VERSION: 3 - VERSION: "3.2" - LONG_VERSION: "3.2.18" - VARIANT: scratch313 - PARENT: "scratch" - ISPARENT: "True" + extends: .docker + stage: scratch + variables: + MAJOR_VERSION: 3 + VERSION: 3.2 + LONG_VERSION: 3.2.18 + VARIANT: scratch313 + PARENT: scratch + ISPARENT: True 3.2.18-vaapi2004: - extends: .docker - stage: vaapi - variables: - MAJOR_VERSION: 3 - VERSION: "3.2" - LONG_VERSION: "3.2.18" - VARIANT: vaapi2004 - PARENT: "vaapi" - ISPARENT: "True" + extends: .docker + stage: vaapi + variables: + MAJOR_VERSION: 3 + VERSION: 3.2 + LONG_VERSION: 3.2.18 + VARIANT: vaapi2004 + PARENT: vaapi + ISPARENT: True diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh deleted file mode 100755 index 53d035b81..000000000 --- a/generate-stackbrew-library.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -set -eu - -array_2_8='2'; -array_3_0=''; -array_3_1='3 latest'; - -cd $(cd ${0%/*} && pwd -P); - -declare -A variants='centos' - -hash git 2>/dev/null || { echo >&2 "git not found, exiting."; } - -versions=( */ ) -versions=( "${versions[@]%/}" ) -url='git://github.com/jrottenberg/ffmpeg' - -echo '# maintainer: Julien Rottenberg ' - -for version in "${versions[@]}"; do - if [[ "$version" == "docs" ]]; then - continue - fi - eval stub=$(echo "$version" | awk -F. '{ print "$array_" $1 "_" $2 }'); - commit="$(git log -1 --format='format:%H' -- "$version")" - fullVersion="$(grep -m1 'FFMPEG_VERSION=' "$version/Dockerfile" | cut -d'=' -f2 | cut -d ' ' -f1)" - - versionAliases=( $fullVersion $version ${stub} ) - echo - for va in "${versionAliases[@]}"; do - echo "$va: ${url}@${commit} $version" - done - - for variant in $variants; do - commit="$(git log -1 --format='format:%H' -- "$version/$variant")" - for va in "${versionAliases[@]}"; do - if [ "$va" = 'latest' ]; then - va="$variant" - else - va="$va-$variant" - fi - echo "$va: ${url}@${commit} $version/$variant" - done - done -done diff --git a/generate_dockerfile.py b/generate_dockerfile.py new file mode 100755 index 000000000..81e650c8d --- /dev/null +++ b/generate_dockerfile.py @@ -0,0 +1,281 @@ +#!/usr/bin/env python3 +import os +import re +import shutil +from pathlib import Path +from urllib import request + +from packaging.version import Version + +MIN_VERSION = "3" +with open("templates/Dockerfile-env", "r") as tmpfile: + ENV_CONTENT = tmpfile.read() +with open("templates/Dockerfile-run", "r") as tmpfile: + RUN_CONTENT = tmpfile.read() +DIR_FORMAT_STR = "docker-images/{0}/{1}" +IMAGE_FORMAT_STR = "{0}/Dockerfile".format(DIR_FORMAT_STR) +TEMPLATE_STR = "templates/Dockerfile-template.{0}" + +# https://ffmpeg.org/olddownload.html +SKIP_VERSIONS = "4.0 3.3 3.1 3.0 snapshot" +VARIANTS = [ + {"name": "ubuntu2204", "parent": "ubuntu"}, + {"name": "ubuntu2004", "parent": "ubuntu"}, + {"name": "alpine313", "parent": "alpine"}, + {"name": "centos7", "parent": "centos"}, + {"name": "centos8", "parent": "centos"}, + {"name": "scratch313", "parent": "scratch"}, + {"name": "vaapi2204", "parent": "vaapi"}, + {"name": "vaapi2004", "parent": "vaapi"}, + {"name": "nvidia2004", "parent": "nvidia"}, +] +FFMPEG_RELEASES = "https://ffmpeg.org/releases/" + + +def get_shorten_version(version): + if version == "snapshot": + return version + else: + major, minor, *patch = version.split(".") + return f"{major}.{minor}" + + +def get_major_version(version): + if version == "snapshot": + return version + else: + major, minor, *patch = version.split(".") + return f"{major}" + + +def main(): + + gitlabci = ["stages:\n - lint\n"] + azureci = [] + + # Get latest release from ffmpeg.org + with request.urlopen(FFMPEG_RELEASES) as conn: + ffmpeg_releases = conn.read().decode("utf-8") + + all_parents = sorted(set([sub["parent"] for sub in VARIANTS])) + for parent in all_parents: + gitlabci.append(f" - {parent}\n") + + parse_re = re.compile(r"ffmpeg-([.0-9]+).tar.bz2.asc\s+") + all_versions = parse_re.findall(ffmpeg_releases) + all_versions.sort(key=Version, reverse=True) + + version, all_versions = all_versions[0], all_versions[1:] + + SKIP_VARIANTS = { + "3.2": [ + "alpine312", + "centos8", + "nvidia2004", + "scratch312", + "ubuntu2204", + "vaapi2204", + ], + "3.3": ["alpine38", "nvidia1604", "scratch38", "vaapi2204"], + "3.4": ["alpine38", "nvidia1604", "scratch38", "vaapi2204"], + "4.1": ["alpine38", "nvidia1604", "scratch38", "vaapi2204"], + "4.2": ["alpine38", "nvidia1604", "scratch38", "vaapi2204"], + } + + last = version.split(".") + keep_version = [] + + keep_version.append(version) + + for cur in all_versions: + if cur < MIN_VERSION: + break + + if get_shorten_version(cur) in SKIP_VERSIONS: + continue + tmp = cur.split(".") + # Check Minor + if len(tmp) >= 2 and tmp[1].isdigit() and tmp[1] < last[1]: + keep_version.append(cur) + last = tmp + # Check Major + elif len(tmp) > 1 and tmp[0].isdigit() and tmp[0] < last[0]: + keep_version.append(cur) + last = tmp + + print("Preparing docker images for ffmpeg versions: ") + + for version in keep_version: + print(version) + skip_variants = None + for k, v in SKIP_VARIANTS.items(): + if version.startswith(k): + skip_variants = v + compatible_variants = [ + v + for v in VARIANTS + if skip_variants is None or v["name"] not in skip_variants + ] + short_version = get_shorten_version(version) + major_version = get_major_version(version) + ver_path = os.path.join("docker-images", short_version) + if not Path(ver_path).is_dir(): + os.makedirs(ver_path) + for existing_variant in os.listdir(ver_path): + if existing_variant not in compatible_variants: + shutil.rmtree(DIR_FORMAT_STR.format(short_version, existing_variant)) + + for variant in compatible_variants: + siblings = [ + v["name"] + for v in compatible_variants + if v["parent"] == variant["parent"] + ] + is_parent = sorted(siblings, reverse=True)[0] == variant["name"] + dockerfile = IMAGE_FORMAT_STR.format(short_version, variant["name"]) + gitlabci.append( + f""" +{version}-{variant['name']}: + extends: .docker + stage: {variant['parent']} + variables: + MAJOR_VERSION: {major_version} + VERSION: {short_version} + LONG_VERSION: {version} + VARIANT: {variant['name']} + PARENT: {variant['parent']} + ISPARENT: {is_parent} +""" + ) + + azureci.append( + f""" + {variant["name"]}_{version}: + MAJOR_VERSION: {major_version} + VERSION: {short_version} + LONG_VERSION: {version} + VARIANT: {variant["name"]} + PARENT: {variant["parent"]} + ISPARENT: {is_parent} +""" + ) + + with open(TEMPLATE_STR.format(variant["name"]), "r") as tmpfile: + template = tmpfile.read() + + FFMPEG_CONFIG_FLAGS = [ + "--disable-debug", + "--disable-doc", + "--disable-ffplay", + "--enable-fontconfig", + "--enable-gpl", + "--enable-libass", + "--enable-libbluray", + "--enable-libfdk_aac", + "--enable-libfreetype", + "--enable-libmp3lame", + "--enable-libopencore-amrnb", + "--enable-libopencore-amrwb", + "--enable-libopus", + "--enable-libtheora", + "--enable-libvidstab", + "--enable-libvorbis", + "--enable-libvpx", + "--enable-libwebp", + "--enable-libx264", + "--enable-libx265", + "--enable-libxcb", + "--enable-libxvid", + "--enable-libzmq", + "--enable-nonfree", + "--enable-openssl", + "--enable-postproc", + "--enable-shared", + "--enable-small", + "--enable-version3", + "--extra-libs=-ldl", + '--prefix="${PREFIX}"', + ] + CFLAGS = [ + "-I${PREFIX}/include", + ] + LDFLAGS = [ + "-L${PREFIX}/lib", + ] + + # OpenJpeg 2.1 is not supported in 2.8 + if version[0:3] != "2.8": + FFMPEG_CONFIG_FLAGS.append("--enable-libopenjpeg") + FFMPEG_CONFIG_FLAGS.append("--enable-libkvazaar") + if version == "snapshot" or int(version[0]) > 3: + FFMPEG_CONFIG_FLAGS.append("--enable-libaom") + FFMPEG_CONFIG_FLAGS.append("--extra-libs=-lpthread") + + # LibSRT is supported from 4.0 + if version == "snapshot" or int(version[0]) >= 4: + FFMPEG_CONFIG_FLAGS.append("--enable-libsrt") + + # LibARIBB24 is supported from 4.2 + if version == "snapshot" or float(version[0:3]) >= 4.2: + FFMPEG_CONFIG_FLAGS.append("--enable-libaribb24") + + if (template.find("meson") > 0) and ( + version == "snapshot" or float(version[0:3]) >= 4.3 + ): + FFMPEG_CONFIG_FLAGS.append("--enable-libvmaf") + + if (version == "snapshot" or int(version[0]) >= 3) and variant[ + "parent" + ] == "vaapi": + FFMPEG_CONFIG_FLAGS.append("--enable-vaapi") + + # libavresample removed on v5, deprecated since v4.0 + # https://github.com/FFmpeg/FFmpeg/commit/c29038f3041a4080342b2e333c1967d136749c0f + if float(version[0]) < 5: + FFMPEG_CONFIG_FLAGS.append("--enable-avresample") + + if variant["parent"] == "nvidia": + CFLAGS.append("-I${PREFIX}/include/ffnvcodec") + CFLAGS.append("-I/usr/local/cuda/include/") + LDFLAGS.append("-L/usr/local/cuda/lib64") + LDFLAGS.append("-L/usr/local/cuda/lib32/") + FFMPEG_CONFIG_FLAGS.append("--enable-nvenc") + if version == "snapshot" or int(version[0]) >= 4: + FFMPEG_CONFIG_FLAGS.append("--enable-cuda") + FFMPEG_CONFIG_FLAGS.append("--enable-cuvid") + FFMPEG_CONFIG_FLAGS.append("--enable-libnpp") + cflags = '--extra-cflags="{0}"'.format(" ".join(CFLAGS)) + ldflags = '--extra-ldflags="{0}"'.format(" ".join(LDFLAGS)) + FFMPEG_CONFIG_FLAGS.append(cflags) + FFMPEG_CONFIG_FLAGS.append(ldflags) + FFMPEG_CONFIG_FLAGS.sort() + + COMBINED_CONFIG_FLAGS = " \\\n ".join(FFMPEG_CONFIG_FLAGS) + + run_content = RUN_CONTENT.replace( + "%%FFMPEG_CONFIG_FLAGS%%", COMBINED_CONFIG_FLAGS + ) + env_content = ENV_CONTENT.replace("%%FFMPEG_VERSION%%", version) + docker_content = template.replace("%%ENV%%", env_content) + docker_content = docker_content.replace("%%RUN%%", run_content) + + 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("docker-images/gitlab-ci.yml", "w") as gitlabcifile: + gitlabcifile.write("".join(gitlabci)) + + with open("templates/azure.template", "r") as tmpfile: + template = tmpfile.read() + azureci = template.replace("%%VERSIONS%%", "\n".join(azureci)) + + with open("docker-images/azure-jobs.yml", "w") as azurefile: + azurefile.write(azureci) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..964678329 --- /dev/null +++ b/setup.py @@ -0,0 +1,13 @@ +from __future__ import annotations + +from setuptools import setup + +setup( + name="pre_commit_placeholder_package", + version="0.0.0", + install_requires=["packaging"], + py_modules=["generate_dockerfile"], + entry_points={ + "console_scripts": ["generate_dockerfile = generate_dockerfile:main"] + }, +) diff --git a/templates/Dockerfile-env b/templates/Dockerfile-env index 67168a894..134cd0bee 100644 --- a/templates/Dockerfile-env +++ b/templates/Dockerfile-env @@ -1,5 +1,5 @@ FFMPEG_VERSION=%%FFMPEG_VERSION%% \ - AOM_VERSION=v1.0.0 \ + AOM_VERSION=v3.4.0 \ CHROMAPRINT_VERSION=1.5.0 \ FDKAAC_VERSION=0.1.5 \ FONTCONFIG_VERSION=2.12.4 \ @@ -7,15 +7,21 @@ FFMPEG_VERSION=%%FFMPEG_VERSION%% \ FRIBIDI_VERSION=0.19.7 \ KVAZAAR_VERSION=2.0.0 \ LAME_VERSION=3.100 \ + LIBARIBB24_VERSION=1.0.3 \ LIBASS_VERSION=0.13.7 \ + LIBBLURAY_VERSION=1.1.2 \ + LIBPNG_VERSION=1.6.9 \ LIBPTHREAD_STUBS_VERSION=0.4 \ + LIBSRT_VERSION=1.4.1 \ LIBVIDSTAB_VERSION=1.1.0 \ - LIBXCB_VERSION=1.13.1 \ - XCBPROTO_VERSION=1.13 \ + LIBVMAF_VERSION=2.1.1 \ + LIBXCB_VERSION=1.15 \ + LIBXML2_VERSION=2.9.12 \ + LIBZMQ_VERSION=4.3.2 \ OGG_VERSION=1.3.2 \ OPENCOREAMR_VERSION=0.1.5 \ - OPUS_VERSION=1.2 \ OPENJPEG_VERSION=2.1.2 \ + OPUS_VERSION=1.2 \ THEORA_VERSION=1.1.1 \ VORBIS_VERSION=1.3.5 \ VPX_VERSION=1.8.0 \ @@ -23,16 +29,10 @@ FFMPEG_VERSION=%%FFMPEG_VERSION%% \ X264_VERSION=20170226-2245-stable \ X265_VERSION=3.4 \ XAU_VERSION=1.0.9 \ + XCBPROTO_VERSION=1.15.1 \ XORG_MACROS_VERSION=1.19.2 \ XPROTO_VERSION=7.0.31 \ XVID_VERSION=1.3.4 \ - LIBXML2_VERSION=2.9.12 \ - LIBBLURAY_VERSION=1.1.2 \ - LIBZMQ_VERSION=4.3.2 \ - LIBSRT_VERSION=1.4.1 \ - LIBARIBB24_VERSION=1.0.3 \ - LIBPNG_VERSION=1.6.9 \ - LIBVMAF_VERSION=2.1.1 \ SRC=/usr/local ARG FREETYPE_SHA256SUM="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac freetype-2.10.4.tar.gz" diff --git a/templates/Dockerfile-run b/templates/Dockerfile-run index fdec77649..3267bcbb6 100644 --- a/templates/Dockerfile-run +++ b/templates/Dockerfile-run @@ -249,17 +249,18 @@ RUN \ 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 ; \ + mkdir -p ${DIR} && \ + cd ${DIR} && \ + curl -sLO https://aomedia.googlesource.com/aom/+archive/${AOM_VERSION}.tar.gz && \ + tar -zx -f ${AOM_VERSION}.tar.gz && \ + mkdir -p ./aom_build && \ + cd ./aom_build && \ + cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 -DENABLE_NASM=on -DENABLE_TESTDATA=off -DENABLE_TESTS=off -DENABLE_TOOLS=off && \ + make && \ + make install && \ rm -rf ${DIR} -## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/ +## xorg-macros (and supporting libraries) for screen capture https://xcb.freedesktop.org/ RUN \ DIR=/tmp/xorg-macros && \ mkdir -p ${DIR} && \ diff --git a/templates/Dockerfile-template.alpine313 b/templates/Dockerfile-template.alpine313 index 2635c114b..00bca6255 100644 --- a/templates/Dockerfile-template.alpine313 +++ b/templates/Dockerfile-template.alpine313 @@ -35,7 +35,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --no-cache --update ${buildDeps} diff --git a/templates/Dockerfile-template.scratch313 b/templates/Dockerfile-template.scratch313 index 733f28e99..69255a973 100644 --- a/templates/Dockerfile-template.scratch313 +++ b/templates/Dockerfile-template.scratch313 @@ -36,7 +36,6 @@ RUN buildDeps="autoconf \ openssl-dev \ python3 \ tar \ - xcb-proto \ yasm \ zlib-dev" && \ apk add --update ${buildDeps} diff --git a/templates/Dockerfile-template.ubuntu2004 b/templates/Dockerfile-template.ubuntu2004 index a1d5ddb9a..8d9248248 100644 --- a/templates/Dockerfile-template.ubuntu2004 +++ b/templates/Dockerfile-template.ubuntu2004 @@ -22,22 +22,21 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ diff --git a/templates/Dockerfile-template.ubuntu1804 b/templates/Dockerfile-template.ubuntu2204 similarity index 97% rename from templates/Dockerfile-template.ubuntu1804 rename to templates/Dockerfile-template.ubuntu2204 index f0a3fdcc5..916df58d6 100644 --- a/templates/Dockerfile-template.ubuntu1804 +++ b/templates/Dockerfile-template.ubuntu2204 @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -20,21 +20,21 @@ ENV %%ENV%% RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ zlib1g-dev" && \ apt-get -yqq update && \ diff --git a/templates/Dockerfile-template.vaapi2004 b/templates/Dockerfile-template.vaapi2004 index b7408b164..939fbb403 100644 --- a/templates/Dockerfile-template.vaapi2004 +++ b/templates/Dockerfile-template.vaapi2004 @@ -22,24 +22,22 @@ ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ - meson \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} diff --git a/templates/Dockerfile-template.vaapi1804 b/templates/Dockerfile-template.vaapi2204 similarity index 96% rename from templates/Dockerfile-template.vaapi1804 rename to templates/Dockerfile-template.vaapi2204 index d29f4bb3e..e77c1cee6 100644 --- a/templates/Dockerfile-template.vaapi1804 +++ b/templates/Dockerfile-template.vaapi2204 @@ -5,7 +5,7 @@ # https://hub.docker.com/r/jrottenberg/ffmpeg/ # # -FROM ubuntu:18.04 AS base +FROM ubuntu:22.04 AS base WORKDIR /tmp/workdir @@ -20,23 +20,22 @@ ENV %%ENV%% RUN buildDeps="autoconf \ automake \ + bzip2 \ cmake \ curl \ - bzip2 \ - libexpat1-dev \ g++ \ gcc \ git \ gperf \ + libexpat1-dev \ + libssl-dev \ libtool \ make \ nasm \ perl \ pkg-config \ - python \ - libssl-dev \ + python3 \ yasm \ - libva-dev \ zlib1g-dev" && \ apt-get -yqq update && \ apt-get install -yq --no-install-recommends ${buildDeps} diff --git a/update.py b/update.py deleted file mode 100755 index 87388bebe..000000000 --- a/update.py +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/env python3 - - -import os -import re -import shutil -from distutils.version import StrictVersion -from urllib import request - -MIN_VERSION = "2.7" -with open("templates/Dockerfile-env", "r") as tmpfile: - ENV_CONTENT = tmpfile.read() -with open("templates/Dockerfile-run", "r") as tmpfile: - RUN_CONTENT = tmpfile.read() -DIR_FORMAT_STR = "docker-images/{0}/{1}" -IMAGE_FORMAT_STR = "{0}/Dockerfile".format(DIR_FORMAT_STR) -TEMPLATE_STR = "templates/Dockerfile-template.{0}" - -# https://ffmpeg.org/olddownload.html -SKIP_VERSIONS = "3.1.11 3.0.12 snapshot" -VARIANTS = [ - {"name": "ubuntu1804", "parent": "ubuntu"}, - {"name": "ubuntu2004", "parent": "ubuntu"}, - {"name": "alpine313", "parent": "alpine"}, - {"name": "centos7", "parent": "centos"}, - {"name": "centos8", "parent": "centos"}, - {"name": "scratch313", "parent": "scratch"}, - {"name": "vaapi1804", "parent": "vaapi"}, - {"name": "vaapi2004", "parent": "vaapi"}, - {"name": "nvidia2004", "parent": "nvidia"}, -] -FFMPEG_RELEASES = "https://ffmpeg.org/releases/" - - -all_parents = sorted(set([sub["parent"] for sub in VARIANTS])) -gitlabci = ["stages:\n - lint\n"] -azure = [] - - -for parent in all_parents: - gitlabci.append(f" - {parent}\n") - - -# Get latest release from ffmpeg.org -with request.urlopen(FFMPEG_RELEASES) as conn: - ffmpeg_releases = conn.read().decode("utf-8") - -parse_re = re.compile(r"ffmpeg-([.0-9]+).tar.bz2.asc\s+") -all_versions = parse_re.findall(ffmpeg_releases) -all_versions.sort(key=StrictVersion, reverse=True) - -version, all_versions = all_versions[0], all_versions[1:] - -SKIP_VARIANTS = { - "3.2": [ - "alpine312", - "centos8", - "nvidia2004", - "scratch312", - "ubuntu1804", - "vaapi1804", - ], - "3.3": ["alpine38", "nvidia1604", "scratch38", "vaapi1804"], - "3.4": ["alpine38", "nvidia1604", "scratch38", "vaapi1804"], - "4.0": ["alpine38", "nvidia1604", "scratch38", "vaapi1804"], - "4.1": ["alpine38", "nvidia1604", "scratch38", "vaapi1804"], - "4.2": ["alpine38", "nvidia1604", "scratch38", "vaapi1804"], -} - -last = version.split(".") -keep_version = [] - -keep_version.append(version) - - -def get_shorten_version(version): - if version == "snapshot": - return version - else: - major, minor, *patch = version.split(".") - return f"{major}.{minor}" - - -def get_major_version(version): - if version == "snapshot": - return version - else: - major, minor, *patch = version.split(".") - return f"{major}" - - -for cur in all_versions: - if cur < MIN_VERSION: - break - - if cur in SKIP_VERSIONS: - break - tmp = cur.split(".") - # Check Minor - if len(tmp) >= 2 and tmp[1].isdigit() and tmp[1] < last[1]: - keep_version.append(cur) - last = tmp - # Check Major - elif len(tmp) > 1 and tmp[0].isdigit() and tmp[0] < last[0]: - keep_version.append(cur) - last = tmp - -print("Preparing docker images for ffmpeg versions: ") - -for version in keep_version: - print(version) - skip_variants = None - for k, v in SKIP_VARIANTS.items(): - if version.startswith(k): - skip_variants = v - compatible_variants = [ - v for v in VARIANTS if skip_variants is None or v["name"] not in skip_variants - ] - short_version = get_shorten_version(version) - major_version = get_major_version(version) - ver_path = os.path.join("docker-images", short_version) - for existing_variant in os.listdir(ver_path): - if existing_variant not in compatible_variants: - shutil.rmtree(DIR_FORMAT_STR.format(short_version, existing_variant)) - - for variant in compatible_variants: - siblings = [ - v["name"] for v in compatible_variants if v["parent"] == variant["parent"] - ] - is_parent = sorted(siblings, reverse=True)[0] == variant["name"] - dockerfile = IMAGE_FORMAT_STR.format(short_version, variant["name"]) - gitlabci.append( - f""" -{version}-{variant['name']}: - extends: .docker - stage: {variant['parent']} - variables: - MAJOR_VERSION: {major_version} - VERSION: "{short_version}" - LONG_VERSION: "{version}" - VARIANT: {variant['name']} - PARENT: "{variant['parent']}" - ISPARENT: "{is_parent}" -""" - ) - - azure.append( - f""" - {variant["name"]}_{version}: - MAJOR_VERSION: {major_version} - VERSION: {short_version} - LONG_VERSION: {version} - VARIANT: {variant["name"]} - PARENT: {variant["parent"]} - ISPARENT: {is_parent} -""" - ) - with open(TEMPLATE_STR.format(variant["name"]), "r") as tmpfile: - template = tmpfile.read() - - FFMPEG_CONFIG_FLAGS = [ - "--disable-debug", - "--disable-doc", - "--disable-ffplay", - "--enable-fontconfig", - "--enable-gpl", - "--enable-libass", - "--enable-libbluray", - "--enable-libfdk_aac", - "--enable-libfreetype", - "--enable-libmp3lame", - "--enable-libopencore-amrnb", - "--enable-libopencore-amrwb", - "--enable-libopus", - "--enable-libtheora", - "--enable-libvidstab", - "--enable-libvorbis", - "--enable-libvpx", - "--enable-libwebp", - "--enable-libx264", - "--enable-libx265", - "--enable-libxcb", - "--enable-libxvid", - "--enable-libzmq", - "--enable-nonfree", - "--enable-openssl", - "--enable-postproc", - "--enable-shared", - "--enable-small", - "--enable-version3", - "--extra-libs=-ldl", - '--prefix="${PREFIX}"', - ] - CFLAGS = [ - "-I${PREFIX}/include", - ] - LDFLAGS = [ - "-L${PREFIX}/lib", - ] - - # OpenJpeg 2.1 is not supported in 2.8 - if version[0:3] != "2.8": - FFMPEG_CONFIG_FLAGS.append("--enable-libopenjpeg") - FFMPEG_CONFIG_FLAGS.append("--enable-libkvazaar") - if version == "snapshot" or int(version[0]) > 3: - FFMPEG_CONFIG_FLAGS.append("--enable-libaom") - FFMPEG_CONFIG_FLAGS.append("--extra-libs=-lpthread") - - # LibSRT is supported from 4.0 - if version == "snapshot" or int(version[0]) >= 4: - FFMPEG_CONFIG_FLAGS.append("--enable-libsrt") - - # LibARIBB24 is supported from 4.2 - if version == "snapshot" or float(version[0:3]) >= 4.2: - FFMPEG_CONFIG_FLAGS.append("--enable-libaribb24") - - if (template.find("meson") > 0) and ( - version == "snapshot" or float(version[0:3]) >= 4.3 - ): - FFMPEG_CONFIG_FLAGS.append("--enable-libvmaf") - - if (version == "snapshot" or int(version[0]) >= 3) and variant[ - "parent" - ] == "vaapi": - FFMPEG_CONFIG_FLAGS.append("--enable-vaapi") - - # libavresample removed on v5, deprecated since v4.0 - # https://github.com/FFmpeg/FFmpeg/commit/c29038f3041a4080342b2e333c1967d136749c0f - if float(version[0]) < 5: - FFMPEG_CONFIG_FLAGS.append("--enable-avresample") - - if variant["parent"] == "nvidia": - CFLAGS.append("-I${PREFIX}/include/ffnvcodec") - CFLAGS.append("-I/usr/local/cuda/include/") - LDFLAGS.append("-L/usr/local/cuda/lib64") - LDFLAGS.append("-L/usr/local/cuda/lib32/") - FFMPEG_CONFIG_FLAGS.append("--enable-nvenc") - if version == "snapshot" or int(version[0]) >= 4: - FFMPEG_CONFIG_FLAGS.append("--enable-cuda") - FFMPEG_CONFIG_FLAGS.append("--enable-cuvid") - FFMPEG_CONFIG_FLAGS.append("--enable-libnpp") - cflags = '--extra-cflags="{0}"'.format(" ".join(CFLAGS)) - ldflags = '--extra-ldflags="{0}"'.format(" ".join(LDFLAGS)) - FFMPEG_CONFIG_FLAGS.append(cflags) - FFMPEG_CONFIG_FLAGS.append(ldflags) - FFMPEG_CONFIG_FLAGS.sort() - - COMBINED_CONFIG_FLAGS = " \\\n ".join(FFMPEG_CONFIG_FLAGS) - - run_content = RUN_CONTENT.replace( - "%%FFMPEG_CONFIG_FLAGS%%", COMBINED_CONFIG_FLAGS - ) - env_content = ENV_CONTENT.replace("%%FFMPEG_VERSION%%", version) - docker_content = template.replace("%%ENV%%", env_content) - docker_content = docker_content.replace("%%RUN%%", run_content) - - 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("docker-images/gitlab-ci.yml", "w") as gitlabcifile: - gitlabcifile.write("".join(gitlabci)) - -with open("templates/azure.template", "r") as tmpfile: - template = tmpfile.read() -azure = template.replace("%%VERSIONS%%", "\n".join(azure)) - - -with open("docker-images/azure-jobs.yml", "w") as azurefile: - azurefile.write(azure)