From ff3b84abdf961409e7ddf9f6af70bbca116baac4 Mon Sep 17 00:00:00 2001 From: Abrar Ahmed <13979201+abrar71@users.noreply.github.com> Date: Sun, 9 Jan 2022 14:55:00 +0500 Subject: [PATCH 001/146] typo indentation typo indentation --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 1839e4c0..68200b24 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -267,7 +267,7 @@ fi echo "Using $MJOBS make jobs simultaneously." if $NONFREE_AND_GPL; then -echo "With GPL and non-free codecs" + echo "With GPL and non-free codecs" fi if [ -n "$LDEXEFLAGS" ]; then From e7c88f5647e87bccfb31c3067f75470c8e9e4327 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 25 Jan 2022 11:59:12 +0100 Subject: [PATCH 002/146] Ffmpeg 5.0 update --- build-ffmpeg | 27 +++++++++++++-------------- cuda-ubuntu.dockerfile | 2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 68200b24..2fcb17da 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,7 +4,7 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=4.4 +FFMPEG_VERSION=5.0 SCRIPT_VERSION=1.33 CWD=$(pwd) PACKAGES="$CWD/packages" @@ -368,12 +368,12 @@ if build "autoconf" "2.71"; then build_done "autoconf" "2.71" fi -if build "automake" "1.16.4"; then - download "https://ftp.gnu.org/gnu/automake/automake-1.16.4.tar.gz" +if build "automake" "1.16.5"; then + download "https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "automake" "1.16.4" + build_done "automake" "1.16.5" fi if build "libtool" "2.4.6"; then @@ -385,8 +385,8 @@ if build "libtool" "2.4.6"; then fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1l"; then - download "https://www.openssl.org/source/openssl-1.1.1l.tar.gz" + if build "openssl" "1.1.1m"; then + download "https://www.openssl.org/source/openssl-1.1.1m.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc @@ -395,17 +395,17 @@ if $NONFREE_AND_GPL; then fi execute make -j $MJOBS execute make install_sw - build_done "openssl" "1.1.1l" + build_done "openssl" "1.1.1m" fi CONFIGURE_OPTIONS+=("--enable-openssl") fi -if build "cmake" "3.22.0"; then - download "https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.0.tar.gz" +if build "cmake" "3.22.1"; then + download "https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.1.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS execute make install - build_done "cmake" "3.22.0" + build_done "cmake" "3.22.1" fi ## @@ -437,17 +437,16 @@ if command_exists "python3"; then fi if ! $MACOS_M1; then - if build "svtav1" "1a3e32b"; then - execute rm -f "${PACKAGES}/SVT-AV1-master.tar.gz" "${PACKAGES}/svtav1-1a3e32b.tar.gz" + if build "svtav1" "0.9.0"; then # Last known working commit which passed CI Tests from HEAD branch - download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/1a3e32b8fdc4abf5c093ee01dfa82803afc75fb4/SVT-AV1-1a3e32b8fdc4abf5c093ee01dfa82803afc75fb4.tar.gz" "svtav1-1a3e32b.tar.gz" + download "https://github.com/AOMediaCodec/SVT-AV1/archive/refs/tags/v0.9.0.tar.gz" "svtav1-0.9.0.tar.gz" cd "${PACKAGES}"/svtav1-1a3e32b/Build/linux || exit execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release execute make -j $MJOBS execute make install execute cp SvtAv1Enc.pc "${WORKSPACE}/lib/pkgconfig/" execute cp SvtAv1Dec.pc "${WORKSPACE}/lib/pkgconfig/" - build_done "svtav1" "1a3e32b"; + build_done "svtav1" "0.9.0"; fi CONFIGURE_OPTIONS+=("--enable-libsvtav1") fi diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index b370fdd6..afc72f35 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -7,7 +7,7 @@ ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video RUN apt-get update \ - && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev python3 python-is-python3 ninja-build meson \ + && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev python3 python-is-python3 ninja-build meson libnppif10 \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ && update-ca-certificates From 33ef403fbeb21d5e13da1fc3611d8b1f101de15c Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 25 Jan 2022 13:53:01 +0100 Subject: [PATCH 003/146] cmake update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 2fcb17da..71a5a1ff 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -401,7 +401,7 @@ if $NONFREE_AND_GPL; then fi if build "cmake" "3.22.1"; then - download "https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.1.tar.gz" + download "https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS execute make install From 899bb30e2d844e1e7dc50b16fcb832326f00f405 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 25 Jan 2022 16:27:09 +0100 Subject: [PATCH 004/146] Path fix --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 71a5a1ff..ba37f468 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -440,7 +440,7 @@ if ! $MACOS_M1; then if build "svtav1" "0.9.0"; then # Last known working commit which passed CI Tests from HEAD branch download "https://github.com/AOMediaCodec/SVT-AV1/archive/refs/tags/v0.9.0.tar.gz" "svtav1-0.9.0.tar.gz" - cd "${PACKAGES}"/svtav1-1a3e32b/Build/linux || exit + cd "${PACKAGES}"/svtav1-0.9.0//Build/linux || exit execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release execute make -j $MJOBS execute make install From a1e4c8c86f7b03c89c7e772a0197a7fc59108884 Mon Sep 17 00:00:00 2001 From: The_Spider Date: Tue, 25 Jan 2022 11:16:05 -0600 Subject: [PATCH 005/146] Adds required libraries --- cuda-centos.dockerfile | 1 + cuda-ubuntu.dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/cuda-centos.dockerfile b/cuda-centos.dockerfile index 9fab5edb..8d7843cb 100644 --- a/cuda-centos.dockerfile +++ b/cuda-centos.dockerfile @@ -33,6 +33,7 @@ COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppc.so.11 /l COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppig.so.11 /lib64/libnppig.so.11 COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppicc.so.11 /lib64/libnppicc.so.11 COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppidei.so.11 /lib64/libnppidei.so.11 +COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppif.so.11 /lib64/libnppif.so.11 # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index afc72f35..abc923f4 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -33,6 +33,7 @@ COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppc.so.11 /l COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppig.so.11 /lib/x86_64-linux-gnu/libnppig.so.11 COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppicc.so.11 /lib/x86_64-linux-gnu/libnppicc.so.11 COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppidei.so.11 /lib/x86_64-linux-gnu/libnppidei.so.11 +COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppif.so.11 /lib/x86_64-linux-gnu/libnppif.so.11 # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg From 8b96c81ed658dd764fb67b68efd6166952c7c5d7 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 25 Jan 2022 19:52:10 +0100 Subject: [PATCH 006/146] cuda update --- cuda-ubuntu.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index afc72f35..b370fdd6 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -7,7 +7,7 @@ ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video RUN apt-get update \ - && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev python3 python-is-python3 ninja-build meson libnppif10 \ + && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev python3 python-is-python3 ninja-build meson \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ && update-ca-certificates From ec1bf477b6c691c5279d8265d550cc2890cc8960 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 25 Jan 2022 19:55:16 +0100 Subject: [PATCH 007/146] giflib update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index ba37f468..0e1d68a7 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -310,7 +310,7 @@ fi ## if build "giflib" "5.2.1"; then - download "https://sourceforge.net/projects/giflib/files/giflib-5.2.1.tar.gz" + download "https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then download "https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/c323/attachment/Makefile.patch" execute patch "${PACKAGES}/giflib-5.2.1/Makefile" ${PACKAGES}/Makefile.patch"" From 9ce1eaf49662d95d542976d30347a7a6418fcf41 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 26 Jan 2022 08:07:21 +0100 Subject: [PATCH 008/146] Script Version 1.34 -> FFmpeg 5.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 0e1d68a7..4011d683 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.0 -SCRIPT_VERSION=1.33 +SCRIPT_VERSION=1.34 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From e5c00832c8dbe10d0a4d2e7018035c374fd2b6d2 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 26 Jan 2022 08:12:32 +0100 Subject: [PATCH 009/146] Debian Version removed from readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5871b4d2..6823b674 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ These sources are out of control by the developers of this script. Also, this sc By downloading and using this script, you are fully aware of this. Use this script at your own risk. I maintain this script in my spare time. Please do not file bug reports for systems -other than Debian 10 and macOS 11.x, because I don't have the resources or time to maintain different systems. +other than Debian and macOS, because I don't have the resources or time to maintain different systems. ## Installation From 00e963cf85f5f2a4106c9ad3373b04d5f00745e2 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 26 Jan 2022 10:15:51 +0100 Subject: [PATCH 010/146] Fixes #122 --- build-ffmpeg | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 4011d683..b0dd6d4c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -313,9 +313,11 @@ if build "giflib" "5.2.1"; then download "https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then download "https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/c323/attachment/Makefile.patch" - execute patch "${PACKAGES}/giflib-5.2.1/Makefile" ${PACKAGES}/Makefile.patch"" + execute patch -p0 --forward "${PACKAGES}/giflib-5.2.1/Makefile" "${PACKAGES}/Makefile.patch" || true fi - execute make -j $MJOBS + cd "${PACKAGES}"/giflib-5.2.1 || exit + #multicore build disabled for this library + execute make execute make PREFIX="${WORKSPACE}" install build_done "giflib" "5.2.1" fi From 735ba7c02b51bc73f0ebc8b6aefd26bd70ba98f9 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 26 Jan 2022 11:10:12 +0100 Subject: [PATCH 011/146] Fixes #115. Unfortunately, I don't have an M1, so i can't test --- build-ffmpeg | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build-ffmpeg b/build-ffmpeg index b0dd6d4c..89050e0e 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -429,9 +429,20 @@ if command_exists "python3"; then if build "dav1d" "0.9.2"; then download "https://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.tar.gz" make_dir build + + CFLAGSBACKUP=$CFLAGS + if $MACOS_M1; then + export CFLAGS="-arch arm64" + fi + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install + + if $MACOS_M1; then + export CFLAGS=$CFLAGSBACKUP + fi + build_done "dav1d" "0.9.2" fi CONFIGURE_OPTIONS+=("--enable-libdav1d") From 470f591269cd31514af40e2ef30db43fbb13d168 Mon Sep 17 00:00:00 2001 From: DanielRobertAppel Date: Mon, 14 Mar 2022 22:16:04 +0000 Subject: [PATCH 012/146] Updating config.guess file. Which allowed me to compile on aarch64 (ARMv8) [linux kernel 4.9 Ubuntu 20.04] --- build-ffmpeg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build-ffmpeg b/build-ffmpeg index 89050e0e..c7fd5cdc 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -743,6 +743,11 @@ if build "libtheora" "1.1.1"; then sed "s/-fforce-addr//g" configure >configure.patched chmod +x configure.patched mv configure.patched configure + ##BEGIN CONFIG.GUESS PATCH -- Updating config.guess file. Which allowed me to compile on aarch64 (ARMv8) [linux kernel 4.9 Ubuntu 20.04] + rm config.guess + wget --quiet -O config.guess - https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess + chmod +x config.guess + ##END OF CONFIG.GUESS PATCH execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --with-vorbis-libraries="${WORKSPACE}"/lib --with-vorbis-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec execute make -j $MJOBS execute make install From a9aa9ccf369e45261c49e45d96496361511b3739 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 30 Mar 2022 07:38:10 +0200 Subject: [PATCH 013/146] zlib V 1.2.12 --- build-ffmpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 89050e0e..3cc5d83b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -346,12 +346,12 @@ if build "nasm" "2.15.05"; then build_done "nasm" "2.15.05" fi -if build "zlib" "1.2.11"; then - download "https://www.zlib.net/zlib-1.2.11.tar.gz" +if build "zlib" "1.2.12"; then + download "https://www.zlib.net/zlib-1.2.12.tar.gz" execute ./configure --static --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "zlib" "1.2.11" + build_done "zlib" "1.2.12" fi if build "m4" "1.4.19"; then From 21c34012e9ddaca3e56da5e88d6fd34702fb18c7 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 31 Mar 2022 15:10:42 +0200 Subject: [PATCH 014/146] Update cuda-centos.dockerfile --- cuda-centos.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuda-centos.dockerfile b/cuda-centos.dockerfile index 8d7843cb..27617651 100644 --- a/cuda-centos.dockerfile +++ b/cuda-centos.dockerfile @@ -1,4 +1,4 @@ -ARG VER=8 +ARG VER=7 FROM nvidia/cuda:11.4.2-devel-centos${VER} AS build From d814db49c859cde22864d9ac61b5b5c1b245d0d4 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:29:25 +0200 Subject: [PATCH 015/146] removed CentOS 8 --- .github/workflows/build.yml | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 179da221..ebb5099f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,30 +103,6 @@ jobs: run: | docker run --rm ffmpeg:cuda-ubuntu -buildconf - build-cuda-centos-docker: - name: build in centos docker with cuda - runs-on: ubuntu-20.04 - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: pull base image - id: cuda_centos_pull - run: | - docker pull nvidia/cuda:11.4.2-devel-centos8 - docker pull centos:8 - - name: run if cuda_centos_pull failed - if: failure() && steps.cuda_centos_pull.outcome == 'failure' - run: | - docker pull nvidia/cuda:11.4.2-devel-centos8 - docker pull centos:8 - - name: build ffmpeg - run: | - docker build -t ffmpeg:cuda-centos -f cuda-centos.dockerfile . - - name: test run ffmepg - run: | - docker run --rm ffmpeg:cuda-centos -buildconf - build-full-static: name: full static build in docker runs-on: ubuntu-20.04 @@ -147,4 +123,4 @@ jobs: docker build -t ffmpeg:cuda-static -f full-static.dockerfile . - name: test run ffmepg run: | - docker run --rm ffmpeg:cuda-static -buildconf \ No newline at end of file + docker run --rm ffmpeg:cuda-static -buildconf From 8d99df00ce80a2849f7f00dc507c8bcf0f0caca6 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:29:36 +0200 Subject: [PATCH 016/146] Delete cuda-centos.dockerfile --- cuda-centos.dockerfile | 49 ------------------------------------------ 1 file changed, 49 deletions(-) delete mode 100644 cuda-centos.dockerfile diff --git a/cuda-centos.dockerfile b/cuda-centos.dockerfile deleted file mode 100644 index 27617651..00000000 --- a/cuda-centos.dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -ARG VER=7 - -FROM nvidia/cuda:11.4.2-devel-centos${VER} AS build - -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video - -RUN yum group install -y "Development Tools" \ - && yum install -y curl libva-devel python3 \ - && yum install -y meson ninja-build --enablerepo=powertools \ - && rm -rf /var/cache/yum/* /var/cache/dnf/* \ - && yum clean all \ - && alternatives --set python /usr/bin/python3 - -WORKDIR /app -COPY ./build-ffmpeg /app/build-ffmpeg - -RUN SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free - - -FROM centos:${VER} - -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video - -# install va-driver -RUN yum install -y libva \ - && rm -rf /var/cache/yum/* \ - && yum clean all - -# Copy libnpp -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppc.so.11 /lib64/libnppc.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppig.so.11 /lib64/libnppig.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppicc.so.11 /lib64/libnppicc.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppidei.so.11 /lib64/libnppidei.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppif.so.11 /lib64/libnppif.so.11 - -# Copy ffmpeg -COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg -COPY --from=build /app/workspace/bin/ffprobe /usr/bin/ffprobe -COPY --from=build /app/workspace/bin/ffplay /usr/bin/ffplay - -# Check shared library -RUN ldd /usr/bin/ffmpeg -RUN ldd /usr/bin/ffprobe -RUN ldd /usr/bin/ffplay - -CMD ["--help"] -ENTRYPOINT ["/usr/bin/ffmpeg"] From 937c7b28e7c9802f6290e5ff14180bc88b105de8 Mon Sep 17 00:00:00 2001 From: barberio Date: Tue, 12 Apr 2022 15:35:05 +0100 Subject: [PATCH 017/146] Pass through CXXFLAGS from parent environment Currently this clobbers any existing CXXFLAGS when configuring x264, this will remove any user specified optimisation or hardening flags. Changing it to prepend to any potential existing CXXFLAG. --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 3cc5d83b..81d33710 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -481,7 +481,7 @@ if $NONFREE_AND_GPL; then cd "${PACKAGES}"/x264-5db6aa6 || exit if [[ "$OSTYPE" == "linux-gnu" ]]; then - execute ./configure --prefix="${WORKSPACE}" --enable-static --enable-pic CXXFLAGS="-fPIC" + execute ./configure --prefix="${WORKSPACE}" --enable-static --enable-pic CXXFLAGS="-fPIC ${CXXFLAGS}" else execute ./configure --prefix="${WORKSPACE}" --enable-static --enable-pic fi From 4d1de44f7ab2d481ed1f6a1c9be763063ba35fdb Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 13 Apr 2022 10:40:14 +0200 Subject: [PATCH 018/146] wget to curl --- build-ffmpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 5d60f364..11d938cc 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -69,7 +69,7 @@ download() { if [ ! -f "$DOWNLOAD_PATH/$DOWNLOAD_FILE" ]; then echo "Downloading $1 as $DOWNLOAD_FILE" - curl -L --silent -o "$DOWNLOAD_PATH/$DOWNLOAD_FILE" "$1" + ^"$DOWNLOAD_PATH/$DOWNLOAD_FILE" "$1" EXITCODE=$? if [ $EXITCODE -ne 0 ]; then @@ -582,7 +582,7 @@ if $NONFREE_AND_GPL; then download "https://github.com/georgmartius/vid.stab/archive/v1.1.0.tar.gz" "vid.stab-1.1.0.tar.gz" if $MACOS_M1; then - curl -s -o "$PACKAGES/vid.stab-1.1.0/fix_cmake_quoting.patch" https://raw.githubusercontent.com/Homebrew/formula-patches/5bf1a0e0cfe666ee410305cece9c9c755641bfdf/libvidstab/fix_cmake_quoting.patch + curl -L --silent -o "$PACKAGES/vid.stab-1.1.0/fix_cmake_quoting.patch" "https://raw.githubusercontent.com/Homebrew/formula-patches/5bf1a0e0cfe666ee410305cece9c9c755641bfdf/libvidstab/fix_cmake_quoting.patch" patch -p1 Date: Thu, 14 Apr 2022 03:31:53 -0400 Subject: [PATCH 019/146] updated packages, added python3 to waf, fixed typo --- build-ffmpeg | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 3cc5d83b..e533676d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -391,7 +391,7 @@ if $NONFREE_AND_GPL; then download "https://www.openssl.org/source/openssl-1.1.1m.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf - execute ./configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc + execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc else execute ./config --prefix="${WORKSPACE}" --openssldir="${WORKSPACE}" --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib no-shared zlib fi @@ -402,12 +402,12 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-openssl") fi -if build "cmake" "3.22.1"; then - download "https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz" +if build "cmake" "3.23.1"; then + download "https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS execute make install - build_done "cmake" "3.22.1" + build_done "cmake" "3.23.1" fi ## @@ -632,9 +632,9 @@ if command_exists "python3"; then if build "lv2" "1.18.2"; then download "https://lv2plug.in/spec/lv2-1.18.2.tar.bz2" "lv2-1.18.2.tar.bz2" - execute ./waf configure --prefix="${WORKSPACE}" --lv2-user - execute ./waf - execute ./waf install + execute python3 ./waf configure --prefix="${WORKSPACE}" --lv2-user + execute python3 ./waf + execute python3 ./waf install build_done "lv2" "1.18.2" fi @@ -645,9 +645,9 @@ if command_exists "python3"; then if build "serd" "0.30.10"; then download "https://gitlab.com/drobilla/serd/-/archive/v0.30.10/serd-v0.30.10.tar.gz" "serd-v0.30.10.tar.gz" execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/serd-v0.30.10/waflib/" - execute ./waf configure --prefix="${WORKSPACE}" --static --no-shared --no-posix - execute ./waf - execute ./waf install + execute python3 ./waf configure --prefix="${WORKSPACE}" --static --no-shared --no-posix + execute python3 ./waf + execute python3 ./waf install build_done "serd" "0.30.10" fi if build "pcre" "8.45"; then @@ -661,27 +661,27 @@ if command_exists "python3"; then if build "sord" "0.16.8"; then download "https://gitlab.com/drobilla/sord/-/archive/v0.16.8/sord-v0.16.8.tar.gz" "sord-v0.16.8.tar.gz" execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/sord-v0.16.8/waflib/" - execute ./waf configure --prefix="${WORKSPACE}" CFLAGS="${CFLAGS}" --static --no-shared --no-utils - execute ./waf CFLAGS="${CFLAGS}" - execute ./waf install + execute python3 ./waf configure --prefix="${WORKSPACE}" CFLAGS="${CFLAGS}" --static --no-shared --no-utils + execute python3 ./waf CFLAGS="${CFLAGS}" + execute python3 ./waf install build_done "sord" "0.16.8" fi if build "sratom" "0.6.8"; then download "https://gitlab.com/lv2/sratom/-/archive/v0.6.8/sratom-v0.6.8.tar.gz" "sratom-v0.6.8.tar.gz" execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/sratom-v0.6.8/waflib/" - execute ./waf configure --prefix="${WORKSPACE}" --static --no-shared - execute ./waf - execute ./waf install + execute python3 ./waf configure --prefix="${WORKSPACE}" --static --no-shared + execute python3 ./waf + execute python3 ./waf install build_done "sratom" "0.6.8" fi if build "lilv" "0.24.12"; then download "https://gitlab.com/lv2/lilv/-/archive/v0.24.12/lilv-v0.24.12.tar.gz" "lilv-v0.24.12.tar.gz" execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/lilv-v0.24.12/waflib/" - execute ./waf configure --prefix="${WORKSPACE}" --static --no-shared --no-utils - execute ./waf - execute ./waf install + execute python3 ./waf configure --prefix="${WORKSPACE}" --static --no-shared --no-utils + execute python3 ./waf + execute python3 ./waf install build_done "lilv" "0.24.12" fi CFLAGS+=" -I$WORKSPACE/include/lilv-0" @@ -805,13 +805,13 @@ fi ## other library ## -if build "libsdl" "2.0.14"; then - download "https://www.libsdl.org/release/SDL2-2.0.14.tar.gz" +if build "libsdl" "2.0.20"; then + download "https://www.libsdl.org/release/SDL2-2.0.20.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libsdl" "2.0.14" + build_done "libsdl" "2.0.20" fi if $NONFREE_AND_GPL; then From b160d256ec147d92eca5342d0b51e36714f4fa51 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 18 Apr 2022 09:38:42 +0200 Subject: [PATCH 020/146] Version string update to 1.35 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 4194c0fc..8964b06d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.0 -SCRIPT_VERSION=1.34 +SCRIPT_VERSION=1.35 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 322ef8fa36ff8dbc6a734172fdadd7b5af064efe Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 18 Apr 2022 09:39:57 +0200 Subject: [PATCH 021/146] Version string update to 1.36 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 8964b06d..793b36f1 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.0 -SCRIPT_VERSION=1.35 +SCRIPT_VERSION=1.36 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From c27872f63d0b31d698a204e764d4bd0395005163 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 18 Apr 2022 22:46:23 +0200 Subject: [PATCH 022/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 793b36f1..b7e2f7fe 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -69,7 +69,7 @@ download() { if [ ! -f "$DOWNLOAD_PATH/$DOWNLOAD_FILE" ]; then echo "Downloading $1 as $DOWNLOAD_FILE" - ^"$DOWNLOAD_PATH/$DOWNLOAD_FILE" "$1" + curl -L --silent -o "$DOWNLOAD_PATH/$DOWNLOAD_FILE" "$1" EXITCODE=$? if [ $EXITCODE -ne 0 ]; then From 4318402ffc57c0090add993540efea44417646e3 Mon Sep 17 00:00:00 2001 From: Maximiliano Lira Del Canto <8040628+mliradelc@users.noreply.github.com> Date: Thu, 14 Apr 2022 16:47:52 +0200 Subject: [PATCH 023/146] Add Rocky linux 8 support --- .github/workflows/build.yml | 24 +++++++++++++ README.md | 3 +- cuda-rocky.dockerfile | 72 +++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 cuda-rocky.dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ebb5099f..02277fb6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,6 +103,30 @@ jobs: run: | docker run --rm ffmpeg:cuda-ubuntu -buildconf + build-cuda-rocky-docker: + name: build in Rockylinux docker with cuda + runs-on: rockylinux-8 + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: pull base image + id: cuda_centos_pull + run: | + docker pull nvidia/cuda:11.6.0-devel-centos8 + docker pull rockylinux:8 + - name: run if cuda_centos_pull failed + if: failure() && steps.cuda_centos_pull.outcome == 'failure' + run: | + docker pull nvidia/cuda:11.6.0-devel-centos8 + docker pull rockylinux:8 + - name: build ffmpeg + run: | + docker build -t ffmpeg:cuda-rocky -f cuda-rocky.dockerfile . + - name: test run ffmepg + run: | + docker run --rm ffmpeg:cuda-rocky -buildconf + build-full-static: name: full static build in docker runs-on: ubuntu-20.04 diff --git a/README.md b/README.md index 6823b674..d783b414 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ with https://github.com/markus-perl/ffmpeg-build-script/actions to make sure eve ### Linux * Debian >= Buster, Ubuntu => Focal Fossa, other Distributions might work too +* Rocky Linux 8 * A development environment and curl is required ```bash @@ -151,7 +152,7 @@ These builds are always built with the --enable-gpl-and-non-free switch, as CUDA ```bash export DOCKER_BUILDKIT=1 -## Set the DIST (`ubuntu` or `centos`) and VER (ubuntu: `16.04` , `18.04`, `20.04` or centos: `7`, `8`) environment variables to select the preferred Docker base image. +## Set the DIST (`ubuntu` or `rocky`) and VER (ubuntu: `16.04` , `18.04`, `20.04` or rocky: `8`) environment variables to select the preferred Docker base image. $ export DIST=centos $ export VER=8 diff --git a/cuda-rocky.dockerfile b/cuda-rocky.dockerfile new file mode 100644 index 00000000..3dc2b262 --- /dev/null +++ b/cuda-rocky.dockerfile @@ -0,0 +1,72 @@ +ARG VER=8 + +FROM nvidia/cuda:11.6.0-devel-centos${VER} AS build + +ENV NVIDIA_VISIBLE_DEVICES all +ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video + + +# Fix EOL Mirror issue +RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* +# Pick one of these mirrors that works. vault.centos.org was giving me timeout issues +# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-* +# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://linuxsoft.cern.ch/centos-vault/|g' /etc/yum.repos.d/CentOS-Linux-* +# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://archive.kernel.org/centos-vault/|g' /etc/yum.repos.d/CentOS-Linux-* +RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirror.nsc.liu.se/centos-store|g' /etc/yum.repos.d/CentOS-Linux-* + +# upgrade to Rocky Linux 8 +RUN dnf install -y ncurses \ + && dnf clean all \ + && rm -rf /var/cache/dnf \ + && rm -rf /var/cache/yum \ + && dnf install -y dnf-plugins-core \ + && dnf -y update + +WORKDIR /opt/conversion_to_rocky +RUN curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh && \ + chmod +x migrate2rocky.sh && \ + bash migrate2rocky.sh -r + + +RUN yum group install -y "Development Tools" \ + && yum install -y curl libva-devel python3 \ + && yum install -y meson ninja-build --enablerepo=powertools \ + && rm -rf /var/cache/yum/* /var/cache/dnf/* \ + && yum clean all \ + && alternatives --set python /usr/bin/python3 + +WORKDIR /app +COPY ./build-ffmpeg /app/build-ffmpeg + +RUN SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free + + +FROM rockylinux:${VER} + +ENV NVIDIA_VISIBLE_DEVICES all +ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video + +# install va-driver +RUN yum install -y libva \ + && rm -rf /var/cache/yum/* \ + && yum clean all + +# Copy libnpp +COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppc.so.11 /lib64/libnppc.so.11 +COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppig.so.11 /lib64/libnppig.so.11 +COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppicc.so.11 /lib64/libnppicc.so.11 +COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppidei.so.11 /lib64/libnppidei.so.11 +COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppif.so.11 /lib64/libnppif.so.11 + +# Copy ffmpeg +COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg +COPY --from=build /app/workspace/bin/ffprobe /usr/bin/ffprobe +COPY --from=build /app/workspace/bin/ffplay /usr/bin/ffplay + +# Check shared library +RUN ldd /usr/bin/ffmpeg +RUN ldd /usr/bin/ffprobe +RUN ldd /usr/bin/ffplay + +CMD ["--help"] +ENTRYPOINT ["/usr/bin/ffmpeg"] \ No newline at end of file From de3053dfe342d210138bb6b14c314ae2c25480c3 Mon Sep 17 00:00:00 2001 From: Maximiliano Lira Del Canto <8040628+mliradelc@users.noreply.github.com> Date: Tue, 19 Apr 2022 10:41:09 +0200 Subject: [PATCH 024/146] GH actions runs-on rockylinux change --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 02277fb6..177efb20 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -105,7 +105,7 @@ jobs: build-cuda-rocky-docker: name: build in Rockylinux docker with cuda - runs-on: rockylinux-8 + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 From d7f9078bd9d20a21356fa4eef88da9e8527c3721 Mon Sep 17 00:00:00 2001 From: Jonathan Herman Date: Mon, 13 Jun 2022 15:07:14 -0400 Subject: [PATCH 025/146] Add GnuTLS support for LGPL builds --- build-ffmpeg | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/build-ffmpeg b/build-ffmpeg index b7e2f7fe..c85f0b5e 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -400,6 +400,31 @@ if $NONFREE_AND_GPL; then build_done "openssl" "1.1.1m" fi CONFIGURE_OPTIONS+=("--enable-openssl") +else + if build "gmp" "6.2.1"; then + download "https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static + execute make -j $MJOBS + execute make install + build_done "gmp" "6.2.1" + fi + + if build "nettle" "3.8"; then + download "https://ftp.gnu.org/gnu/nettle/nettle-3.8.tar.gz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-openssl --disable-documentation --libdir="${WORKSPACE}"/lib CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" + execute make -j $MJOBS + execute make install + build_done "nettle" "3.8" + fi + + if build "gnutls" "3.6.16"; then + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.16.tar.xz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" + execute make -j $MJOBS + execute make install + build_done "gnutls" "3.6.16" + fi + CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi if build "cmake" "3.23.1"; then From f9161e8714677013369b226eeef2c0e8021ea2f4 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Sun, 10 Jul 2022 11:02:09 +0200 Subject: [PATCH 026/146] Package updates --- build-ffmpeg | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index b7e2f7fe..1d31b06e 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,8 +4,8 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=5.0 -SCRIPT_VERSION=1.36 +FFMPEG_VERSION=5.0.1 +SCRIPT_VERSION=1.37 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" @@ -387,8 +387,8 @@ if build "libtool" "2.4.6"; then fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1m"; then - download "https://www.openssl.org/source/openssl-1.1.1m.tar.gz" + if build "openssl" "1.1.1q"; then + download "https://www.openssl.org/source/openssl-1.1.1q.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc @@ -397,7 +397,7 @@ if $NONFREE_AND_GPL; then fi execute make -j $MJOBS execute make install_sw - build_done "openssl" "1.1.1m" + build_done "openssl" "1.1.1q" fi CONFIGURE_OPTIONS+=("--enable-openssl") fi @@ -427,7 +427,7 @@ if command_exists "python3"; then fi if command_exists "meson"; then if build "dav1d" "0.9.2"; then - download "https://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.tar.gz" + download "https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.0.0.tar.gz" make_dir build CFLAGSBACKUP=$CFLAGS @@ -548,7 +548,7 @@ if build "libvpx" "1.10.0"; then sed "s/-Wl,--no-undefined -Wl,-soname/-Wl,-undefined,error -Wl,-install_name/g" build/make/Makefile.patched >build/make/Makefile fi - execute ./configure --prefix="${WORKSPACE}" --disable-unit-tests --disable-shared --as=yasm --enable-vp9-highbitdepth + execute ./configure --prefix="${WORKSPACE}" --disable-unit-tests --disable-shared --disable-examples --as=yasm --enable-vp9-highbitdepth execute make -j $MJOBS execute make install @@ -601,9 +601,9 @@ if build "av1" "ae2be80"; then make_dir "$PACKAGES"/aom_build cd "$PACKAGES"/aom_build || exit if $MACOS_M1; then - execute cmake -DENABLE_TESTS=0 -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCONFIG_RUNTIME_CPU_DETECT=0 "$PACKAGES"/av1 + execute cmake -DENABLE_TESTS=0 -DENABLE_EXAMPLES=0 -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCONFIG_RUNTIME_CPU_DETECT=0 "$PACKAGES"/av1 else - execute cmake -DENABLE_TESTS=0 -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib "$PACKAGES"/av1 + execute cmake -DENABLE_TESTS=0 -DENABLE_EXAMPLES=0 -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib "$PACKAGES"/av1 fi execute make -j $MJOBS execute make install From 8a0022eb6b279ddabbaf63d4e26fec3f9d345c95 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Sun, 10 Jul 2022 11:13:14 +0200 Subject: [PATCH 027/146] Package updates --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 1d31b06e..dee0732f 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,7 +4,7 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=5.0.1 +FFMPEG_VERSION=5.0 SCRIPT_VERSION=1.37 CWD=$(pwd) PACKAGES="$CWD/packages" From def2057c07e8c8dc8186580ac2d9b080a4c91c40 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Sun, 10 Jul 2022 12:51:25 +0200 Subject: [PATCH 028/146] openssl downgrade due to building failures --- build-ffmpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index dee0732f..f78b7c27 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -387,8 +387,8 @@ if build "libtool" "2.4.6"; then fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1q"; then - download "https://www.openssl.org/source/openssl-1.1.1q.tar.gz" + if build "openssl" "1.1.1p"; then + download "https://www.openssl.org/source/openssl-1.1.1p.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc @@ -397,7 +397,7 @@ if $NONFREE_AND_GPL; then fi execute make -j $MJOBS execute make install_sw - build_done "openssl" "1.1.1q" + build_done "openssl" "1.1.1p" fi CONFIGURE_OPTIONS+=("--enable-openssl") fi From 680b398c86e2e20bbd801b80033c713ef37752f1 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Sun, 10 Jul 2022 17:52:20 +0200 Subject: [PATCH 029/146] Cuda Rocky fix --- cuda-rocky.dockerfile | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/cuda-rocky.dockerfile b/cuda-rocky.dockerfile index 3dc2b262..99b60e9e 100644 --- a/cuda-rocky.dockerfile +++ b/cuda-rocky.dockerfile @@ -1,33 +1,10 @@ ARG VER=8 -FROM nvidia/cuda:11.6.0-devel-centos${VER} AS build +FROM nvidia/cuda:11.7.0-devel-rockylinux${VER} AS build ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video - -# Fix EOL Mirror issue -RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* -# Pick one of these mirrors that works. vault.centos.org was giving me timeout issues -# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-* -# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://linuxsoft.cern.ch/centos-vault/|g' /etc/yum.repos.d/CentOS-Linux-* -# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://archive.kernel.org/centos-vault/|g' /etc/yum.repos.d/CentOS-Linux-* -RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirror.nsc.liu.se/centos-store|g' /etc/yum.repos.d/CentOS-Linux-* - -# upgrade to Rocky Linux 8 -RUN dnf install -y ncurses \ - && dnf clean all \ - && rm -rf /var/cache/dnf \ - && rm -rf /var/cache/yum \ - && dnf install -y dnf-plugins-core \ - && dnf -y update - -WORKDIR /opt/conversion_to_rocky -RUN curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh && \ - chmod +x migrate2rocky.sh && \ - bash migrate2rocky.sh -r - - RUN yum group install -y "Development Tools" \ && yum install -y curl libva-devel python3 \ && yum install -y meson ninja-build --enablerepo=powertools \ @@ -52,11 +29,11 @@ RUN yum install -y libva \ && yum clean all # Copy libnpp -COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppc.so.11 /lib64/libnppc.so.11 -COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppig.so.11 /lib64/libnppig.so.11 -COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppicc.so.11 /lib64/libnppicc.so.11 -COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppidei.so.11 /lib64/libnppidei.so.11 -COPY --from=build /usr/local/cuda-11.6/targets/x86_64-linux/lib/libnppif.so.11 /lib64/libnppif.so.11 +COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppc.so.11 /lib64/libnppc.so.11 +COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppig.so.11 /lib64/libnppig.so.11 +COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppicc.so.11 /lib64/libnppicc.so.11 +COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppidei.so.11 /lib64/libnppidei.so.11 +COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppif.so.11 /lib64/libnppif.so.11 # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg From 33ec9b686a0dcf9995209c43f637b8ae4c466a4a Mon Sep 17 00:00:00 2001 From: Mathieu Ledru Date: Wed, 3 Aug 2022 15:23:32 +0200 Subject: [PATCH 030/146] Update build-ffmpeg SVT-AV1 repository moved from Github to Gitlab --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 326145f5..5ca02428 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -477,7 +477,7 @@ fi if ! $MACOS_M1; then if build "svtav1" "0.9.0"; then # Last known working commit which passed CI Tests from HEAD branch - download "https://github.com/AOMediaCodec/SVT-AV1/archive/refs/tags/v0.9.0.tar.gz" "svtav1-0.9.0.tar.gz" + download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v0.9.0/SVT-AV1-v0.9.0.tar.gz" "svtav1-0.9.0.tar.gz" cd "${PACKAGES}"/svtav1-0.9.0//Build/linux || exit execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release execute make -j $MJOBS From 15ef520106f0abe8c1c4814fd44d401fb3f3f87b Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 4 Aug 2022 10:54:18 +0200 Subject: [PATCH 031/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 5ca02428..fddfaded 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.0 -SCRIPT_VERSION=1.37 +SCRIPT_VERSION=1.38 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From d98a8d67b24e158bddfb31420f332f84707675a8 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 17 Aug 2022 23:10:14 +0200 Subject: [PATCH 032/146] Bump ffmpeg version 5.1 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index fddfaded..3a50fe57 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,7 +4,7 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=5.0 +FFMPEG_VERSION=5.1 SCRIPT_VERSION=1.38 CWD=$(pwd) PACKAGES="$CWD/packages" From c71379c9d69a6195ec94e265b08aa21f23ebd4db Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 18 Aug 2022 08:36:33 +0200 Subject: [PATCH 033/146] ffmpeg 5.1 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 3a50fe57..1849083b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.1 -SCRIPT_VERSION=1.38 +SCRIPT_VERSION=1.39 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 87479d967bd26ca33f10ee198e8d752a522878ff Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 12 Sep 2022 08:26:24 +0200 Subject: [PATCH 034/146] Mac M1 build fix --- build-ffmpeg | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 1849083b..8b9dea04 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -768,11 +768,15 @@ if build "libtheora" "1.1.1"; then sed "s/-fforce-addr//g" configure >configure.patched chmod +x configure.patched mv configure.patched configure - ##BEGIN CONFIG.GUESS PATCH -- Updating config.guess file. Which allowed me to compile on aarch64 (ARMv8) [linux kernel 4.9 Ubuntu 20.04] - rm config.guess - curl -L --silent -o "config.guess" "https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess" - chmod +x config.guess - ##END OF CONFIG.GUESS PATCH + + if ! $MACOS_M1; then + ##BEGIN CONFIG.GUESS PATCH -- Updating config.guess file. Which allowed me to compile on aarch64 (ARMv8) [linux kernel 4.9 Ubuntu 20.04] + rm config.guess + curl -L --silent -o "config.guess" "https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess" + chmod +x config.guess + ##END OF CONFIG.GUESS PATCH + fi + execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --with-vorbis-libraries="${WORKSPACE}"/lib --with-vorbis-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec execute make -j $MJOBS execute make install From 88d49833e1c86d44fdec7f2731ea48988c3d2995 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 12 Sep 2022 10:50:25 +0200 Subject: [PATCH 035/146] Bump Version to 1.40 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 8b9dea04..a012d008 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.1 -SCRIPT_VERSION=1.39 +SCRIPT_VERSION=1.40 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From a90a23322915a3ffc8bbe0916e31750c09529d3d Mon Sep 17 00:00:00 2001 From: scgreenhalgh Date: Fri, 14 Oct 2022 16:49:25 +0800 Subject: [PATCH 036/146] changed version and link of Zlib to 1.2.13 --- build-ffmpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index a012d008..9e630963 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -346,12 +346,12 @@ if build "nasm" "2.15.05"; then build_done "nasm" "2.15.05" fi -if build "zlib" "1.2.12"; then - download "https://www.zlib.net/zlib-1.2.12.tar.gz" +if build "zlib" "1.2.13"; then + download "https://www.zlib.net/zlib-1.2.13.tar.gz" execute ./configure --static --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "zlib" "1.2.12" + build_done "zlib" "1.2.13" fi if build "m4" "1.4.19"; then From 2a1b537aceebf6597804d4127c23b1df836ef510 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 19 Oct 2022 16:53:31 +0200 Subject: [PATCH 037/146] Bump Script Version To 1.41 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 9e630963..a93c7e55 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.1 -SCRIPT_VERSION=1.40 +SCRIPT_VERSION=1.41 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 2f934b11495a42473bbf0791b9f94e9f2556ce43 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 31 Oct 2022 08:56:39 +0100 Subject: [PATCH 038/146] Zlib Download Link Update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index a93c7e55..e4089c18 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -347,7 +347,7 @@ if build "nasm" "2.15.05"; then fi if build "zlib" "1.2.13"; then - download "https://www.zlib.net/zlib-1.2.13.tar.gz" + download "https://zlib.net/fossils/zlib-1.2.13.tar.gz" execute ./configure --static --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install From aea1ed7d00d1c98c73741c5f547058ac5cb7de68 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 10:11:17 +0100 Subject: [PATCH 039/146] update --- build-ffmpeg | 76 +++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index e4089c18..b8d8c35b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -417,6 +417,7 @@ else build_done "nettle" "3.8" fi +if ! $MACOS_M1; then if build "gnutls" "3.6.16"; then download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.16.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" @@ -426,6 +427,7 @@ else fi CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi +fi if build "cmake" "3.23.1"; then download "https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gz" @@ -448,6 +450,7 @@ if command_exists "python3"; then if ! command_exists ${r}; then execute pip3 install ${r} --quiet --upgrade --no-cache-dir --disable-pip-version-check fi + export PATH=$PATH:~/Library/Python/3.9/bin done fi if command_exists "meson"; then @@ -655,65 +658,60 @@ CONFIGURE_OPTIONS+=("--enable-libzimg") if command_exists "python3"; then - if build "lv2" "1.18.2"; then - download "https://lv2plug.in/spec/lv2-1.18.2.tar.bz2" "lv2-1.18.2.tar.bz2" - execute python3 ./waf configure --prefix="${WORKSPACE}" --lv2-user - execute python3 ./waf - execute python3 ./waf install + if command_exists "meson"; then - build_done "lv2" "1.18.2" + if build "lv2" "1.18.10"; then + download "https://lv2plug.in/spec/lv2-1.18.10.tar.xz" "lv2-1.18.10.tar.xz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "lv2" "1.18.10" fi if build "waflib" "b600c92"; then download "https://gitlab.com/drobilla/autowaf/-/archive/b600c928b221a001faeab7bd92786d0b25714bc8/autowaf-b600c928b221a001faeab7bd92786d0b25714bc8.tar.gz" "autowaf.tar.gz" build_done "waflib" "b600c92" fi - if build "serd" "0.30.10"; then - download "https://gitlab.com/drobilla/serd/-/archive/v0.30.10/serd-v0.30.10.tar.gz" "serd-v0.30.10.tar.gz" - execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/serd-v0.30.10/waflib/" - execute python3 ./waf configure --prefix="${WORKSPACE}" --static --no-shared --no-posix - execute python3 ./waf - execute python3 ./waf install - build_done "serd" "0.30.10" + if build "serd" "0.30.16"; then + download "https://gitlab.com/drobilla/serd/-/archive/v0.30.16/serd-v0.30.16.tar.gz" "serd-v0.30.16.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "serd" "0.30.16" fi if build "pcre" "8.45"; then download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz" "pcre-8.45.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "pcre" "8.45" fi - if build "sord" "0.16.8"; then - download "https://gitlab.com/drobilla/sord/-/archive/v0.16.8/sord-v0.16.8.tar.gz" "sord-v0.16.8.tar.gz" - execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/sord-v0.16.8/waflib/" - execute python3 ./waf configure --prefix="${WORKSPACE}" CFLAGS="${CFLAGS}" --static --no-shared --no-utils - execute python3 ./waf CFLAGS="${CFLAGS}" - execute python3 ./waf install - - build_done "sord" "0.16.8" - fi - if build "sratom" "0.6.8"; then - download "https://gitlab.com/lv2/sratom/-/archive/v0.6.8/sratom-v0.6.8.tar.gz" "sratom-v0.6.8.tar.gz" - execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/sratom-v0.6.8/waflib/" - execute python3 ./waf configure --prefix="${WORKSPACE}" --static --no-shared - execute python3 ./waf - execute python3 ./waf install - - build_done "sratom" "0.6.8" - fi - if build "lilv" "0.24.12"; then - download "https://gitlab.com/lv2/lilv/-/archive/v0.24.12/lilv-v0.24.12.tar.gz" "lilv-v0.24.12.tar.gz" - execute cp -r "${PACKAGES}"/autowaf/* "${PACKAGES}/lilv-v0.24.12/waflib/" - execute python3 ./waf configure --prefix="${WORKSPACE}" --static --no-shared --no-utils - execute python3 ./waf - execute python3 ./waf install - build_done "lilv" "0.24.12" + if build "sord" "0.16.14"; then + download "https://gitlab.com/drobilla/sord/-/archive/v0.16.14/sord-v0.16.14.tar.gz" "sord-v0.16.14.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "sord" "0.16.14" + fi + if build "sratom" "0.6.14"; then + download "https://gitlab.com/lv2/sratom/-/archive/v0.6.14/sratom-v0.6.14.tar.gz" "sratom-v0.6.14.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "sratom" "0.6.14" + fi + if build "lilv" "0.24.20"; then + download "https://gitlab.com/lv2/lilv/-/archive/v0.24.20/lilv-v0.24.20.tar.gz" "lilv-v0.24.20.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "lilv" "0.24.20" fi CFLAGS+=" -I$WORKSPACE/include/lilv-0" CONFIGURE_OPTIONS+=("--enable-lv2") fi +fi if build "opencore" "0.1.5"; then download "https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.5.tar.gz/download?use_mirror=gigenet" "opencore-amr-0.1.5.tar.gz" From 3f61d36fa2e5335518069643c672e01278c53782 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 12:41:26 +0100 Subject: [PATCH 040/146] ubuntu update --- .github/workflows/build.yml | 24 ++++++++++++------------ Dockerfile | 4 ++-- build-ffmpeg | 4 ++-- full-static.dockerfile | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 177efb20..060d342b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ on: jobs: build-linux: name: build in native linux - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.10 steps: - name: Checkout code uses: actions/checkout@v2 @@ -59,7 +59,7 @@ jobs: build-docker: name: build in docker - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.10 steps: - name: Checkout code uses: actions/checkout@v2 @@ -67,11 +67,11 @@ jobs: - name: pull base image id: ubuntu_pull run: | - docker pull ubuntu:20.04 + docker pull ubuntu:22.10 - name: run if ubuntu_pull failed if: failure() && steps.ubuntu_pull.outcome == 'failure' run: | - docker pull ubuntu:20.04 + docker pull ubuntu:22.10 - name: build ffmpeg run: | docker build -t ffmpeg:ubuntu -f Dockerfile . @@ -81,7 +81,7 @@ jobs: build-cuda-ubuntu-docker: name: build in ubuntu docker with cuda - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.10 steps: - name: Checkout code uses: actions/checkout@v2 @@ -89,13 +89,13 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu20.04 - docker pull ubuntu:20.04 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 + docker pull ubuntu:22.10 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu20.04 - docker pull ubuntu:20.04 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 + docker pull ubuntu:22.10 - name: build ffmpeg run: | docker build -t ffmpeg:cuda-ubuntu -f cuda-ubuntu.dockerfile . @@ -129,7 +129,7 @@ jobs: build-full-static: name: full static build in docker - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.10 steps: - name: Checkout code uses: actions/checkout@v2 @@ -137,11 +137,11 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu20.04 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu20.04 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 - name: build ffmpeg run: | docker build -t ffmpeg:cuda-static -f full-static.dockerfile . diff --git a/Dockerfile b/Dockerfile index 96c67b6c..854e3926 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.04 AS build +FROM ubuntu:22.10 AS build ENV DEBIAN_FRONTEND noninteractive @@ -13,7 +13,7 @@ COPY ./build-ffmpeg /app/build-ffmpeg RUN SKIPINSTALL=yes /app/build-ffmpeg --build -FROM ubuntu:20.04 +FROM ubuntu:22.10 ENV DEBIAN_FRONTEND noninteractive diff --git a/build-ffmpeg b/build-ffmpeg index b8d8c35b..782a4e1b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -417,7 +417,7 @@ else build_done "nettle" "3.8" fi -if ! $MACOS_M1; then +if ! $ARCH == 'arm64'; then if build "gnutls" "3.6.16"; then download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.16.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" @@ -425,7 +425,7 @@ if ! $MACOS_M1; then execute make install build_done "gnutls" "3.6.16" fi - CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") + # CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi fi diff --git a/full-static.dockerfile b/full-static.dockerfile index 7f334e3c..98ce7650 100644 --- a/full-static.dockerfile +++ b/full-static.dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.04 AS build +FROM ubuntu:22.10 AS build ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all From 81886b95b130b2c089a993cc5c5fd40f644ba21c Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 19:27:37 +0100 Subject: [PATCH 041/146] Github Workflow update --- .github/workflows/build.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 060d342b..98f99811 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ on: jobs: build-linux: name: build in native linux - runs-on: ubuntu-22.10 + runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v2 @@ -59,7 +59,7 @@ jobs: build-docker: name: build in docker - runs-on: ubuntu-22.10 + runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v2 @@ -67,11 +67,11 @@ jobs: - name: pull base image id: ubuntu_pull run: | - docker pull ubuntu:22.10 + docker pull ubuntu:22.04 - name: run if ubuntu_pull failed if: failure() && steps.ubuntu_pull.outcome == 'failure' run: | - docker pull ubuntu:22.10 + docker pull ubuntu:22.04 - name: build ffmpeg run: | docker build -t ffmpeg:ubuntu -f Dockerfile . @@ -81,7 +81,7 @@ jobs: build-cuda-ubuntu-docker: name: build in ubuntu docker with cuda - runs-on: ubuntu-22.10 + runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v2 @@ -89,13 +89,13 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 - docker pull ubuntu:22.10 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 + docker pull ubuntu:22.04 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 - docker pull ubuntu:22.10 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 + docker pull ubuntu:22.04 - name: build ffmpeg run: | docker build -t ffmpeg:cuda-ubuntu -f cuda-ubuntu.dockerfile . @@ -129,7 +129,7 @@ jobs: build-full-static: name: full static build in docker - runs-on: ubuntu-22.10 + runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v2 @@ -137,11 +137,11 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.10 + docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 - name: build ffmpeg run: | docker build -t ffmpeg:cuda-static -f full-static.dockerfile . From bb9ad6ee7518db54f21b56f1e12915bae3457bd2 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 19:30:42 +0100 Subject: [PATCH 042/146] ubuntu update --- .github/workflows/build.yml | 4 ++-- cuda-ubuntu.dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 98f99811..736404e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -89,12 +89,12 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 + docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 docker pull ubuntu:22.04 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 + docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 docker pull ubuntu:22.04 - name: build ffmpeg run: | diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index 0f6f0d90..08888c77 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -1,6 +1,6 @@ -ARG VER=20.04 +ARG VER=22.04 -FROM nvidia/cuda:11.4.2-devel-ubuntu${VER} AS build +FROM nvidia/cuda:11.8.0-devel-ubuntu${VER} AS build ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all From 623470ef6a48bc6dd731288edb1dc81d71967305 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 19:38:26 +0100 Subject: [PATCH 043/146] if fix --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 782a4e1b..03666fb1 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -417,7 +417,7 @@ else build_done "nettle" "3.8" fi -if ! $ARCH == 'arm64'; then +if [[ ! $ARCH == 'arm64' ]]; then if build "gnutls" "3.6.16"; then download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.16.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" From 8aff9b901f532c8ff61e6136605b14f57e728816 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 19:48:41 +0100 Subject: [PATCH 044/146] Workflow update --- .github/workflows/build.yml | 4 ++-- full-static.dockerfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 736404e3..8ac9e03c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,11 +137,11 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 + docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.4.2-devel-ubuntu22.04 + docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 - name: build ffmpeg run: | docker build -t ffmpeg:cuda-static -f full-static.dockerfile . diff --git a/full-static.dockerfile b/full-static.dockerfile index 98ce7650..6c075927 100644 --- a/full-static.dockerfile +++ b/full-static.dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.10 AS build +FROM ubuntu:22.04 AS build ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all From 85c3a84eedee979f9944b4517a658ad33f885224 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 30 Nov 2022 20:24:25 +0100 Subject: [PATCH 045/146] cuda update --- cuda-ubuntu.dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index 08888c77..d14f4127 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -29,11 +29,11 @@ RUN apt-get update \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Copy libnpp -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppc.so.11 /lib/x86_64-linux-gnu/libnppc.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppig.so.11 /lib/x86_64-linux-gnu/libnppig.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppicc.so.11 /lib/x86_64-linux-gnu/libnppicc.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppidei.so.11 /lib/x86_64-linux-gnu/libnppidei.so.11 -COPY --from=build /usr/local/cuda-11.4/targets/x86_64-linux/lib/libnppif.so.11 /lib/x86_64-linux-gnu/libnppif.so.11 +COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppc.so.11 /lib/x86_64-linux-gnu/libnppc.so.11 +COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppig.so.11 /lib/x86_64-linux-gnu/libnppig.so.11 +COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppicc.so.11 /lib/x86_64-linux-gnu/libnppicc.so.11 +COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppidei.so.11 /lib/x86_64-linux-gnu/libnppidei.so.11 +COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppif.so.11 /lib/x86_64-linux-gnu/libnppif.so.11 # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg From 9b2def95f8e82eebdfe5456bb841b6c601d4fde8 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 30 Nov 2022 21:46:32 +0100 Subject: [PATCH 046/146] Bump Version to 1.42 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 03666fb1..5735d225 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.1 -SCRIPT_VERSION=1.41 +SCRIPT_VERSION=1.42 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 08666c2ab8e36ccf59494d8b659822a81804c176 Mon Sep 17 00:00:00 2001 From: Sanjeevan Yogeswaran Date: Sun, 18 Dec 2022 13:37:13 -0600 Subject: [PATCH 047/146] Updated libsvtav1 version to 1.4.1 from 0.9.0 --- build-ffmpeg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 5735d225..efdfd29a 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -478,16 +478,16 @@ if command_exists "python3"; then fi if ! $MACOS_M1; then - if build "svtav1" "0.9.0"; then + if build "svtav1" "1.4.1"; then # Last known working commit which passed CI Tests from HEAD branch - download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v0.9.0/SVT-AV1-v0.9.0.tar.gz" "svtav1-0.9.0.tar.gz" - cd "${PACKAGES}"/svtav1-0.9.0//Build/linux || exit + download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v1.4.1/SVT-AV1-v1.4.1.tar.gz" "svtav1-1.4.1.tar.gz" + cd "${PACKAGES}"/svtav1-1.4.1//Build/linux || exit execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release execute make -j $MJOBS execute make install execute cp SvtAv1Enc.pc "${WORKSPACE}/lib/pkgconfig/" execute cp SvtAv1Dec.pc "${WORKSPACE}/lib/pkgconfig/" - build_done "svtav1" "0.9.0"; + build_done "svtav1" "1.4.1"; fi CONFIGURE_OPTIONS+=("--enable-libsvtav1") fi From f6abc111f30aa4d7e112efe1e506adb7ba1b2bd3 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 2 Jan 2023 08:32:21 +0100 Subject: [PATCH 048/146] Update build-ffmpeg - Nettle - OpenSSL - Nasm - Libtool Upgrade --- build-ffmpeg | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index efdfd29a..406a4a86 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -338,12 +338,12 @@ if build "yasm" "1.3.0"; then build_done "yasm" "1.3.0" fi -if build "nasm" "2.15.05"; then - download "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz" +if build "nasm" "2.16.01"; then + download "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.16.01.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "nasm" "2.15.05" + build_done "nasm" "2.16.01" fi if build "zlib" "1.2.13"; then @@ -378,17 +378,17 @@ if build "automake" "1.16.5"; then build_done "automake" "1.16.5" fi -if build "libtool" "2.4.6"; then - download "https://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz" +if build "libtool" "2.4.7"; then + download "https://ftpmirror.gnu.org/libtool/libtool-2.4.7.tar.gz" execute ./configure --prefix="${WORKSPACE}" --enable-static --disable-shared execute make -j $MJOBS execute make install - build_done "libtool" "2.4.6" + build_done "libtool" "2.4.7" fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1p"; then - download "https://www.openssl.org/source/openssl-1.1.1p.tar.gz" + if build "openssl" "1.1.1s"; then + download "https://www.openssl.org/source/openssl-1.1.1s.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc @@ -397,7 +397,7 @@ if $NONFREE_AND_GPL; then fi execute make -j $MJOBS execute make install_sw - build_done "openssl" "1.1.1p" + build_done "openssl" "1.1.1s" fi CONFIGURE_OPTIONS+=("--enable-openssl") else @@ -409,12 +409,12 @@ else build_done "gmp" "6.2.1" fi - if build "nettle" "3.8"; then - download "https://ftp.gnu.org/gnu/nettle/nettle-3.8.tar.gz" + if build "nettle" "3.8.1"; then + download "https://ftp.gnu.org/gnu/nettle/nettle-3.8.1.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-openssl --disable-documentation --libdir="${WORKSPACE}"/lib CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install - build_done "nettle" "3.8" + build_done "nettle" "3.8.1" fi if [[ ! $ARCH == 'arm64' ]]; then From 1741d898d495cc1c33b5aab3c405ac8e52a66f08 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 2 Jan 2023 09:42:16 +0100 Subject: [PATCH 049/146] Update build-ffmpeg Nasm Update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 406a4a86..26ea51ba 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -339,7 +339,7 @@ if build "yasm" "1.3.0"; then fi if build "nasm" "2.16.01"; then - download "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.16.01.tar.xz" + download "https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install From baca7095420891338594daa205871dc0c6c21000 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 2 Jan 2023 11:14:08 +0100 Subject: [PATCH 050/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 26ea51ba..197da6c3 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -494,7 +494,7 @@ fi if command_exists "cargo"; then if build "rav1e" "0.5.0-beta"; then - execute cargo install cargo-c + execute cargo install --version "0.9.14+cargo-0.66" cargo-c download "https://github.com/xiph/rav1e/archive/refs/tags/v0.5.0-beta.tar.gz" execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release build_done "rav1e" "0.5.0-beta" From 71b531987d8a2d5b2832b9d74f1bf9d562369203 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 2 Jan 2023 15:25:09 +0100 Subject: [PATCH 051/146] Update build-ffmpeg - rav1e update - dav1d update - cmake update - gnutls update --- build-ffmpeg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 197da6c3..b9111bbe 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -418,23 +418,23 @@ else fi if [[ ! $ARCH == 'arm64' ]]; then - if build "gnutls" "3.6.16"; then - download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.16.tar.xz" + if build "gnutls" "3.7.8"; then + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.7.8.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install - build_done "gnutls" "3.6.16" + build_done "gnutls" "3.7.8" fi # CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi fi -if build "cmake" "3.23.1"; then - download "https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gz" +if build "cmake" "3.25.1"; then + download "https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS execute make install - build_done "cmake" "3.23.1" + build_done "cmake" "3.25.1" fi ## @@ -454,7 +454,7 @@ if command_exists "python3"; then done fi if command_exists "meson"; then - if build "dav1d" "0.9.2"; then + if build "dav1d" "1.0.0"; then download "https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.0.0.tar.gz" make_dir build @@ -471,7 +471,7 @@ if command_exists "python3"; then export CFLAGS=$CFLAGSBACKUP fi - build_done "dav1d" "0.9.2" + build_done "dav1d" "1.0.0" fi CONFIGURE_OPTIONS+=("--enable-libdav1d") fi @@ -493,11 +493,11 @@ if ! $MACOS_M1; then fi if command_exists "cargo"; then - if build "rav1e" "0.5.0-beta"; then + if build "rav1e" "0.6.2"; then execute cargo install --version "0.9.14+cargo-0.66" cargo-c - download "https://github.com/xiph/rav1e/archive/refs/tags/v0.5.0-beta.tar.gz" + download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.2.tar.gz" execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release - build_done "rav1e" "0.5.0-beta" + build_done "rav1e" "0.6.2" fi CONFIGURE_OPTIONS+=("--enable-librav1e") fi From 7ca03f4781f230d34b65de4024f8fd96c4979172 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 2 Jan 2023 16:12:23 +0100 Subject: [PATCH 052/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index b9111bbe..72ba09ec 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -419,7 +419,7 @@ else if [[ ! $ARCH == 'arm64' ]]; then if build "gnutls" "3.7.8"; then - download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.7.8.tar.xz" + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.8.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install From 617e73baebba8f47a990fe725c265e11495330d9 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 2 Jan 2023 17:38:26 +0100 Subject: [PATCH 053/146] Update build-ffmpeg - x264 update - libvpx update - av1 update --- build-ffmpeg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 72ba09ec..a87dd600 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -504,9 +504,9 @@ fi if $NONFREE_AND_GPL; then - if build "x264" "5db6aa6"; then - download "https://code.videolan.org/videolan/x264/-/archive/5db6aa6cab1b146e07b60cc1736a01f21da01154/x264-5db6aa6cab1b146e07b60cc1736a01f21da01154.tar.gz" "x264-5db6aa6.tar.gz" - cd "${PACKAGES}"/x264-5db6aa6 || exit + if build "x264" "941cae6d"; then + download "https://code.videolan.org/videolan/x264/-/archive/941cae6d1d6d6344c9a1d27440eaf2872b18ca9a/x264-941cae6d1d6d6344c9a1d27440eaf2872b18ca9a.tar.gz" "x264-941cae6d.tar.gz" + cd "${PACKAGES}"/x264-941cae6d || exit if [[ "$OSTYPE" == "linux-gnu" ]]; then execute ./configure --prefix="${WORKSPACE}" --enable-static --enable-pic CXXFLAGS="-fPIC ${CXXFLAGS}" @@ -518,7 +518,7 @@ if $NONFREE_AND_GPL; then execute make install execute make install-lib-static - build_done "x264" "5db6aa6" + build_done "x264" "941cae6d" fi CONFIGURE_OPTIONS+=("--enable-libx264") fi @@ -567,8 +567,8 @@ EOF CONFIGURE_OPTIONS+=("--enable-libx265") fi -if build "libvpx" "1.10.0"; then - download "https://github.com/webmproject/libvpx/archive/refs/tags/v1.10.0.tar.gz" "libvpx-1.10.0.tar.gz" +if build "libvpx" "1.12.0"; then + download "https://github.com/webmproject/libvpx/archive/refs/tags/v1.12.0.tar.gz" "libvpx-1.12.0.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then echo "Applying Darwin patch" @@ -580,7 +580,7 @@ if build "libvpx" "1.10.0"; then execute make -j $MJOBS execute make install - build_done "libvpx" "1.10.0" + build_done "libvpx" "1.12.0" fi CONFIGURE_OPTIONS+=("--enable-libvpx") @@ -623,9 +623,9 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-libvidstab") fi -if build "av1" "ae2be80"; then - # libaom ae2be80 == v3.1.2 - download "https://aomedia.googlesource.com/aom/+archive/ae2be8030200925895fa6e98bd274ffdb595cbf6.tar.gz" "av1.tar.gz" "av1" +if build "av1" "bcfe6fb"; then + # libaom bcfe6fb == v3.5.0 + download "https://aomedia.googlesource.com/aom/+archive/bcfe6fbfed315f83ee8a95465c654ee8078dbff9.tar.gz" "av1.tar.gz" "av1" make_dir "$PACKAGES"/aom_build cd "$PACKAGES"/aom_build || exit if $MACOS_M1; then @@ -636,7 +636,7 @@ if build "av1" "ae2be80"; then execute make -j $MJOBS execute make install - build_done "av1" "ae2be80" + build_done "av1" "bcfe6fb" fi CONFIGURE_OPTIONS+=("--enable-libaom") From 132a021feb98df0f42e8d80eb39722dc352ac54f Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 3 Jan 2023 07:56:30 +0100 Subject: [PATCH 054/146] Update build-ffmpeg - zimg update - opencore update - libogg update - libvorbis update - libtiff update --- build-ffmpeg | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index a87dd600..02a8050f 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -640,15 +640,15 @@ if build "av1" "bcfe6fb"; then fi CONFIGURE_OPTIONS+=("--enable-libaom") -if build "zimg" "3.0.3"; then - download "https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.3.tar.gz" "zimg-3.0.3.tar.gz" "zimg" - cd zimg-release-3.0.3 || exit +if build "zimg" "3.0.4"; then + download "https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.4.tar.gz" "zimg-3.0.4.tar.gz" "zimg" + cd zimg-release-3.0.4 || exit execute "${WORKSPACE}/bin/libtoolize" -i -f -q execute ./autogen.sh --prefix="${WORKSPACE}" execute ./configure --prefix="${WORKSPACE}" --enable-static --disable-shared execute make -j $MJOBS execute make install - build_done "zimg" "3.0.3" + build_done "zimg" "3.0.4" fi CONFIGURE_OPTIONS+=("--enable-libzimg") @@ -713,13 +713,13 @@ if command_exists "python3"; then fi fi -if build "opencore" "0.1.5"; then - download "https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.5.tar.gz/download?use_mirror=gigenet" "opencore-amr-0.1.5.tar.gz" +if build "opencore" "0.1.6"; then + download "https://netactuate.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz" "opencore-amr-0.1.6.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "opencore" "0.1.5" + build_done "opencore" "0.1.6" fi CONFIGURE_OPTIONS+=("--enable-libopencore_amrnb" "--enable-libopencore_amrwb") @@ -743,21 +743,21 @@ if build "opus" "1.3.1"; then fi CONFIGURE_OPTIONS+=("--enable-libopus") -if build "libogg" "1.3.3"; then - download "https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.3.tar.gz" +if build "libogg" "1.3.5"; then + download "https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.5.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libogg" "1.3.3" + build_done "libogg" "1.3.5" fi -if build "libvorbis" "1.3.6"; then - download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.6.tar.gz" +if build "libvorbis" "1.3.7"; then + download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.7.tar.gz" execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest execute make -j $MJOBS execute make install - build_done "libvorbis" "1.3.6" + build_done "libvorbis" "1.3.7" fi CONFIGURE_OPTIONS+=("--enable-libvorbis") @@ -799,12 +799,12 @@ fi ## image library ## -if build "libtiff" "4.2.0"; then - download "https://download.osgeo.org/libtiff/tiff-4.2.0.tar.gz" +if build "libtiff" "4.5.0"; then + download "https://download.osgeo.org/libtiff/tiff-4.5.0.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-lzma --disable-webp --disable-zstd --without-x execute make -j $MJOBS execute make install - build_done "libtiff" "4.2.0" + build_done "libtiff" "4.5.0" fi if build "libpng" "1.6.37"; then download "https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.gz/download?use_mirror=gigenet" "libpng-1.6.37.tar.gz" From 589a94d97042c882169617722250ab1ec681c4c0 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 4 Jan 2023 08:45:20 +0100 Subject: [PATCH 055/146] Update build-ffmpeg - libpng update - libwebp update - libsdl update - srt update - amf update --- build-ffmpeg | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 02a8050f..93f58123 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -806,22 +806,22 @@ if build "libtiff" "4.5.0"; then execute make install build_done "libtiff" "4.5.0" fi -if build "libpng" "1.6.37"; then - download "https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.gz/download?use_mirror=gigenet" "libpng-1.6.37.tar.gz" +if build "libpng" "1.6.39"; then + download "https://gigenet.dl.sourceforge.net/project/libpng/libpng16/1.6.39/libpng-1.6.39.tar.gz" "libpng-1.6.39.tar.gz" export LDFLAGS="${LDFLAGS}" export CPPFLAGS="${CFLAGS}" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libpng" "1.6.37" + build_done "libpng" "1.6.39" fi ## does not compile on monterey -> _PrintGifError if [[ "$OSTYPE" != "darwin"* ]]; then - if build "libwebp" "1.2.1"; then + if build "libwebp" "1.2.2"; then # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS CPPFLAGS= - download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.1.tar.gz" "libwebp-1.2.1.tar.gz" + download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.2.tar.gz" "libwebp-1.2.2.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib make_dir build cd build || exit @@ -829,7 +829,7 @@ if [[ "$OSTYPE" != "darwin"* ]]; then execute make -j $MJOBS execute make install - build_done "libwebp" "1.2.1" + build_done "libwebp" "1.2.2" fi CONFIGURE_OPTIONS+=("--enable-libwebp") fi @@ -837,18 +837,18 @@ fi ## other library ## -if build "libsdl" "2.0.20"; then - download "https://www.libsdl.org/release/SDL2-2.0.20.tar.gz" +if build "libsdl" "2.26.1"; then + download "https://www.libsdl.org/release/SDL2-2.26.1.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libsdl" "2.0.20" + build_done "libsdl" "2.26.1" fi if $NONFREE_AND_GPL; then - if build "srt" "1.4.3"; then - download "https://github.com/Haivision/srt/archive/v1.4.3.tar.gz" "srt-1.4.3.tar.gz" + if build "srt" "1.5.1"; then + download "https://github.com/Haivision/srt/archive/v1.5.1.tar.gz" "srt-1.5.1.tar.gz" export OPENSSL_ROOT_DIR="${WORKSPACE}" export OPENSSL_LIB_DIR="${WORKSPACE}"/lib export OPENSSL_INCLUDE_DIR="${WORKSPACE}"/include/ @@ -859,7 +859,7 @@ if $NONFREE_AND_GPL; then sed -i.backup 's/-lgcc_s/-lgcc_eh/g' "${WORKSPACE}"/lib/pkgconfig/srt.pc # The -i.backup is intended and required on MacOS: https://stackoverflow.com/questions/5694228/sed-in-place-flag-that-works-both-on-mac-bsd-and-linux fi - build_done "srt" "1.4.3" + build_done "srt" "1.5.1" fi CONFIGURE_OPTIONS+=("--enable-libsrt") fi @@ -899,12 +899,12 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi fi - if build "amf" "1.4.21.0"; then - download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v.1.4.21.tar.gz" "AMF-1.4.21.tar.gz" "AMF-1.4.21" + if build "amf" "1.4.28"; then + download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.28.tar.gz' 'AMF-1.4.28.tar.gz' 'AMF-1.4.28' execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" execute cp -r "${PACKAGES}"/AMF-1.4.21/AMF-v.1.4.21/amf/public/include/* "${WORKSPACE}/include/AMF/" - build_done "amf" "1.4.21.0" + build_done "amf" "1.4.28" fi CONFIGURE_OPTIONS+=("--enable-amf") fi From 1c4f569ed91f23a2e49c04a39d067e53cf998d56 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 4 Jan 2023 09:56:24 +0100 Subject: [PATCH 056/146] Update build-ffmpeg - amf update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 93f58123..50f44d63 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -903,7 +903,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.28.tar.gz' 'AMF-1.4.28.tar.gz' 'AMF-1.4.28' execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-1.4.21/AMF-v.1.4.21/amf/public/include/* "${WORKSPACE}/include/AMF/" + execute cp -r "${PACKAGES}"/AMF-1.4.28/AMF-v.1.4.28/amf/public/include/* "${WORKSPACE}/include/AMF/" build_done "amf" "1.4.28" fi CONFIGURE_OPTIONS+=("--enable-amf") From 4f4b572f726405eadad5a9baf616c480c69de7e6 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 4 Jan 2023 10:57:41 +0100 Subject: [PATCH 057/146] Update build-ffmpeg - amf update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 50f44d63..516379bc 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -903,7 +903,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.28.tar.gz' 'AMF-1.4.28.tar.gz' 'AMF-1.4.28' execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-1.4.28/AMF-v.1.4.28/amf/public/include/* "${WORKSPACE}/include/AMF/" + execute cp -r "${PACKAGES}"/AMF-1.4.28/AMF-1.4.28/amf/public/include/* "${WORKSPACE}/include/AMF/" build_done "amf" "1.4.28" fi CONFIGURE_OPTIONS+=("--enable-amf") From 03283485d384f58c6d0b1e0a0063b9013d072dae Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 4 Jan 2023 15:22:43 +0100 Subject: [PATCH 058/146] Bump version to 1.43 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 516379bc..c9f8ba13 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=5.1 -SCRIPT_VERSION=1.42 +SCRIPT_VERSION=1.43 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From c82c5e63bdb9793904dace876478bf36a7df7b0f Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 1 Mar 2023 09:01:06 +0100 Subject: [PATCH 059/146] FFMpeg 6.0 --- build-ffmpeg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index c9f8ba13..8135638a 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,7 +4,7 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=5.1 +FFMPEG_VERSION=6.0 SCRIPT_VERSION=1.43 CWD=$(pwd) PACKAGES="$CWD/packages" @@ -454,8 +454,8 @@ if command_exists "python3"; then done fi if command_exists "meson"; then - if build "dav1d" "1.0.0"; then - download "https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.0.0.tar.gz" + if build "dav1d" "1.1.0"; then + download "https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.1.0.tar.gz" make_dir build CFLAGSBACKUP=$CFLAGS @@ -471,7 +471,7 @@ if command_exists "python3"; then export CFLAGS=$CFLAGSBACKUP fi - build_done "dav1d" "1.0.0" + build_done "dav1d" "1.1.0" fi CONFIGURE_OPTIONS+=("--enable-libdav1d") fi @@ -567,8 +567,8 @@ EOF CONFIGURE_OPTIONS+=("--enable-libx265") fi -if build "libvpx" "1.12.0"; then - download "https://github.com/webmproject/libvpx/archive/refs/tags/v1.12.0.tar.gz" "libvpx-1.12.0.tar.gz" +if build "libvpx" "1.13.0"; then + download "https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.0.tar.gz" "libvpx-1.13.0.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then echo "Applying Darwin patch" @@ -580,7 +580,7 @@ if build "libvpx" "1.12.0"; then execute make -j $MJOBS execute make install - build_done "libvpx" "1.12.0" + build_done "libvpx" "1.13.0" fi CONFIGURE_OPTIONS+=("--enable-libvpx") From 0b42a533f6a30169dd665f102b5bcca0b159fb0f Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 1 Mar 2023 10:29:49 +0100 Subject: [PATCH 060/146] Update build-ffmpeg --- build-ffmpeg | 1 + 1 file changed, 1 insertion(+) diff --git a/build-ffmpeg b/build-ffmpeg index 8135638a..60e95fde 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -929,6 +929,7 @@ download "https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/$FFMPEG_VE --enable-static \ --enable-small \ --enable-version3 \ + --disable-ffnvcodec \ --extra-cflags="${CFLAGS}" \ --extra-ldexeflags="${LDEXEFLAGS}" \ --extra-ldflags="${LDFLAGS}" \ From 8186488048a53c6f86a098809675de13d668c4a8 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 1 Mar 2023 11:10:58 +0100 Subject: [PATCH 061/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 60e95fde..facab7af 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -878,7 +878,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi CFLAGS+=" -I/usr/local/cuda/include" LDFLAGS+=" -L/usr/local/cuda/lib64" - CONFIGURE_OPTIONS+=("--enable-cuda-nvcc" "--enable-cuvid" "--enable-nvenc" "--enable-cuda-llvm") + CONFIGURE_OPTIONS+=("--enable-cuda-nvcc" "--enable-nvenc" "--enable-cuda-llvm") if [ -z "$LDEXEFLAGS" ]; then CONFIGURE_OPTIONS+=("--enable-libnpp") # Only libnpp cannot be statically linked. From eb72497ae76411b501622c36101def4443d97711 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 1 Mar 2023 17:03:20 +0100 Subject: [PATCH 062/146] Update build-ffmpeg --- build-ffmpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index facab7af..619f382d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -870,11 +870,11 @@ fi if [[ "$OSTYPE" == "linux-gnu" ]]; then if command_exists "nvcc"; then - if build "nv-codec" "11.1.5.0"; then - download "https://github.com/FFmpeg/nv-codec-headers/releases/download/n11.1.5.0/nv-codec-headers-11.1.5.0.tar.gz" + if build "nv-codec" "11.1.5.2"; then + download "https://github.com/FFmpeg/nv-codec-headers/releases/download/n11.1.5.2/nv-codec-headers-11.1.5.2.tar.gz" execute make PREFIX="${WORKSPACE}" execute make install PREFIX="${WORKSPACE}" - build_done "nv-codec" "11.1.5.0" + build_done "nv-codec" "11.1.5.2" fi CFLAGS+=" -I/usr/local/cuda/include" LDFLAGS+=" -L/usr/local/cuda/lib64" From 9aee19cfc5da611dcd63d24e6d8b2a8cceee1393 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 1 Mar 2023 17:49:41 +0100 Subject: [PATCH 063/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 619f382d..69c36752 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -873,7 +873,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then if build "nv-codec" "11.1.5.2"; then download "https://github.com/FFmpeg/nv-codec-headers/releases/download/n11.1.5.2/nv-codec-headers-11.1.5.2.tar.gz" execute make PREFIX="${WORKSPACE}" - execute make install PREFIX="${WORKSPACE}" + execute make PREFIX="${WORKSPACE}/usr" install build_done "nv-codec" "11.1.5.2" fi CFLAGS+=" -I/usr/local/cuda/include" From eb1d23329f84941aad71881a6056f6219fa44898 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 20:11:17 +0100 Subject: [PATCH 064/146] Cuda fixes --- .github/workflows/build.yml | 24 ------------------ .gitignore | 1 + README.md | 7 +----- build-ffmpeg | 2 +- cuda-rocky.dockerfile | 49 ------------------------------------- cuda-ubuntu.dockerfile | 17 ++++++++++--- 6 files changed, 16 insertions(+), 84 deletions(-) delete mode 100644 cuda-rocky.dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ac9e03c..8cd080da 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,30 +103,6 @@ jobs: run: | docker run --rm ffmpeg:cuda-ubuntu -buildconf - build-cuda-rocky-docker: - name: build in Rockylinux docker with cuda - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: pull base image - id: cuda_centos_pull - run: | - docker pull nvidia/cuda:11.6.0-devel-centos8 - docker pull rockylinux:8 - - name: run if cuda_centos_pull failed - if: failure() && steps.cuda_centos_pull.outcome == 'failure' - run: | - docker pull nvidia/cuda:11.6.0-devel-centos8 - docker pull rockylinux:8 - - name: build ffmpeg - run: | - docker build -t ffmpeg:cuda-rocky -f cuda-rocky.dockerfile . - - name: test run ffmepg - run: | - docker run --rm ffmpeg:cuda-rocky -buildconf - build-full-static: name: full static build in docker runs-on: ubuntu-22.04 diff --git a/.gitignore b/.gitignore index 4725dcff..06485f58 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ workspace .idea linux .artifacts +build diff --git a/README.md b/README.md index d783b414..4213c7ee 100644 --- a/README.md +++ b/README.md @@ -150,14 +150,9 @@ $ docker build --tag=ffmpeg:default --output type=local,dest=build -f Dockerfile ##### CUDA These builds are always built with the --enable-gpl-and-non-free switch, as CUDA is non-free. See https://ffmpeg.org/legal.html ```bash -export DOCKER_BUILDKIT=1 - -## Set the DIST (`ubuntu` or `rocky`) and VER (ubuntu: `16.04` , `18.04`, `20.04` or rocky: `8`) environment variables to select the preferred Docker base image. -$ export DIST=centos -$ export VER=8 ## Start the build -$ docker build --tag=ffmpeg:cuda-$DIST -f cuda-$DIST.dockerfile --build-arg VER=$VER . +$ docker build --tag=ffmpeg:cuda-$DIST -f cuda-ubunu.dockerfile --build-arg . ``` Build an `export.dockerfile` that copies only what you need from the image you just built as follows. When running, diff --git a/build-ffmpeg b/build-ffmpeg index 69c36752..da7a886b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -878,7 +878,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi CFLAGS+=" -I/usr/local/cuda/include" LDFLAGS+=" -L/usr/local/cuda/lib64" - CONFIGURE_OPTIONS+=("--enable-cuda-nvcc" "--enable-nvenc" "--enable-cuda-llvm") + CONFIGURE_OPTIONS+=("--enable-cuda-nvcc" "--enable-cuvid" "--enable-nvenc" "--enable-cuda-llvm") if [ -z "$LDEXEFLAGS" ]; then CONFIGURE_OPTIONS+=("--enable-libnpp") # Only libnpp cannot be statically linked. diff --git a/cuda-rocky.dockerfile b/cuda-rocky.dockerfile deleted file mode 100644 index 99b60e9e..00000000 --- a/cuda-rocky.dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -ARG VER=8 - -FROM nvidia/cuda:11.7.0-devel-rockylinux${VER} AS build - -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video - -RUN yum group install -y "Development Tools" \ - && yum install -y curl libva-devel python3 \ - && yum install -y meson ninja-build --enablerepo=powertools \ - && rm -rf /var/cache/yum/* /var/cache/dnf/* \ - && yum clean all \ - && alternatives --set python /usr/bin/python3 - -WORKDIR /app -COPY ./build-ffmpeg /app/build-ffmpeg - -RUN SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free - - -FROM rockylinux:${VER} - -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video - -# install va-driver -RUN yum install -y libva \ - && rm -rf /var/cache/yum/* \ - && yum clean all - -# Copy libnpp -COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppc.so.11 /lib64/libnppc.so.11 -COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppig.so.11 /lib64/libnppig.so.11 -COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppicc.so.11 /lib64/libnppicc.so.11 -COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppidei.so.11 /lib64/libnppidei.so.11 -COPY --from=build /usr/local/cuda-11.7/targets/x86_64-linux/lib/libnppif.so.11 /lib64/libnppif.so.11 - -# Copy ffmpeg -COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg -COPY --from=build /app/workspace/bin/ffprobe /usr/bin/ffprobe -COPY --from=build /app/workspace/bin/ffplay /usr/bin/ffplay - -# Check shared library -RUN ldd /usr/bin/ffmpeg -RUN ldd /usr/bin/ffprobe -RUN ldd /usr/bin/ffplay - -CMD ["--help"] -ENTRYPOINT ["/usr/bin/ffmpeg"] \ No newline at end of file diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index d14f4127..ccd24f44 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -1,15 +1,24 @@ ARG VER=22.04 -FROM nvidia/cuda:11.8.0-devel-ubuntu${VER} AS build +FROM ubuntu:${VER} AS build + +ARG CUDAVER=11.8.0-1 ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video RUN apt-get update \ - && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev python3 python-is-python3 ninja-build meson \ - && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ - && update-ca-certificates + && apt-get -y --no-install-recommends install wget ca-certificates \ + && update-ca-certificates \ + && wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb \ + && dpkg -i cuda-keyring_1.0-1_all.deb \ + && apt-get update + +RUN apt-get -y --no-install-recommends install build-essential curl libva-dev python3 python-is-python3 ninja-build meson \ + cuda="${CUDAVER}" \ + && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + WORKDIR /app COPY ./build-ffmpeg /app/build-ffmpeg From 866e843b95ed3bac4b5cd018655e2bdb75059d00 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 20:23:02 +0100 Subject: [PATCH 065/146] multiple libraries updated --- build-ffmpeg | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index da7a886b..f33df984 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -387,8 +387,8 @@ if build "libtool" "2.4.7"; then fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1s"; then - download "https://www.openssl.org/source/openssl-1.1.1s.tar.gz" + if build "openssl" "1.1.1t"; then + download "https://www.openssl.org/source/openssl-1.1.1t.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc @@ -397,7 +397,7 @@ if $NONFREE_AND_GPL; then fi execute make -j $MJOBS execute make install_sw - build_done "openssl" "1.1.1s" + build_done "openssl" "1.1.1t" fi CONFIGURE_OPTIONS+=("--enable-openssl") else @@ -418,12 +418,12 @@ else fi if [[ ! $ARCH == 'arm64' ]]; then - if build "gnutls" "3.7.8"; then - download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.8.tar.xz" + if build "gnutls" "3.7.9"; then + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.9.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install - build_done "gnutls" "3.7.8" + build_done "gnutls" "3.7.9" fi # CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi @@ -493,11 +493,11 @@ if ! $MACOS_M1; then fi if command_exists "cargo"; then - if build "rav1e" "0.6.2"; then + if build "rav1e" "0.6.3"; then execute cargo install --version "0.9.14+cargo-0.66" cargo-c - download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.2.tar.gz" + download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.3.tar.gz" execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release - build_done "rav1e" "0.6.2" + build_done "rav1e" "0.6.3" fi CONFIGURE_OPTIONS+=("--enable-librav1e") fi @@ -818,10 +818,10 @@ fi ## does not compile on monterey -> _PrintGifError if [[ "$OSTYPE" != "darwin"* ]]; then - if build "libwebp" "1.2.2"; then + if build "libwebp" "1.3.0"; then # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS CPPFLAGS= - download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.2.tar.gz" "libwebp-1.2.2.tar.gz" + download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.3.0.tar.gz" "libwebp-1.3.0.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib make_dir build cd build || exit @@ -829,7 +829,7 @@ if [[ "$OSTYPE" != "darwin"* ]]; then execute make -j $MJOBS execute make install - build_done "libwebp" "1.2.2" + build_done "libwebp" "1.3.0" fi CONFIGURE_OPTIONS+=("--enable-libwebp") fi @@ -837,13 +837,13 @@ fi ## other library ## -if build "libsdl" "2.26.1"; then - download "https://www.libsdl.org/release/SDL2-2.26.1.tar.gz" +if build "libsdl" "2.26.3"; then + download "https://www.libsdl.org/release/SDL2-2.26.3.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libsdl" "2.26.1" + build_done "libsdl" "2.26.3" fi if $NONFREE_AND_GPL; then @@ -899,12 +899,12 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi fi - if build "amf" "1.4.28"; then - download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.28.tar.gz' 'AMF-1.4.28.tar.gz' 'AMF-1.4.28' + if build "amf" "1.4.29"; then + download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.29.tar.gz' 'AMF-1.4.29.tar.gz' 'AMF-1.4.29' execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-1.4.28/AMF-1.4.28/amf/public/include/* "${WORKSPACE}/include/AMF/" - build_done "amf" "1.4.28" + execute cp -r "${PACKAGES}"/AMF-1.4.29/AMF-1.4.29/amf/public/include/* "${WORKSPACE}/include/AMF/" + build_done "amf" "1.4.29" fi CONFIGURE_OPTIONS+=("--enable-amf") fi From 4a45b486faf26b5ffd77db98714f1981f9106e5a Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 21:25:50 +0100 Subject: [PATCH 066/146] webp update --- build-ffmpeg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index f33df984..00a15159 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -330,12 +330,12 @@ if build "pkg-config" "0.29.2"; then build_done "pkg-config" "0.29.2" fi -if build "yasm" "1.3.0"; then - download "https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz" +if build "yasm" "1.2.4"; then + download "https://github.com/yasm/yasm/releases/download/v1.2.4/yasm-1.2.4.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "yasm" "1.3.0" + build_done "yasm" "1.2.4" fi if build "nasm" "2.16.01"; then @@ -818,10 +818,10 @@ fi ## does not compile on monterey -> _PrintGifError if [[ "$OSTYPE" != "darwin"* ]]; then - if build "libwebp" "1.3.0"; then + if build "libwebp" "1.2.4"; then # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS CPPFLAGS= - download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.3.0.tar.gz" "libwebp-1.3.0.tar.gz" + download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz" "libwebp-1.2.4.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib make_dir build cd build || exit @@ -829,7 +829,7 @@ if [[ "$OSTYPE" != "darwin"* ]]; then execute make -j $MJOBS execute make install - build_done "libwebp" "1.3.0" + build_done "libwebp" "1.2.4" fi CONFIGURE_OPTIONS+=("--enable-libwebp") fi From a234cf842472bd9c7077544872d091aa97337d3c Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 21:26:39 +0100 Subject: [PATCH 067/146] FFMpeg V6.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 00a15159..2a91755d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.43 +SCRIPT_VERSION=1.44 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 7b141c60f5f305f2141dcb4e3bb04e9b84cc6fa5 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 21:29:26 +0100 Subject: [PATCH 068/146] FFMpeg V6.0 --- build-ffmpeg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 2a91755d..a16060ca 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -330,12 +330,12 @@ if build "pkg-config" "0.29.2"; then build_done "pkg-config" "0.29.2" fi -if build "yasm" "1.2.4"; then - download "https://github.com/yasm/yasm/releases/download/v1.2.4/yasm-1.2.4.tar.gz" +if build "yasm" "1.3.0"; then + download "https://github.com/yasm/yasm/releases/download/v1.2.4/yasm-1.3.0.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "yasm" "1.2.4" + build_done "yasm" "1.3.0" fi if build "nasm" "2.16.01"; then From cf918b1d93a319cc1632274afa7eb534ebab2a7c Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 21:31:36 +0100 Subject: [PATCH 069/146] FFMpeg V6.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index a16060ca..d10ea0ad 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -331,7 +331,7 @@ if build "pkg-config" "0.29.2"; then fi if build "yasm" "1.3.0"; then - download "https://github.com/yasm/yasm/releases/download/v1.2.4/yasm-1.3.0.tar.gz" + download "https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install From edd5efdd3d7a8d728058f79f06a6ed6207ee4cb9 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Wed, 1 Mar 2023 21:40:59 +0100 Subject: [PATCH 070/146] FFMpeg V6.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index d10ea0ad..8c434138 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -986,4 +986,4 @@ elif [[ ! "$SKIPINSTALL" == "yes" ]]; then esac fi -exit 0 +exit 0 \ No newline at end of file From 9ef607e4503090231726e915615a46a885194cac Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Wed, 1 Mar 2023 23:49:40 +0100 Subject: [PATCH 071/146] Update build-ffmpeg --- build-ffmpeg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 8c434138..79c33082 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -818,10 +818,10 @@ fi ## does not compile on monterey -> _PrintGifError if [[ "$OSTYPE" != "darwin"* ]]; then - if build "libwebp" "1.2.4"; then + if build "libwebp" "1.2.2"; then # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS CPPFLAGS= - download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz" "libwebp-1.2.4.tar.gz" + download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.2.tar.gz" "libwebp-1.2.2.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib make_dir build cd build || exit @@ -829,7 +829,7 @@ if [[ "$OSTYPE" != "darwin"* ]]; then execute make -j $MJOBS execute make install - build_done "libwebp" "1.2.4" + build_done "libwebp" "1.2.2" fi CONFIGURE_OPTIONS+=("--enable-libwebp") fi @@ -986,4 +986,4 @@ elif [[ ! "$SKIPINSTALL" == "yes" ]]; then esac fi -exit 0 \ No newline at end of file +exit 0 From 4063dc5e7800a79ad3af46bbe02fb6b21a97c9bb Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 2 Mar 2023 07:25:33 +0100 Subject: [PATCH 072/146] Readme Update FFmpeg V6.0 --- README.md | 502 ++++++++++++++---------------------------------------- 1 file changed, 126 insertions(+), 376 deletions(-) diff --git a/README.md b/README.md index 4213c7ee..05df7429 100644 --- a/README.md +++ b/README.md @@ -292,454 +292,204 @@ ffmpeg-build-script v1.xx Using 12 make jobs simultaneously. -building yasm -======================= -Downloading https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz as yasm-1.3.0.tar.gz -... Done -Extracted yasm-1.3.0.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -$ make -j 12 -$ make install +With GPL and non-free codecs +cargo not installed. rav1e encoder will not be available. -building nasm +building giflib - version 5.2.1 ======================= -Downloading https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz as nasm-2.15.05.tar.xz +Downloading https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz as giflib-5.2.1.tar.gz ... Done -Extracted nasm-2.15.05.tar.xz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 -$ make install +Extracted giflib-5.2.1.tar.gz +$ make +$ make PREFIX=/app/workspace install -building pkg-config +building pkg-config - version 0.29.2 ======================= Downloading https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz as pkg-config-0.29.2.tar.gz ... Done Extracted pkg-config-0.29.2.tar.gz -$ ./configure --silent --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --with-pc-path=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/lib/pkgconfig --with-internal-glib -$ make -j 12 -$ make install - -building zlib -======================= -Downloading https://www.zlib.net/zlib-1.2.11.tar.gz as zlib-1.2.11.tar.gz -... Done -Extracted zlib-1.2.11.tar.gz -$ ./configure --static --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -$ make -j 12 -$ make install - -building openssl -======================= -Downloading https://www.openssl.org/source/openssl-1.1.1h.tar.gz as openssl-1.1.1h.tar.gz -... Done -Extracted openssl-1.1.1h.tar.gz -$ ./config --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --openssldir=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --with-zlib-include=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/include/ --with-zlib-lib=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/lib no-shared zlib -$ make -j 12 -$ make install - -building cmake -======================= -Downloading https://cmake.org/files/v3.18/cmake-3.18.4.tar.gz as cmake-3.18.4.tar.gz -... Done -Extracted cmake-3.18.4.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --system-zlib -$ make -j 12 -$ make install - -building x264 -======================= -Downloading https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.tar.bz2 as x264-stable.tar.bz2 -... Done -Extracted x264-stable.tar.bz2 -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --enable-static --enable-pic -$ make -j 12 +$ ./configure --silent --prefix=/app/workspace --with-pc-path=/app/workspace/lib/pkgconfig --with-internal-glib +$ make -j 2 $ make install -$ make install-lib-static -building x265 +building yasm - version 1.3.0 ======================= -Downloading https://github.com/videolan/x265/archive/Release_3.5.tar.gz as x265-3.5.tar.gz -... Done -Extracted x265-3.5.tar.gz -$ cmake -DCMAKE_INSTALL_PREFIX=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../../source -$ make -j 12 -$ make install - -building libvpx -======================= -Downloading https://github.com/webmproject/libvpx/archive/v1.9.0.tar.gz as libvpx-1.9.0.tar.gz -... Done -Extracted libvpx-1.9.0.tar.gz -Applying Darwin patch -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-unit-tests --disable-shared --as=yasm -$ make -j 12 -$ make install - -building xvidcore -======================= -Downloading https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz as xvidcore-1.3.7.tar.gz +Downloading https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz as yasm-1.3.0.tar.gz ... Done -Extracted xvidcore-1.3.7.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 +Extracted yasm-1.3.0.tar.gz +$ ./configure --prefix=/app/workspace +$ make -j 2 $ make install -$ rm /Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/lib/libxvidcore.4.dylib -building vid_stab +building nasm - version 2.16.01 ======================= -Downloading https://github.com/georgmartius/vid.stab/archive/v1.1.0.tar.gz as vid.stab-1.1.0.tar.gz +Downloading https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.xz as nasm-2.16.01.tar.xz ... Done -Extracted vid.stab-1.1.0.tar.gz -$ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -DUSE_OMP=OFF -DENABLE_SHARED=off . -$ make +Extracted nasm-2.16.01.tar.xz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 $ make install -building av1 +building zlib - version 1.2.13 ======================= -Downloading https://aomedia.googlesource.com/aom/+archive/430d58446e1f71ec2283af0d6c1879bc7a3553dd.tar.gz as av1.tar.gz +Downloading https://zlib.net/fossils/zlib-1.2.13.tar.gz as zlib-1.2.13.tar.gz ... Done -Extracted av1.tar.gz -$ cmake -DENABLE_TESTS=0 -DCMAKE_INSTALL_PREFIX=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -DCMAKE_INSTALL_LIBDIR=lib /Volumes/Daten/dev/mac/ffmpeg-build-script/packages/av1 -$ make -j 12 +Extracted zlib-1.2.13.tar.gz +$ ./configure --static --prefix=/app/workspace +$ make -j 2 $ make install -building opencore +building m4 - version 1.4.19 ======================= -Downloading https://deac-riga.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.5.tar.gz as opencore-amr-0.1.5.tar.gz +Downloading https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.gz as m4-1.4.19.tar.gz ... Done -Extracted opencore-amr-0.1.5.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 +Extracted m4-1.4.19.tar.gz +$ ./configure --prefix=/app/workspace +$ make -j 2 $ make install -building lame +building autoconf - version 2.71 ======================= -Downloading https://netcologne.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz as lame-3.100.tar.gz +Downloading https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz as autoconf-2.71.tar.gz ... Done -Extracted lame-3.100.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 +Extracted autoconf-2.71.tar.gz +$ ./configure --prefix=/app/workspace +$ make -j 2 $ make install -building opus +building automake - version 1.16.5 ======================= -Downloading https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz as opus-1.3.1.tar.gz +Downloading https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz as automake-1.16.5.tar.gz ... Done -Extracted opus-1.3.1.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 +Extracted automake-1.16.5.tar.gz +$ ./configure --prefix=/app/workspace +$ make -j 2 $ make install -building libogg +building libtool - version 2.4.7 ======================= -Downloading https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.3.tar.gz as libogg-1.3.3.tar.gz +Downloading https://ftpmirror.gnu.org/libtool/libtool-2.4.7.tar.gz as libtool-2.4.7.tar.gz ... Done -Extracted libogg-1.3.3.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 +Extracted libtool-2.4.7.tar.gz +$ ./configure --prefix=/app/workspace --enable-static --disable-shared +$ make -j 2 $ make install -building libvorbis +building openssl - version 1.1.1t ======================= -Downloading https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.6.tar.gz as libvorbis-1.3.6.tar.gz +Downloading https://www.openssl.org/source/openssl-1.1.1t.tar.gz as openssl-1.1.1t.tar.gz ... Done -Extracted libvorbis-1.3.6.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --with-ogg-libraries=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/lib --with-ogg-includes=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/include/ --enable-static --disable-shared --disable-oggtest -$ make -j 12 -$ make install +Extracted openssl-1.1.1t.tar.gz +$ ./config --prefix=/app/workspace --openssldir=/app/workspace --with-zlib-include=/app/workspace/include/ --with-zlib-lib=/app/workspace/lib no-shared zlib +$ make -j 2 +$ make install_sw -building libtheora +building cmake - version 3.25.1 ======================= -Downloading https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-1.1.1.tar.gz as libtheora-1.1.1.tar.gz +Downloading https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz as cmake-3.25.1.tar.gz ... Done -Extracted libtheora-1.1.1.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --with-ogg-libraries=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/lib --with-ogg-includes=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/include/ --with-vorbis-libraries=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/lib --with-vorbis-includes=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec -$ make -j 12 +Extracted cmake-3.25.1.tar.gz +$ ./configure --prefix=/app/workspace --parallel=2 -- -DCMAKE_USE_OPENSSL=OFF +$ make -j 2 $ make install -building fdk_aac +building dav1d - version 1.1.0 ======================= -Downloading https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.1.tar.gz/download?use_mirror=gigenet as fdk-aac-2.0.1.tar.gz +Downloading https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.1.0.tar.gz as dav1d-1.1.0.tar.gz ... Done -Extracted fdk-aac-2.0.1.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 -$ make install +Extracted dav1d-1.1.0.tar.gz +$ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib +$ ninja -C build +$ ninja -C build install -building libwebp +building svtav1 - version 1.4.1 ======================= -Downloading https://github.com/webmproject/libwebp/archive/v1.1.0.tar.gz as libwebp-1.1.0.tar.gz +Downloading https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v1.4.1/SVT-AV1-v1.4.1.tar.gz as svtav1-1.4.1.tar.gz ... Done -Extracted libwebp-1.1.0.tar.gz -$ cmake -DCMAKE_INSTALL_PREFIX=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON ../ -$ make -j 12 +Extracted svtav1-1.4.1.tar.gz +$ cmake -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -GUnix Makefiles -DCMAKE_BUILD_TYPE=Release +$ make -j 2 $ make install +$ cp SvtAv1Enc.pc /app/workspace/lib/pkgconfig/ +$ cp SvtAv1Dec.pc /app/workspace/lib/pkgconfig/ -building libsdl +building x264 - version 941cae6d ======================= -Downloading https://www.libsdl.org/release/SDL2-2.0.12.tar.gz as SDL2-2.0.12.tar.gz +Downloading https://code.videolan.org/videolan/x264/-/archive/941cae6d1d6d6344c9a1d27440eaf2872b18ca9a/x264-941cae6d1d6d6344c9a1d27440eaf2872b18ca9a.tar.gz as x264-941cae6d.tar.gz ... Done -Extracted SDL2-2.0.12.tar.gz -$ ./configure --prefix=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace --disable-shared --enable-static -$ make -j 12 +Extracted x264-941cae6d.tar.gz +$ ./configure --prefix=/app/workspace --enable-static --enable-pic CXXFLAGS=-fPIC +$ make -j 2 $ make install +$ make install-lib-static -building srt +building x265 - version 3.5 ======================= -Downloading https://github.com/Haivision/srt/archive/v1.4.1.tar.gz as srt-1.4.1.tar.gz +Downloading https://github.com/videolan/x265/archive/Release_3.5.tar.gz as x265-3.5.tar.gz ... Done -Extracted srt-1.4.1.tar.gz -$ cmake . -DCMAKE_INSTALL_PREFIX=/Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DENABLE_APPS=OFF -DUSE_STATIC_LIBSTDCXX=ON +Extracted x265-3.5.tar.gz +$ cmake ../../../source -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=OFF -DBUILD_SHARED_LIBS=OFF -DHIGH_BIT_DEPTH=ON -DENABLE_HDR10_PLUS=ON -DEXPORT_C_API=OFF -DENABLE_CLI=OFF -DMAIN12=ON +$ make -j 2 +$ cmake ../../../source -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=OFF -DBUILD_SHARED_LIBS=OFF -DHIGH_BIT_DEPTH=ON -DENABLE_HDR10_PLUS=ON -DEXPORT_C_API=OFF -DENABLE_CLI=OFF +$ make -j 2 +$ cmake ../../../source -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=OFF -DBUILD_SHARED_LIBS=OFF -DEXTRA_LIB=x265_main10.a;x265_main12.a;-ldl -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON +$ make -j 2 +$ ar -M $ make install -building ffmpeg +building libvpx - version 1.13.0 ======================= -Downloading https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.bz2 as ffmpeg-4.3.1.tar.bz2 +Downloading https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.0.tar.gz as libvpx-1.13.0.tar.gz ... Done -Extracted ffmpeg-4.3.1.tar.bz2 -install prefix /Volumes/Daten/dev/mac/ffmpeg-build-script/workspace -source path . -C compiler gcc -C library -ARCH x86 (generic) -big-endian no -runtime cpu detection yes -standalone assembly yes -x86 assembler nasm -MMX enabled yes -MMXEXT enabled yes -3DNow! enabled yes -3DNow! extended enabled yes -SSE enabled yes -SSSE3 enabled yes -AESNI enabled yes -AVX enabled yes -AVX2 enabled yes -AVX-512 enabled yes -XOP enabled yes -FMA3 enabled yes -FMA4 enabled yes -i686 features enabled yes -CMOV is fast yes -EBX available yes -EBP available yes -debug symbols no -strip symbols yes -optimize for size yes -optimizations yes -static yes -shared no -postprocessing support yes -network support yes -threading support pthreads -safe bitstream reader yes -texi2html enabled no -perl enabled yes -pod2man enabled yes -makeinfo enabled yes -makeinfo supports HTML no - -External libraries: -appkit coreimage libfdk_aac libopencore_amrwb libtheora libvpx libx265 sdl2 -avfoundation iconv libmp3lame libopus libvidstab libwebp libxvid zlib -bzlib libaom libopencore_amrnb libsrt libvorbis libx264 openssl - -External libraries providing hardware acceleration: -audiotoolbox videotoolbox - -Libraries: -avcodec avdevice avfilter avformat avutil postproc swresample swscale - -Programs: -ffmpeg ffplay ffprobe - -Enabled decoders: -aac adpcm_ima_wav avrp dsicinvideo gsm libopus msmpeg4v3 pcm_s32be realtext targa_y216 vqa -aac_at adpcm_ima_ws avs dss_sp gsm_ms libvorbis msrle pcm_s32le rl2 tdsc wavpack -aac_fixed adpcm_ms avui dst gsm_ms_at libvpx_vp8 mss1 pcm_s32le_planar roq text wcmv -aac_latm adpcm_mtaf ayuv dvaudio h261 libvpx_vp9 mss2 pcm_s64be roq_dpcm theora webp -aasc adpcm_psx bethsoftvid dvbsub h263 loco msvideo1 pcm_s64le rpza thp webvtt -ac3 adpcm_sbpro_2 bfi dvdsub h263i lscr mszh pcm_s8 rscc tiertexseqvideo wmalossless -ac3_at adpcm_sbpro_3 bink dvvideo h263p m101 mts2 pcm_s8_planar rv10 tiff wmapro -ac3_fixed adpcm_sbpro_4 binkaudio_dct dxa h264 mace3 mv30 pcm_u16be rv20 tmv wmav1 -acelp_kelvin adpcm_swf binkaudio_rdft dxtory hap mace6 mvc1 pcm_u16le rv30 truehd wmav2 -adpcm_4xm adpcm_thp bintext dxv hca magicyuv mvc2 pcm_u24be rv40 truemotion1 wmavoice -adpcm_adx adpcm_thp_le bitpacked eac3 hcom mdec mvdv pcm_u24le s302m truemotion2 wmv1 -adpcm_afc adpcm_vima bmp eac3_at hevc metasound mvha pcm_u32be sami truemotion2rt wmv2 -adpcm_agm adpcm_xa bmv_audio eacmv hnm4_video microdvd mwsc pcm_u32le sanm truespeech wmv3 -adpcm_aica adpcm_yamaha bmv_video eamad hq_hqa mimic mxpeg pcm_u8 sbc tscc wmv3image -adpcm_argo adpcm_zork brender_pix eatgq hqx mjpeg nellymoser pcm_vidc scpr tscc2 wnv1 -adpcm_ct agm c93 eatgv huffyuv mjpegb notchlc pcx screenpresso tta wrapped_avframe -adpcm_dtk aic cavs eatqi hymt mlp nuv pfm sdx2_dpcm twinvq ws_snd1 -adpcm_ea alac ccaption eightbps iac mmvideo on2avc pgm sgi txd xan_dpcm -adpcm_ea_maxis_xa alac_at cdgraphics eightsvx_exp idcin motionpixels opus pgmyuv sgirle ulti xan_wc3 -adpcm_ea_r1 alias_pix cdtoons eightsvx_fib idf movtext paf_audio pgssub sheervideo utvideo xan_wc4 -adpcm_ea_r2 als cdxl escape124 iff_ilbm mp1 paf_video pictor shorten v210 xbin -adpcm_ea_r3 amr_nb_at cfhd escape130 ilbc mp1_at pam pixlet sipr v210x xbm -adpcm_ea_xas amrnb cinepak evrc ilbc_at mp1float pbm pjs siren v308 xface -adpcm_g722 amrwb clearvideo exr imc mp2 pcm_alaw png smackaud v408 xl -adpcm_g726 amv cljr ffv1 imm4 mp2_at pcm_alaw_at ppm smacker v410 xma1 -adpcm_g726le anm cllc ffvhuff imm5 mp2float pcm_bluray prores smc vb xma2 -adpcm_ima_alp ansi comfortnoise ffwavesynth indeo2 mp3 pcm_dvd prosumer smvjpeg vble xpm -adpcm_ima_amv ape cook fic indeo3 mp3_at pcm_f16le psd snow vc1 xsub -adpcm_ima_apc apng cpia fits indeo4 mp3adu pcm_f24le ptx sol_dpcm vc1image xwd -adpcm_ima_apm aptx cscd flac indeo5 mp3adufloat pcm_f32be qcelp sonic vcr1 y41p -adpcm_ima_cunning aptx_hd cyuv flashsv interplay_acm mp3float pcm_f32le qdm2 sp5x vmdaudio ylc -adpcm_ima_dat4 arbc dca flashsv2 interplay_dpcm mp3on4 pcm_f64be qdm2_at speedhq vmdvideo yop -adpcm_ima_dk3 ass dds flic interplay_video mp3on4float pcm_f64le qdmc srgc vmnc yuv4 -adpcm_ima_dk4 asv1 derf_dpcm flv jacosub mpc7 pcm_lxf qdmc_at srt vorbis zero12v -adpcm_ima_ea_eacs asv2 dfa fmvc jpeg2000 mpc8 pcm_mulaw qdraw ssa vp3 zerocodec -adpcm_ima_ea_sead atrac1 dirac fourxm jpegls mpeg1video pcm_mulaw_at qpeg stl vp4 zlib -adpcm_ima_iss atrac3 dnxhd fraps jv mpeg2video pcm_s16be qtrle subrip vp5 zmbv -adpcm_ima_mtf atrac3al dolby_e frwu kgv1 mpeg4 pcm_s16be_planar r10k subviewer vp6 -adpcm_ima_oki atrac3p dpx g2m kmvc mpegvideo pcm_s16le r210 subviewer1 vp6a -adpcm_ima_qt atrac3pal dsd_lsbf g723_1 lagarith mpl2 pcm_s16le_planar ra_144 sunrast vp6f -adpcm_ima_qt_at atrac9 dsd_lsbf_planar g729 libaom_av1 msa1 pcm_s24be ra_288 svq1 vp7 -adpcm_ima_rad aura dsd_msbf gdv libfdk_aac mscc pcm_s24daud ralf svq3 vp8 -adpcm_ima_smjpeg aura2 dsd_msbf_planar gif libopencore_amrnb msmpeg4v1 pcm_s24le rasc tak vp9 -adpcm_ima_ssi avrn dsicinaudio gremlin_dpcm libopencore_amrwb msmpeg4v2 pcm_s24le_planar rawvideo targa vplayer - -Enabled encoders: -a64multi alac_at dnxhd h263p libwebp_anim msvideo1 pcm_s16le_planar pcm_u32le roq_dpcm truehd xface -a64multi5 alias_pix dpx h264_videotoolbox libx264 nellymoser pcm_s24be pcm_u8 rv10 tta xsub -aac amv dvbsub hevc_videotoolbox libx264rgb opus pcm_s24daud pcm_vidc rv20 utvideo xwd -aac_at apng dvdsub huffyuv libx265 pam pcm_s24le pcx s302m v210 y41p -ac3 aptx dvvideo ilbc_at libxvid pbm pcm_s24le_planar pgm sbc v308 yuv4 -ac3_fixed aptx_hd eac3 jpeg2000 ljpeg pcm_alaw pcm_s32be pgmyuv sgi v408 zlib -adpcm_adx ass ffv1 jpegls magicyuv pcm_alaw_at pcm_s32le png snow v410 zmbv -adpcm_g722 asv1 ffvhuff libaom_av1 mjpeg pcm_dvd pcm_s32le_planar ppm sonic vc2 -adpcm_g726 asv2 fits libfdk_aac mlp pcm_f32be pcm_s64be prores sonic_ls vorbis -adpcm_g726le avrp flac libmp3lame movtext pcm_f32le pcm_s64le prores_aw srt wavpack -adpcm_ima_qt avui flashsv libopencore_amrnb mp2 pcm_f64be pcm_s8 prores_ks ssa webvtt -adpcm_ima_ssi ayuv flashsv2 libopus mp2fixed pcm_f64le pcm_s8_planar qtrle subrip wmav1 -adpcm_ima_wav bmp flv libtheora mpeg1video pcm_mulaw pcm_u16be r10k sunrast wmav2 -adpcm_ms cinepak g723_1 libvorbis mpeg2video pcm_mulaw_at pcm_u16le r210 svq1 wmv1 -adpcm_swf cljr gif libvpx_vp8 mpeg4 pcm_s16be pcm_u24be ra_144 targa wmv2 -adpcm_yamaha comfortnoise h261 libvpx_vp9 msmpeg4v2 pcm_s16be_planar pcm_u24le rawvideo text wrapped_avframe -alac dca h263 libwebp msmpeg4v3 pcm_s16le pcm_u32be roq tiff xbm - -Enabled hwaccels: -h263_videotoolbox h264_videotoolbox hevc_videotoolbox mpeg1_videotoolbox mpeg2_videotoolbox mpeg4_videotoolbox - -Enabled parsers: -aac avs2 dirac dvd_nav gif hevc mpegaudio rv30 vc1 webp -aac_latm bmp dnxhd dvdsub gsm jpeg2000 mpegvideo rv40 vorbis xma -ac3 cavsvideo dpx flac h261 mjpeg opus sbc vp3 -adx cook dvaudio g723_1 h263 mlp png sipr vp8 -av1 dca dvbsub g729 h264 mpeg4video pnm tak vp9 - -Enabled demuxers: -aa ass dcstr fwse image2pipe ircam mpc8 pcm_f32le redspark sox vmd -aac ast derf g722 image_bmp_pipe iss mpegps pcm_f64be rl2 spdif vobsub -ac3 au dfa g723_1 image_dds_pipe iv8 mpegts pcm_f64le rm srt voc -acm av1 dhav g726 image_dpx_pipe ivf mpegtsraw pcm_mulaw roq stl vpk -act avi dirac g726le image_exr_pipe ivr mpegvideo pcm_s16be rpl str vplayer -adf avr dnxhd g729 image_gif_pipe jacosub mpjpeg pcm_s16le rsd subviewer vqf -adp avs dsf gdv image_j2k_pipe jv mpl2 pcm_s24be rso subviewer1 w64 -ads avs2 dsicin genh image_jpeg_pipe kux mpsub pcm_s24le rtp sup wav -adx bethsoftvid dss gif image_jpegls_pipe kvag msf pcm_s32be rtsp svag wc3 -aea bfi dts gsm image_pam_pipe live_flv msnwc_tcp pcm_s32le s337m swf webm_dash_manifest -afc bfstm dtshd gxf image_pbm_pipe lmlm4 mtaf pcm_s8 sami tak webvtt -aiff bink dv h261 image_pcx_pipe loas mtv pcm_u16be sap tedcaptions wsaud -aix bintext dvbsub h263 image_pgm_pipe lrc musx pcm_u16le sbc thp wsd -alp bit dvbtxt h264 image_pgmyuv_pipe lvf mv pcm_u24be sbg threedostr wsvqa -amr bmv dxa hca image_pictor_pipe lxf mvi pcm_u24le scc tiertexseq wtv -amrnb boa ea hcom image_png_pipe m4v mxf pcm_u32be sdp tmv wv -amrwb brstm ea_cdata hevc image_ppm_pipe matroska mxg pcm_u32le sdr2 truehd wve -anm c93 eac3 hls image_psd_pipe mgsts nc pcm_u8 sds tta xa -apc caf epaf hnm image_qdraw_pipe microdvd nistsphere pcm_vidc sdx tty xbin -ape cavsvideo ffmetadata ico image_sgi_pipe mjpeg nsp pjs segafilm txd xmv -apm cdg filmstrip idcin image_sunrast_pipe mjpeg_2000 nsv pmp ser ty xvag -apng cdxl fits idf image_svg_pipe mlp nut pp_bnk shorten v210 xwma -aptx cine flac iff image_tiff_pipe mlv nuv pva siff v210x yop -aptx_hd codec2 flic ifv image_webp_pipe mm ogg pvf sln vag yuv4mpegpipe -aqtitle codec2raw flv ilbc image_xpm_pipe mmf oma qcp smacker vc1 -argo_asf concat fourxm image2 image_xwd_pipe mov paf r3d smjpeg vc1t -asf data frm image2_alias_pix ingenient mp3 pcm_alaw rawvideo smush vividas -asf_o daud fsb image2_brender_pix ipmovie mpc pcm_f32be realtext sol vivo - -Enabled muxers: -a64 avm2 eac3 g726le ipod mlp mxf pcm_mulaw pcm_vidc smjpeg uncodedframecrc -ac3 avs2 f4v gif ircam mmf mxf_d10 pcm_s16be psp smoothstreaming vc1 -adts bit ffmetadata gsm ismv mov mxf_opatom pcm_s16le rawvideo sox vc1t -adx caf fifo gxf ivf mp2 null pcm_s24be rm spdif voc -aiff cavsvideo fifo_test h261 jacosub mp3 nut pcm_s24le roq spx w64 -amr codec2 filmstrip h263 kvag mp4 oga pcm_s32be rso srt wav -apng codec2raw fits h264 latm mpeg1system ogg pcm_s32le rtp stream_segment webm -aptx crc flac hash lrc mpeg1vcd ogv pcm_s8 rtp_mpegts streamhash webm_chunk -aptx_hd dash flv hds m4v mpeg1video oma pcm_u16be rtsp sup webm_dash_manifest -asf data framecrc hevc matroska mpeg2dvd opus pcm_u16le sap swf webp -asf_stream daud framehash hls matroska_audio mpeg2svcd pcm_alaw pcm_u24be sbc tee webvtt -ass dirac framemd5 ico md5 mpeg2video pcm_f32be pcm_u24le scc tg2 wtv -ast dnxhd g722 ilbc microdvd mpeg2vob pcm_f32le pcm_u32be segafilm tgp wv -au dts g723_1 image2 mjpeg mpegts pcm_f64be pcm_u32le segment truehd yuv4mpegpipe -avi dv g726 image2pipe mkvtimestamp_v2 mpjpeg pcm_f64le pcm_u8 singlejpeg tta - -Enabled protocols: -async data ftp httpproxy md5 prompeg rtmpt srtp tls -cache ffrtmpcrypt gopher https mmsh rtmp rtmpte subfile udp -concat ffrtmphttp hls icecast mmst rtmpe rtmpts tcp udplite -crypto file http libsrt pipe rtmps rtp tee unix - -Enabled filters: -abench alphaextract atadenoise colorspace doubleweave gblur loudnorm nullsrc rotate sinc trim -abitscope alphamerge atempo compand drawbox geq lowpass oscilloscope sab sine unpremultiply -acompressor amerge atrim compensationdelay drawgraph gradfun lowshelf overlay scale smartblur unsharp -acontrast ametadata avectorscope concat drawgrid gradients lumakey owdenoise scale2ref smptebars untile -acopy amix avgblur convolution drmeter graphmonitor lut pad scdet smptehdbars uspp -acrossfade amovie axcorrelate convolve dynaudnorm greyedge lut1d pal100bars scroll sobel v360 -acrossover amplify bandpass copy earwax haas lut2 pal75bars select spectrumsynth vaguedenoiser -acrusher amultiply bandreject coreimage ebur128 haldclut lut3d palettegen selectivecolor split vectorscope -acue anequalizer bass coreimagesrc edgedetect haldclutsrc lutrgb paletteuse sendcmd spp vflip -addroi anlmdn bbox cover_rect elbg hdcd lutyuv pan separatefields sr vfrdet -adeclick anlms bench crop entropy headphone mandelbrot perms setdar ssim vibrance -adeclip anoisesrc bilateral cropdetect eq hflip maskedclamp perspective setfield stereo3d vibrato -adelay anull biquad crossfeed equalizer highpass maskedmax phase setparams stereotools vidstabdetect -aderivative anullsink bitplanenoise crystalizer erosion highshelf maskedmerge photosensitivity setpts stereowiden vidstabtransform -adrawgraph anullsrc blackdetect cue extractplanes hilbert maskedmin pixdesctest setrange streamselect vignette -aecho apad blackframe curves extrastereo histeq maskedthreshold pixscope setsar super2xsai vmafmotion -aemphasis aperms blend datascope fade histogram maskfun pp settb superequalizer volume -aeval aphasemeter bm3d dblur fftdnoiz hqdn3d mcdeint pp7 showcqt surround volumedetect -aevalsrc aphaser boxblur dcshift fftfilt hqx mcompand premultiply showfreqs swaprect vstack -afade apulsator bwdif dctdnoiz field hstack median prewitt showinfo swapuv w3fdif -afftdn arealtime cas deband fieldhint hue mergeplanes pseudocolor showpalette tblend waveform -afftfilt aresample cellauto deblock fieldmatch hwdownload mestimate psnr showspatial telecine weave -afifo areverse channelmap decimate fieldorder hwmap metadata pullup showspectrum testsrc xbr -afir arnndn channelsplit deconvolve fifo hwupload midequalizer qp showspectrumpic testsrc2 xfade -afirsrc aselect chorus dedot fillborders hysteresis minterpolate random showvolume thistogram xmedian -aformat asendcmd chromahold deesser find_rect idet mix readeia608 showwaves threshold xstack -agate asetnsamples chromakey deflate firequalizer il movie readvitc showwavespic thumbnail yadif -agraphmonitor asetpts chromashift deflicker flanger inflate mpdecimate realtime shuffleframes tile yaepblur -ahistogram asetrate ciescope dejudder floodfill interlace mptestsrc remap shuffleplanes tinterlace yuvtestsrc -aiir asettb codecview delogo format interleave negate removegrain sidechaincompress tlut2 zoompan -aintegral ashowinfo color derain fps join nlmeans removelogo sidechaingate tmedian -ainterleave asidedata colorbalance deshake framepack kerndeint nnedi repeatfields sidedata tmix -alimiter asoftclip colorchannelmixer despill framerate lagfun noformat replaygain sierpinski tonemap -allpass asplit colorhold detelecine framestep lenscorrection noise reverse signalstats tpad -allrgb astats colorkey dilation freezedetect life normalize rgbashift signature transpose -allyuv astreamselect colorlevels displace freezeframes limiter null rgbtestsrc silencedetect treble -aloop asubboost colormatrix dnn_processing fspp loop nullsink roberts silenceremove tremolo +Extracted libvpx-1.13.0.tar.gz +$ ./configure --prefix=/app/workspace --disable-unit-tests --disable-shared --disable-examples --as=yasm --enable-vp9-highbitdepth +compand multiply waveform +compensationdelay negate weave +concat nlmeans xbr +convolution nnedi xcorrelate +convolve noformat xfade +copy noise xmedian +corr normalize xstack +cover_rect null xstack_vaapi +crop nullsink yadif +cropdetect nullsrc yaepblur +crossfeed oscilloscope yuvtestsrc +crystalizer overlay zoompan +cue overlay_vaapi zscale +curves owdenoise Enabled bsfs: -aac_adtstoasc chomp extract_extradata h264_redundant_pps imx_dump_header mp3_header_decompress null remove_extradata vp9_metadata -av1_frame_merge dca_core filter_units hapqa_extract mjpeg2jpeg mpeg2_metadata opus_metadata text2movsub vp9_raw_reorder -av1_frame_split dump_extradata h264_metadata hevc_metadata mjpega_dump_header mpeg4_unpack_bframes pcm_rechunk trace_headers vp9_superframe -av1_metadata eac3_core h264_mp4toannexb hevc_mp4toannexb mov2textsub noise prores_metadata truehd_core vp9_superframe_split +aac_adtstoasc h264_redundant_pps opus_metadata +av1_frame_merge hapqa_extract pcm_rechunk +av1_frame_split hevc_metadata pgs_frame_merge +av1_metadata hevc_mp4toannexb prores_metadata +chomp imx_dump_header remove_extradata +dca_core media100_to_mjpegb setts +dts2pts mjpeg2jpeg text2movsub +dump_extradata mjpega_dump_header trace_headers +dv_error_marker mov2textsub truehd_core +eac3_core mp3_header_decompress vp9_metadata +extract_extradata mpeg2_metadata vp9_raw_reorder +filter_units mpeg4_unpack_bframes vp9_superframe +h264_metadata noise vp9_superframe_split +h264_mp4toannexb null Enabled indevs: -avfoundation lavfi +fbdev oss +lavfi v4l2 Enabled outdevs: -sdl2 +fbdev sdl2 +oss v4l2 -License: non-free and unredistributable -$ make -j 12 +License: nonfree and unredistributable +$ make -j 2 $ make install Building done. The following binaries can be found here: -- ffmpeg: /Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/bin/ffmpeg -- ffprobe: /Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/bin/ffprobe -- ffplay: /Volumes/Daten/dev/mac/ffmpeg-build-script/workspace/bin/ffplay +- ffmpeg: /app/workspace/bin/ffmpeg +- ffprobe: /app/workspace/bin/ffprobe +- ffplay: /app/workspace/bin/ffplay Install these binaries to your /usr/local/bin folder? Existing binaries will be replaced. [Y/n] y Password: From 2921fb81ee4a1c9074af91a184c19eb5c78c849d Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 2 Mar 2023 07:27:57 +0100 Subject: [PATCH 073/146] Readme Update FFmpeg V6.0 --- README.md | 902 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 900 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 05df7429..568ee72c 100644 --- a/README.md +++ b/README.md @@ -291,9 +291,7 @@ ffmpeg-build-script v1.xx ========================= Using 12 make jobs simultaneously. - With GPL and non-free codecs -cargo not installed. rav1e encoder will not be available. building giflib - version 5.2.1 ======================= @@ -443,6 +441,906 @@ Downloading https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.0.tar. ... Done Extracted libvpx-1.13.0.tar.gz $ ./configure --prefix=/app/workspace --disable-unit-tests --disable-shared --disable-examples --as=yasm --enable-vp9-highbitdepth +$ make -j 2 +$ make install + +building xvidcore - version 1.3.7 +======================= +Downloading https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz as xvidcore-1.3.7.tar.gz +... Done +Extracted xvidcore-1.3.7.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install +$ rm /app/workspace/lib/libxvidcore.so /app/workspace/lib/libxvidcore.so.4 /app/workspace/lib/libxvidcore.so.4.3 + +building vid_stab - version 1.1.0 +======================= +Downloading https://github.com/georgmartius/vid.stab/archive/v1.1.0.tar.gz as vid.stab-1.1.0.tar.gz +... Done +Extracted vid.stab-1.1.0.tar.gz +$ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/app/workspace -DUSE_OMP=OFF -DENABLE_SHARED=off . +$ make +$ make install + +building av1 - version bcfe6fb +======================= +Downloading https://aomedia.googlesource.com/aom/+archive/bcfe6fbfed315f83ee8a95465c654ee8078dbff9.tar.gz as av1.tar.gz +... Done +Extracted av1.tar.gz +$ cmake -DENABLE_TESTS=0 -DENABLE_EXAMPLES=0 -DCMAKE_INSTALL_PREFIX=/app/workspace -DCMAKE_INSTALL_LIBDIR=lib /app/packages/av1 +$ make -j 2 +$ make install + +building zimg - version 3.0.4 +======================= +Downloading https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.4.tar.gz as zimg-3.0.4.tar.gz +... Done +Extracted zimg-3.0.4.tar.gz +$ /app/workspace/bin/libtoolize -i -f -q +$ ./autogen.sh --prefix=/app/workspace +$ ./configure --prefix=/app/workspace --enable-static --disable-shared +$ make -j 2 +$ make install + +building lv2 - version 1.18.10 +======================= +Downloading https://lv2plug.in/spec/lv2-1.18.10.tar.xz as lv2-1.18.10.tar.xz +... Done +Extracted lv2-1.18.10.tar.xz +$ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib +$ ninja -C build +$ ninja -C build install + +building waflib - version b600c92 +======================= +Downloading https://gitlab.com/drobilla/autowaf/-/archive/b600c928b221a001faeab7bd92786d0b25714bc8/autowaf-b600c928b221a001faeab7bd92786d0b25714bc8.tar.gz as autowaf.tar.gz +... Done +Extracted autowaf.tar.gz + +building serd - version 0.30.16 +======================= +Downloading https://gitlab.com/drobilla/serd/-/archive/v0.30.16/serd-v0.30.16.tar.gz as serd-v0.30.16.tar.gz +... Done +Extracted serd-v0.30.16.tar.gz +$ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib +$ ninja -C build +$ ninja -C build install + +building pcre - version 8.45 +======================= +Downloading https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz as pcre-8.45.tar.gz +... Done +Extracted pcre-8.45.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building sord - version 0.16.14 +======================= +Downloading https://gitlab.com/drobilla/sord/-/archive/v0.16.14/sord-v0.16.14.tar.gz as sord-v0.16.14.tar.gz +... Done +Extracted sord-v0.16.14.tar.gz +$ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib +$ ninja -C build +$ ninja -C build install + +building sratom - version 0.6.14 +======================= +Downloading https://gitlab.com/lv2/sratom/-/archive/v0.6.14/sratom-v0.6.14.tar.gz as sratom-v0.6.14.tar.gz +... Done +Extracted sratom-v0.6.14.tar.gz +$ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib +$ ninja -C build +$ ninja -C build install + +building lilv - version 0.24.20 +======================= +Downloading https://gitlab.com/lv2/lilv/-/archive/v0.24.20/lilv-v0.24.20.tar.gz as lilv-v0.24.20.tar.gz +... Done +Extracted lilv-v0.24.20.tar.gz +$ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib +$ ninja -C build +$ ninja -C build install + +building opencore - version 0.1.6 +======================= +Downloading https://netactuate.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz as opencore-amr-0.1.6.tar.gz +... Done +Extracted opencore-amr-0.1.6.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building lame - version 3.100 +======================= +Downloading https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download?use_mirror=gigenet as lame-3.100.tar.gz +... Done +Extracted lame-3.100.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building opus - version 1.3.1 +======================= +Downloading https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz as opus-1.3.1.tar.gz +... Done +Extracted opus-1.3.1.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building libogg - version 1.3.5 +======================= +Downloading https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.5.tar.xz as libogg-1.3.5.tar.xz +... Done +Extracted libogg-1.3.5.tar.xz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building libvorbis - version 1.3.7 +======================= +Downloading https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.7.tar.gz as libvorbis-1.3.7.tar.gz +... Done +Extracted libvorbis-1.3.7.tar.gz +$ ./configure --prefix=/app/workspace --with-ogg-libraries=/app/workspace/lib --with-ogg-includes=/app/workspace/include/ --enable-static --disable-shared --disable-oggtest +$ make -j 2 +$ make install + +building libtheora - version 1.1.1 +======================= +Downloading https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-1.1.1.tar.gz as libtheora-1.1.1.tar.gz +... Done +Extracted libtheora-1.1.1.tar.gz +$ ./configure --prefix=/app/workspace --with-ogg-libraries=/app/workspace/lib --with-ogg-includes=/app/workspace/include/ --with-vorbis-libraries=/app/workspace/lib --with-vorbis-includes=/app/workspace/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec +$ make -j 2 +$ make install + +building fdk_aac - version 2.0.2 +======================= +Downloading https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.2.tar.gz/download?use_mirror=gigenet as fdk-aac-2.0.2.tar.gz +... Done +Extracted fdk-aac-2.0.2.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static --enable-pic +$ make -j 2 +$ make install + +building libtiff - version 4.5.0 +======================= +Downloading https://download.osgeo.org/libtiff/tiff-4.5.0.tar.xz as tiff-4.5.0.tar.xz +... Done +Extracted tiff-4.5.0.tar.xz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static --disable-dependency-tracking --disable-lzma --disable-webp --disable-zstd --without-x +$ make -j 2 +$ make install + +building libpng - version 1.6.39 +======================= +Downloading https://gigenet.dl.sourceforge.net/project/libpng/libpng16/1.6.39/libpng-1.6.39.tar.gz as libpng-1.6.39.tar.gz +... Done +Extracted libpng-1.6.39.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building libwebp - version 1.2.2 +======================= +Downloading https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.2.tar.gz as libwebp-1.2.2.tar.gz +... Done +Extracted libwebp-1.2.2.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include=/app/workspace/include/ --with-zlib-lib=/app/workspace/lib +$ cmake -DCMAKE_INSTALL_PREFIX=/app/workspace -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON ../ +$ make -j 2 +$ make install + +building libsdl - version 2.26.3 +======================= +Downloading https://www.libsdl.org/release/SDL2-2.26.3.tar.gz as SDL2-2.26.3.tar.gz +... Done +Extracted SDL2-2.26.3.tar.gz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 2 +$ make install + +building srt - version 1.5.1 +======================= +Downloading https://github.com/Haivision/srt/archive/v1.5.1.tar.gz as srt-1.5.1.tar.gz +... Done +Extracted srt-1.5.1.tar.gz +$ cmake . -DCMAKE_INSTALL_PREFIX=/app/workspace -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DENABLE_APPS=OFF -DUSE_STATIC_LIBSTDCXX=ON +$ make install + +building amf - version 1.4.29 +======================= +Downloading https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.29.tar.gz as AMF-1.4.29.tar.gz +... Done +Extracted AMF-1.4.29.tar.gz +$ rm -rf /app/workspace/include/AMF +$ mkdir -p /app/workspace/include/AMF +$ cp -r /app/packages/AMF-1.4.29/AMF-1.4.29/amf/public/include/components /app/packages/AMF-1.4.29/AMF-1.4.29/amf/public/include/core /app/workspace/include/AMF/ + +building ffmpeg - version 6.0 +======================= +Downloading https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/6.0.tar.gz as FFmpeg-release-6.0.tar.gz +... Done +Extracted FFmpeg-release-6.0.tar.gz +install prefix /app/workspace +source path . +C compiler gcc +C library glibc +ARCH x86 (generic) +big-endian no +runtime cpu detection yes +standalone assembly yes +x86 assembler nasm +MMX enabled yes +MMXEXT enabled yes +3DNow! enabled yes +3DNow! extended enabled yes +SSE enabled yes +SSSE3 enabled yes +AESNI enabled yes +AVX enabled yes +AVX2 enabled yes +AVX-512 enabled yes +AVX-512ICL enabled yes +XOP enabled yes +FMA3 enabled yes +FMA4 enabled yes +i686 features enabled yes +CMOV is fast yes +EBX available yes +EBP available yes +debug symbols no +strip symbols yes +optimize for size yes +optimizations yes +static yes +shared no +postprocessing support yes +network support yes +threading support pthreads +safe bitstream reader yes +texi2html enabled no +perl enabled yes +pod2man enabled yes +makeinfo enabled no +makeinfo supports HTML no +xmllint enabled no + +External libraries: +iconv libsrt libx265 +libaom libsvtav1 libxvid +libdav1d libtheora libzimg +libfdk_aac libvidstab lv2 +libmp3lame libvorbis openssl +libopencore_amrnb libvpx sdl2 +libopencore_amrwb libwebp zlib +libopus libx264 + +External libraries providing hardware acceleration: +amf v4l2_m2m vaapi + +Libraries: +avcodec avformat swresample +avdevice avutil swscale +avfilter postproc + +Programs: +ffmpeg ffplay ffprobe + +Enabled decoders: +aac flic pfm +aac_fixed flv pgm +aac_latm fmvc pgmyuv +aasc fourxm pgssub +ac3 fraps pgx +ac3_fixed frwu phm +acelp_kelvin ftr photocd +adpcm_4xm g2m pictor +adpcm_adx g723_1 pixlet +adpcm_afc g729 pjs +adpcm_agm gdv png +adpcm_aica gem ppm +adpcm_argo gif prores +adpcm_ct gremlin_dpcm prosumer +adpcm_dtk gsm psd +adpcm_ea gsm_ms ptx +adpcm_ea_maxis_xa h261 qcelp +adpcm_ea_r1 h263 qdm2 +adpcm_ea_r2 h263_v4l2m2m qdmc +adpcm_ea_r3 h263i qdraw +adpcm_ea_xas h263p qoi +adpcm_g722 h264 qpeg +adpcm_g726 h264_v4l2m2m qtrle +adpcm_g726le hap r10k +adpcm_ima_acorn hca r210 +adpcm_ima_alp hcom ra_144 +adpcm_ima_amv hdr ra_288 +adpcm_ima_apc hevc ralf +adpcm_ima_apm hevc_v4l2m2m rasc +adpcm_ima_cunning hnm4_video rawvideo +adpcm_ima_dat4 hq_hqa realtext +adpcm_ima_dk3 hqx rka +adpcm_ima_dk4 huffyuv rl2 +adpcm_ima_ea_eacs hymt roq +adpcm_ima_ea_sead iac roq_dpcm +adpcm_ima_iss idcin rpza +adpcm_ima_moflex idf rscc +adpcm_ima_mtf iff_ilbm rv10 +adpcm_ima_oki ilbc rv20 +adpcm_ima_qt imc rv30 +adpcm_ima_rad imm4 rv40 +adpcm_ima_smjpeg imm5 s302m +adpcm_ima_ssi indeo2 sami +adpcm_ima_wav indeo3 sanm +adpcm_ima_ws indeo4 sbc +adpcm_ms indeo5 scpr +adpcm_mtaf interplay_acm screenpresso +adpcm_psx interplay_dpcm sdx2_dpcm +adpcm_sbpro_2 interplay_video sga +adpcm_sbpro_3 ipu sgi +adpcm_sbpro_4 jacosub sgirle +adpcm_swf jpeg2000 sheervideo +adpcm_thp jpegls shorten +adpcm_thp_le jv simbiosis_imx +adpcm_vima kgv1 sipr +adpcm_xa kmvc siren +adpcm_xmd lagarith smackaud +adpcm_yamaha libaom_av1 smacker +adpcm_zork libdav1d smc +agm libfdk_aac smvjpeg +aic libopencore_amrnb snow +alac libopencore_amrwb sol_dpcm +alias_pix libopus sonic +als libvorbis sp5x +amrnb libvpx_vp8 speedhq +amrwb libvpx_vp9 speex +amv loco srgc +anm lscr srt +ansi m101 ssa +anull mace3 stl +apac mace6 subrip +ape magicyuv subviewer +apng mdec subviewer1 +aptx media100 sunrast +aptx_hd metasound svq1 +arbc microdvd svq3 +argo mimic tak +ass misc4 targa +asv1 mjpeg targa_y216 +asv2 mjpegb tdsc +atrac1 mlp text +atrac3 mmvideo theora +atrac3al mobiclip thp +atrac3p motionpixels tiertexseqvideo +atrac3pal movtext tiff +atrac9 mp1 tmv +aura mp1float truehd +aura2 mp2 truemotion1 +av1 mp2float truemotion2 +avrn mp3 truemotion2rt +avrp mp3adu truespeech +avs mp3adufloat tscc +avui mp3float tscc2 +ayuv mp3on4 tta +bethsoftvid mp3on4float twinvq +bfi mpc7 txd +bink mpc8 ulti +binkaudio_dct mpeg1_v4l2m2m utvideo +binkaudio_rdft mpeg1video v210 +bintext mpeg2_v4l2m2m v210x +bitpacked mpeg2video v308 +bmp mpeg4 v408 +bmv_audio mpeg4_v4l2m2m v410 +bmv_video mpegvideo vb +bonk mpl2 vble +brender_pix msa1 vbn +c93 mscc vc1 +cavs msmpeg4v1 vc1_v4l2m2m +cbd2_dpcm msmpeg4v2 vc1image +ccaption msmpeg4v3 vcr1 +cdgraphics msnsiren vmdaudio +cdtoons msp2 vmdvideo +cdxl msrle vmnc +cfhd mss1 vnull +cinepak mss2 vorbis +clearvideo msvideo1 vp3 +cljr mszh vp4 +cllc mts2 vp5 +comfortnoise mv30 vp6 +cook mvc1 vp6a +cpia mvc2 vp6f +cri mvdv vp7 +cscd mvha vp8 +cyuv mwsc vp8_v4l2m2m +dca mxpeg vp9 +dds nellymoser vp9_v4l2m2m +derf_dpcm notchlc vplayer +dfa nuv vqa +dfpwm on2avc vqc +dirac opus wady_dpcm +dnxhd paf_audio wavarc +dolby_e paf_video wavpack +dpx pam wbmp +dsd_lsbf pbm wcmv +dsd_lsbf_planar pcm_alaw webp +dsd_msbf pcm_bluray webvtt +dsd_msbf_planar pcm_dvd wmalossless +dsicinaudio pcm_f16le wmapro +dsicinvideo pcm_f24le wmav1 +dss_sp pcm_f32be wmav2 +dst pcm_f32le wmavoice +dvaudio pcm_f64be wmv1 +dvbsub pcm_f64le wmv2 +dvdsub pcm_lxf wmv3 +dvvideo pcm_mulaw wmv3image +dxa pcm_s16be wnv1 +dxtory pcm_s16be_planar wrapped_avframe +dxv pcm_s16le ws_snd1 +eac3 pcm_s16le_planar xan_dpcm +eacmv pcm_s24be xan_wc3 +eamad pcm_s24daud xan_wc4 +eatgq pcm_s24le xbin +eatgv pcm_s24le_planar xbm +eatqi pcm_s32be xface +eightbps pcm_s32le xl +eightsvx_exp pcm_s32le_planar xma1 +eightsvx_fib pcm_s64be xma2 +escape124 pcm_s64le xpm +escape130 pcm_s8 xsub +evrc pcm_s8_planar xwd +exr pcm_sga y41p +fastaudio pcm_u16be ylc +ffv1 pcm_u16le yop +ffvhuff pcm_u24be yuv4 +ffwavesynth pcm_u24le zero12v +fic pcm_u32be zerocodec +fits pcm_u32le zlib +flac pcm_u8 zmbv +flashsv pcm_vidc +flashsv2 pcx + +Enabled encoders: +a64multi huffyuv pcm_vidc +a64multi5 jpeg2000 pcx +aac jpegls pfm +ac3 libaom_av1 pgm +ac3_fixed libfdk_aac pgmyuv +adpcm_adx libmp3lame phm +adpcm_argo libopencore_amrnb png +adpcm_g722 libopus ppm +adpcm_g726 libsvtav1 prores +adpcm_g726le libtheora prores_aw +adpcm_ima_alp libvorbis prores_ks +adpcm_ima_amv libvpx_vp8 qoi +adpcm_ima_apm libvpx_vp9 qtrle +adpcm_ima_qt libwebp r10k +adpcm_ima_ssi libwebp_anim r210 +adpcm_ima_wav libx264 ra_144 +adpcm_ima_ws libx264rgb rawvideo +adpcm_ms libx265 roq +adpcm_swf libxvid roq_dpcm +adpcm_yamaha ljpeg rpza +alac magicyuv rv10 +alias_pix mjpeg rv20 +amv mjpeg_vaapi s302m +anull mlp sbc +apng movtext sgi +aptx mp2 smc +aptx_hd mp2fixed snow +ass mpeg1video sonic +asv1 mpeg2_vaapi sonic_ls +asv2 mpeg2video speedhq +av1_amf mpeg4 srt +avrp mpeg4_v4l2m2m ssa +avui msmpeg4v2 subrip +ayuv msmpeg4v3 sunrast +bitpacked msvideo1 svq1 +bmp nellymoser targa +cfhd opus text +cinepak pam tiff +cljr pbm truehd +comfortnoise pcm_alaw tta +dca pcm_bluray ttml +dfpwm pcm_dvd utvideo +dnxhd pcm_f32be v210 +dpx pcm_f32le v308 +dvbsub pcm_f64be v408 +dvdsub pcm_f64le v410 +dvvideo pcm_mulaw vbn +eac3 pcm_s16be vc2 +exr pcm_s16be_planar vnull +ffv1 pcm_s16le vorbis +ffvhuff pcm_s16le_planar vp8_v4l2m2m +fits pcm_s24be vp8_vaapi +flac pcm_s24daud vp9_vaapi +flashsv pcm_s24le wavpack +flashsv2 pcm_s24le_planar wbmp +flv pcm_s32be webvtt +g723_1 pcm_s32le wmav1 +gif pcm_s32le_planar wmav2 +h261 pcm_s64be wmv1 +h263 pcm_s64le wmv2 +h263_v4l2m2m pcm_s8 wrapped_avframe +h263p pcm_s8_planar xbm +h264_amf pcm_u16be xface +h264_v4l2m2m pcm_u16le xsub +h264_vaapi pcm_u24be xwd +hdr pcm_u24le y41p +hevc_amf pcm_u32be yuv4 +hevc_v4l2m2m pcm_u32le zlib +hevc_vaapi pcm_u8 zmbv + +Enabled hwaccels: +av1_vaapi mjpeg_vaapi vp8_vaapi +h263_vaapi mpeg2_vaapi vp9_vaapi +h264_vaapi mpeg4_vaapi wmv3_vaapi +hevc_vaapi vc1_vaapi + +Enabled parsers: +aac dvdsub opus +aac_latm flac png +ac3 ftr pnm +adx g723_1 qoi +amr g729 rv30 +av1 gif rv40 +avs2 gsm sbc +avs3 h261 sipr +bmp h263 tak +cavsvideo h264 vc1 +cook hdr vorbis +cri hevc vp3 +dca ipu vp8 +dirac jpeg2000 vp9 +dnxhd misc4 webp +dolby_e mjpeg xbm +dpx mlp xma +dvaudio mpeg4video xwd +dvbsub mpegaudio +dvd_nav mpegvideo + +Enabled demuxers: +aa idf pcm_s16be +aac iff pcm_s16le +aax ifv pcm_s24be +ac3 ilbc pcm_s24le +ace image2 pcm_s32be +acm image2_alias_pix pcm_s32le +act image2_brender_pix pcm_s8 +adf image2pipe pcm_u16be +adp image_bmp_pipe pcm_u16le +ads image_cri_pipe pcm_u24be +adx image_dds_pipe pcm_u24le +aea image_dpx_pipe pcm_u32be +afc image_exr_pipe pcm_u32le +aiff image_gem_pipe pcm_u8 +aix image_gif_pipe pcm_vidc +alp image_hdr_pipe pjs +amr image_j2k_pipe pmp +amrnb image_jpeg_pipe pp_bnk +amrwb image_jpegls_pipe pva +anm image_jpegxl_pipe pvf +apac image_pam_pipe qcp +apc image_pbm_pipe r3d +ape image_pcx_pipe rawvideo +apm image_pfm_pipe realtext +apng image_pgm_pipe redspark +aptx image_pgmyuv_pipe rka +aptx_hd image_pgx_pipe rl2 +aqtitle image_phm_pipe rm +argo_asf image_photocd_pipe roq +argo_brp image_pictor_pipe rpl +argo_cvg image_png_pipe rsd +asf image_ppm_pipe rso +asf_o image_psd_pipe rtp +ass image_qdraw_pipe rtsp +ast image_qoi_pipe s337m +au image_sgi_pipe sami +av1 image_sunrast_pipe sap +avi image_svg_pipe sbc +avr image_tiff_pipe sbg +avs image_vbn_pipe scc +avs2 image_webp_pipe scd +avs3 image_xbm_pipe sdns +bethsoftvid image_xpm_pipe sdp +bfi image_xwd_pipe sdr2 +bfstm ingenient sds +bink ipmovie sdx +binka ipu segafilm +bintext ircam ser +bit iss sga +bitpacked iv8 shorten +bmv ivf siff +boa ivr simbiosis_imx +bonk jacosub sln +brstm jv smacker +c93 kux smjpeg +caf kvag smush +cavsvideo laf sol +cdg live_flv sox +cdxl lmlm4 spdif +cine loas srt +codec2 lrc stl +codec2raw luodat str +concat lvf subviewer +data lxf subviewer1 +daud m4v sup +dcstr matroska svag +derf mca svs +dfa mcc swf +dfpwm mgsts tak +dhav microdvd tedcaptions +dirac mjpeg thp +dnxhd mjpeg_2000 threedostr +dsf mlp tiertexseq +dsicin mlv tmv +dss mm truehd +dts mmf tta +dtshd mods tty +dv moflex txd +dvbsub mov ty +dvbtxt mp3 v210 +dxa mpc v210x +ea mpc8 vag +ea_cdata mpegps vc1 +eac3 mpegts vc1t +epaf mpegtsraw vividas +ffmetadata mpegvideo vivo +filmstrip mpjpeg vmd +fits mpl2 vobsub +flac mpsub voc +flic msf vpk +flv msnwc_tcp vplayer +fourxm msp vqf +frm mtaf w64 +fsb mtv wady +fwse musx wav +g722 mv wavarc +g723_1 mvi wc3 +g726 mxf webm_dash_manifest +g726le mxg webvtt +g729 nc wsaud +gdv nistsphere wsd +genh nsp wsvqa +gif nsv wtv +gsm nut wv +gxf nuv wve +h261 obu xa +h263 ogg xbin +h264 oma xmd +hca paf xmv +hcom pcm_alaw xvag +hevc pcm_f32be xwma +hls pcm_f32le yop +hnm pcm_f64be yuv4mpegpipe +ico pcm_f64le +idcin pcm_mulaw + +Enabled muxers: +a64 h263 pcm_s16le +ac3 h264 pcm_s24be +adts hash pcm_s24le +adx hds pcm_s32be +aiff hevc pcm_s32le +alp hls pcm_s8 +amr ico pcm_u16be +amv ilbc pcm_u16le +apm image2 pcm_u24be +apng image2pipe pcm_u24le +aptx ipod pcm_u32be +aptx_hd ircam pcm_u32le +argo_asf ismv pcm_u8 +argo_cvg ivf pcm_vidc +asf jacosub psp +asf_stream kvag rawvideo +ass latm rm +ast lrc roq +au m4v rso +avi matroska rtp +avif matroska_audio rtp_mpegts +avm2 md5 rtsp +avs2 microdvd sap +avs3 mjpeg sbc +bit mkvtimestamp_v2 scc +caf mlp segafilm +cavsvideo mmf segment +codec2 mov smjpeg +codec2raw mp2 smoothstreaming +crc mp3 sox +dash mp4 spdif +data mpeg1system spx +daud mpeg1vcd srt +dfpwm mpeg1video stream_segment +dirac mpeg2dvd streamhash +dnxhd mpeg2svcd sup +dts mpeg2video swf +dv mpeg2vob tee +eac3 mpegts tg2 +f4v mpjpeg tgp +ffmetadata mxf truehd +fifo mxf_d10 tta +fifo_test mxf_opatom ttml +filmstrip null uncodedframecrc +fits nut vc1 +flac obu vc1t +flv oga voc +framecrc ogg w64 +framehash ogv wav +framemd5 oma webm +g722 opus webm_chunk +g723_1 pcm_alaw webm_dash_manifest +g726 pcm_f32be webp +g726le pcm_f32le webvtt +gif pcm_f64be wsaud +gsm pcm_f64le wtv +gxf pcm_mulaw wv +h261 pcm_s16be yuv4mpegpipe + +Enabled protocols: +async http rtmps +cache httpproxy rtmpt +concat https rtmpte +concatf icecast rtmpts +crypto ipfs_gateway rtp +data ipns_gateway srtp +fd libsrt subfile +ffrtmpcrypt md5 tcp +ffrtmphttp mmsh tee +file mmst tls +ftp pipe udp +gopher prompeg udplite +gophers rtmp unix +hls rtmpe + +Enabled filters: +a3dscope datascope pad +abench dblur pal100bars +abitscope dcshift pal75bars +acompressor dctdnoiz palettegen +acontrast deband paletteuse +acopy deblock pan +acrossfade decimate perms +acrossover deconvolve perspective +acrusher dedot phase +acue deesser photosensitivity +addroi deflate pixdesctest +adeclick deflicker pixelize +adeclip deinterlace_vaapi pixscope +adecorrelate dejudder pp +adelay delogo pp7 +adenorm denoise_vaapi premultiply +aderivative derain prewitt +adrawgraph deshake procamp_vaapi +adrc despill pseudocolor +adynamicequalizer detelecine psnr +adynamicsmooth dialoguenhance pullup +aecho dilation qp +aemphasis displace random +aeval dnn_classify readeia608 +aevalsrc dnn_detect readvitc +aexciter dnn_processing realtime +afade doubleweave remap +afdelaysrc drawbox removegrain +afftdn drawgraph removelogo +afftfilt drawgrid repeatfields +afifo drmeter replaygain +afir dynaudnorm reverse +afirsrc earwax rgbashift +aformat ebur128 rgbtestsrc +afreqshift edgedetect roberts +afwtdn elbg rotate +agate entropy sab +agraphmonitor epx scale +ahistogram eq scale2ref +aiir equalizer scale_vaapi +aintegral erosion scdet +ainterleave estdif scharr +alatency exposure scroll +alimiter extractplanes segment +allpass extrastereo select +allrgb fade selectivecolor +allyuv feedback sendcmd +aloop fftdnoiz separatefields +alphaextract fftfilt setdar +alphamerge field setfield +amerge fieldhint setparams +ametadata fieldmatch setpts +amix fieldorder setrange +amovie fifo setsar +amplify fillborders settb +amultiply find_rect sharpness_vaapi +anequalizer firequalizer shear +anlmdn flanger showcqt +anlmf floodfill showcwt +anlms format showfreqs +anoisesrc fps showinfo +anull framepack showpalette +anullsink framerate showspatial +anullsrc framestep showspectrum +apad freezedetect showspectrumpic +aperms freezeframes showvolume +aphasemeter fspp showwaves +aphaser gblur showwavespic +aphaseshift geq shuffleframes +apsyclip gradfun shufflepixels +apulsator gradients shuffleplanes +arealtime graphmonitor sidechaincompress +aresample grayworld sidechaingate +areverse greyedge sidedata +arnndn guided sierpinski +asdr haas signalstats +asegment haldclut signature +aselect haldclutsrc silencedetect +asendcmd hdcd silenceremove +asetnsamples headphone sinc +asetpts hflip sine +asetrate highpass siti +asettb highshelf smartblur +ashowinfo hilbert smptebars +asidedata histeq smptehdbars +asoftclip histogram sobel +aspectralstats hqdn3d spectrumsynth +asplit hqx speechnorm +astats hstack split +astreamselect hstack_vaapi spp +asubboost hsvhold sr +asubcut hsvkey ssim +asupercut hue ssim360 +asuperpass huesaturation stereo3d +asuperstop hwdownload stereotools +atadenoise hwmap stereowiden +atempo hwupload streamselect +atilt hysteresis super2xsai +atrim identity superequalizer +avectorscope idet surround +avgblur il swaprect +avsynctest inflate swapuv +axcorrelate interlace tblend +backgroundkey interleave telecine +bandpass join testsrc +bandreject kerndeint testsrc2 +bass kirsch thistogram +bbox lagfun threshold +bench latency thumbnail +bilateral lenscorrection tile +biquad life tiltshelf +bitplanenoise limitdiff tinterlace +blackdetect limiter tlut2 +blackframe loop tmedian +blend loudnorm tmidequalizer +blockdetect lowpass tmix +blurdetect lowshelf tonemap +bm3d lumakey tonemap_vaapi +boxblur lut tpad +bwdif lut1d transpose +cas lut2 transpose_vaapi +cellauto lut3d treble +channelmap lutrgb tremolo +channelsplit lutyuv trim +chorus lv2 unpremultiply +chromahold mandelbrot unsharp +chromakey maskedclamp untile +chromanr maskedmax v360 +chromashift maskedmerge vaguedenoiser +ciescope maskedmin varblur +codecview maskedthreshold vectorscope +color maskfun vflip +colorbalance mcompand vfrdet +colorchannelmixer median vibrance +colorchart mergeplanes vibrato +colorcontrast mestimate vidstabdetect +colorcorrect metadata vidstabtransform +colorhold midequalizer vif +colorize minterpolate vignette +colorkey mix virtualbass +colorlevels monochrome vmafmotion +colormap morpho volume +colormatrix movie volumedetect +colorspace mpdecimate vstack +colorspectrum mptestsrc vstack_vaapi +colortemperature msad w3fdif compand multiply waveform compensationdelay negate weave concat nlmeans xbr From 26020e05bc913562025485d1bb95f54e499a5abf Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 2 Mar 2023 12:32:49 +0100 Subject: [PATCH 074/146] Linux Build update --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8cd080da..0f5ee699 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ on: jobs: build-linux: name: build in native linux - runs-on: ubuntu-22.04 + runs-on: ubuntu-22.10 steps: - name: Checkout code uses: actions/checkout@v2 From e1ee4d1551a67c9332cf4b8ee6400cef28d4839c Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 2 Mar 2023 14:10:49 +0100 Subject: [PATCH 075/146] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f5ee699..8cd080da 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ on: jobs: build-linux: name: build in native linux - runs-on: ubuntu-22.10 + runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v2 From 330f08b3f203e2379dc52923fb1f3513b36b223d Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 2 Mar 2023 14:30:47 +0100 Subject: [PATCH 076/146] dav1d 1.1.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 79c33082..f1df0d96 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -455,7 +455,7 @@ if command_exists "python3"; then fi if command_exists "meson"; then if build "dav1d" "1.1.0"; then - download "https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.1.0.tar.gz" + download "https://code.videolan.org/videolan/dav1d/-/archive/1.1.0/dav1d-1.1.0.tar.gz" make_dir build CFLAGSBACKUP=$CFLAGS From 5ee28a2dec8cbfbef1003a715144d0a910893af3 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Sun, 5 Mar 2023 20:05:24 +0100 Subject: [PATCH 077/146] Update Docker command --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 568ee72c..58fb0c11 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ These builds are always built with the --enable-gpl-and-non-free switch, as CUDA ```bash ## Start the build -$ docker build --tag=ffmpeg:cuda-$DIST -f cuda-ubunu.dockerfile --build-arg . +$ docker build --tag=ffmpeg:cuda --output type=local,dest=build -f cuda-ubuntu.dockerfile . ``` Build an `export.dockerfile` that copies only what you need from the image you just built as follows. When running, @@ -161,7 +161,7 @@ matched the operating system and version, it should work well with dynamic links the `export.dockerfile` and copy the necessary libraries and try again. ```bash -$ docker build --output type=local,dest=build -f export.dockerfile --build-arg DIST=$DIST . +$ docker build --output type=local,dest=build -f export.dockerfile . $ ls build bin lib $ ls build/bin From e9f442528d463883fc5bfd485ba1915616cd3551 Mon Sep 17 00:00:00 2001 From: Michael Rienstra Date: Sun, 2 Apr 2023 15:05:25 -0700 Subject: [PATCH 078/146] Formatted with `foxundermoon/vs-shell-format` Formatted with [foxundermoon/vs-shell-format](https://github.com/foxundermoon/vs-shell-format) (VS Code extension). Fixed indenting, replaced a few tabs with spaces, very few other changes. --- build-ffmpeg | 144 +++++++++++++++++++++++++-------------------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index f1df0d96..ba6e08b6 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -169,7 +169,7 @@ library_exists() { } build_done() { - echo "$2" > "$PACKAGES/$1.done" + echo "$2" >"$PACKAGES/$1.done" } verify_binary_type() { @@ -311,10 +311,10 @@ fi if build "giflib" "5.2.1"; then download "https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz" - if [[ "$OSTYPE" == "darwin"* ]]; then - download "https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/c323/attachment/Makefile.patch" - execute patch -p0 --forward "${PACKAGES}/giflib-5.2.1/Makefile" "${PACKAGES}/Makefile.patch" || true - fi + if [[ "$OSTYPE" == "darwin"* ]]; then + download "https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/c323/attachment/Makefile.patch" + execute patch -p0 --forward "${PACKAGES}/giflib-5.2.1/Makefile" "${PACKAGES}/Makefile.patch" || true + fi cd "${PACKAGES}"/giflib-5.2.1 || exit #multicore build disabled for this library execute make @@ -417,16 +417,16 @@ else build_done "nettle" "3.8.1" fi -if [[ ! $ARCH == 'arm64' ]]; then - if build "gnutls" "3.7.9"; then - download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.9.tar.xz" - execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" - execute make -j $MJOBS - execute make install - build_done "gnutls" "3.7.9" + if [[ ! $ARCH == 'arm64' ]]; then + if build "gnutls" "3.7.9"; then + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.9.tar.xz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" + execute make -j $MJOBS + execute make install + build_done "gnutls" "3.7.9" + fi + # CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi - # CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") -fi fi if build "cmake" "3.25.1"; then @@ -450,27 +450,27 @@ if command_exists "python3"; then if ! command_exists ${r}; then execute pip3 install ${r} --quiet --upgrade --no-cache-dir --disable-pip-version-check fi - export PATH=$PATH:~/Library/Python/3.9/bin + export PATH=$PATH:~/Library/Python/3.9/bin done fi if command_exists "meson"; then if build "dav1d" "1.1.0"; then download "https://code.videolan.org/videolan/dav1d/-/archive/1.1.0/dav1d-1.1.0.tar.gz" make_dir build - + CFLAGSBACKUP=$CFLAGS if $MACOS_M1; then export CFLAGS="-arch arm64" fi - + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install - + if $MACOS_M1; then export CFLAGS=$CFLAGSBACKUP fi - + build_done "dav1d" "1.1.0" fi CONFIGURE_OPTIONS+=("--enable-libdav1d") @@ -487,7 +487,7 @@ if ! $MACOS_M1; then execute make install execute cp SvtAv1Enc.pc "${WORKSPACE}/lib/pkgconfig/" execute cp SvtAv1Dec.pc "${WORKSPACE}/lib/pkgconfig/" - build_done "svtav1" "1.4.1"; + build_done "svtav1" "1.4.1" fi CONFIGURE_OPTIONS+=("--enable-libsvtav1") fi @@ -658,59 +658,59 @@ CONFIGURE_OPTIONS+=("--enable-libzimg") if command_exists "python3"; then - if command_exists "meson"; then + if command_exists "meson"; then - if build "lv2" "1.18.10"; then - download "https://lv2plug.in/spec/lv2-1.18.10.tar.xz" "lv2-1.18.10.tar.xz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "lv2" "1.18.10" - fi - if build "waflib" "b600c92"; then - download "https://gitlab.com/drobilla/autowaf/-/archive/b600c928b221a001faeab7bd92786d0b25714bc8/autowaf-b600c928b221a001faeab7bd92786d0b25714bc8.tar.gz" "autowaf.tar.gz" - build_done "waflib" "b600c92" - fi - if build "serd" "0.30.16"; then - download "https://gitlab.com/drobilla/serd/-/archive/v0.30.16/serd-v0.30.16.tar.gz" "serd-v0.30.16.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "serd" "0.30.16" - fi - if build "pcre" "8.45"; then - download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz" "pcre-8.45.tar.gz" - execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static - execute make -j $MJOBS - execute make install - build_done "pcre" "8.45" - fi - if build "sord" "0.16.14"; then - download "https://gitlab.com/drobilla/sord/-/archive/v0.16.14/sord-v0.16.14.tar.gz" "sord-v0.16.14.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "sord" "0.16.14" - fi - if build "sratom" "0.6.14"; then - download "https://gitlab.com/lv2/sratom/-/archive/v0.6.14/sratom-v0.6.14.tar.gz" "sratom-v0.6.14.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "sratom" "0.6.14" - fi - if build "lilv" "0.24.20"; then - download "https://gitlab.com/lv2/lilv/-/archive/v0.24.20/lilv-v0.24.20.tar.gz" "lilv-v0.24.20.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "lilv" "0.24.20" - fi - CFLAGS+=" -I$WORKSPACE/include/lilv-0" + if build "lv2" "1.18.10"; then + download "https://lv2plug.in/spec/lv2-1.18.10.tar.xz" "lv2-1.18.10.tar.xz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "lv2" "1.18.10" + fi + if build "waflib" "b600c92"; then + download "https://gitlab.com/drobilla/autowaf/-/archive/b600c928b221a001faeab7bd92786d0b25714bc8/autowaf-b600c928b221a001faeab7bd92786d0b25714bc8.tar.gz" "autowaf.tar.gz" + build_done "waflib" "b600c92" + fi + if build "serd" "0.30.16"; then + download "https://gitlab.com/drobilla/serd/-/archive/v0.30.16/serd-v0.30.16.tar.gz" "serd-v0.30.16.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "serd" "0.30.16" + fi + if build "pcre" "8.45"; then + download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz" "pcre-8.45.tar.gz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static + execute make -j $MJOBS + execute make install + build_done "pcre" "8.45" + fi + if build "sord" "0.16.14"; then + download "https://gitlab.com/drobilla/sord/-/archive/v0.16.14/sord-v0.16.14.tar.gz" "sord-v0.16.14.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "sord" "0.16.14" + fi + if build "sratom" "0.6.14"; then + download "https://gitlab.com/lv2/sratom/-/archive/v0.6.14/sratom-v0.6.14.tar.gz" "sratom-v0.6.14.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "sratom" "0.6.14" + fi + if build "lilv" "0.24.20"; then + download "https://gitlab.com/lv2/lilv/-/archive/v0.24.20/lilv-v0.24.20.tar.gz" "lilv-v0.24.20.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "lilv" "0.24.20" + fi + CFLAGS+=" -I$WORKSPACE/include/lilv-0" - CONFIGURE_OPTIONS+=("--enable-lv2") + CONFIGURE_OPTIONS+=("--enable-lv2") -fi + fi fi if build "opencore" "0.1.6"; then @@ -766,7 +766,7 @@ if build "libtheora" "1.1.1"; then sed "s/-fforce-addr//g" configure >configure.patched chmod +x configure.patched mv configure.patched configure - + if ! $MACOS_M1; then ##BEGIN CONFIG.GUESS PATCH -- Updating config.guess file. Which allowed me to compile on aarch64 (ARMv8) [linux kernel 4.9 Ubuntu 20.04] rm config.guess @@ -774,7 +774,7 @@ if build "libtheora" "1.1.1"; then chmod +x config.guess ##END OF CONFIG.GUESS PATCH fi - + execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --with-vorbis-libraries="${WORKSPACE}"/lib --with-vorbis-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec execute make -j $MJOBS execute make install From 0a7f3a2d3d501d7d60fd17ff0978d3bf4703d577 Mon Sep 17 00:00:00 2001 From: nabe-abk <339449+nabe-abk@users.noreply.github.com> Date: Wed, 5 Apr 2023 14:32:28 +0900 Subject: [PATCH 079/146] Fix build-ffmpeg, 'sratom' build fails on Debian 11 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index f1df0d96..c027ae72 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -278,7 +278,7 @@ mkdir -p "$PACKAGES" mkdir -p "$WORKSPACE" export PATH="${WORKSPACE}/bin:$PATH" -PKG_CONFIG_PATH="/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig" +PKG_CONFIG_PATH="$WORKSPACE/lib/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig" PKG_CONFIG_PATH+=":/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib64/pkgconfig" export PKG_CONFIG_PATH From 6d40ffa7a9edf1598bb7ad86cc0fdd14247046c4 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 1 May 2023 19:58:42 +0200 Subject: [PATCH 080/146] Version 1.45 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 357b140c..5bc91684 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.44 +SCRIPT_VERSION=1.45 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 7d0268ca0f5e7cef00dbbd3b013f4af4669ead31 Mon Sep 17 00:00:00 2001 From: jtbr Date: Tue, 13 Jun 2023 13:56:38 +0200 Subject: [PATCH 081/146] Fixes to build nvidia filters and decoders --- README.md | 6 ++++-- build-ffmpeg | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 58fb0c11..b0816c9c 100644 --- a/README.md +++ b/README.md @@ -217,9 +217,11 @@ $ ./build-ffmpeg --build ## Cuda installation CUDA is a parallel computing platform developed by NVIDIA. To be able to compile ffmpeg with CUDA support, you first -need a compatible NVIDIA GPU. +need a compatible NVIDIA GPU and the NVIDIA compiler nvcc from the CUDA toolkit. -- Ubuntu: To install the CUDA toolkit on Ubuntu, run "sudo apt install nvidia-cuda-toolkit" +- Ubuntu: To install the CUDA toolkit on Ubuntu, run `sudo apt install nvidia-cuda-toolkit`. + After compilation, you can `sudo apt install nvidia-cuda-dev && sudo apt remove nvidia-cuda-toolkit`. + This removes the compilers but leaves the needed shared library `libnpp`. - Other Linux distributions: Once you have the GPU and display driver installed, you can follow the [official instructions](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) or [this blog](https://www.pugetsystems.com/labs/hpc/How-To-Install-CUDA-10-1-on-Ubuntu-19-04-1405/) diff --git a/build-ffmpeg b/build-ffmpeg index 5bc91684..d9339e3d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -873,12 +873,12 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then if build "nv-codec" "11.1.5.2"; then download "https://github.com/FFmpeg/nv-codec-headers/releases/download/n11.1.5.2/nv-codec-headers-11.1.5.2.tar.gz" execute make PREFIX="${WORKSPACE}" - execute make PREFIX="${WORKSPACE}/usr" install + execute make PREFIX="${WORKSPACE}" install build_done "nv-codec" "11.1.5.2" fi CFLAGS+=" -I/usr/local/cuda/include" LDFLAGS+=" -L/usr/local/cuda/lib64" - CONFIGURE_OPTIONS+=("--enable-cuda-nvcc" "--enable-cuvid" "--enable-nvenc" "--enable-cuda-llvm") + CONFIGURE_OPTIONS+=("--enable-cuda-nvcc" "--enable-cuvid" "--enable-nvdec" "--enable-nvenc" "--enable-cuda-llvm" "--enable-ffnvcodec") if [ -z "$LDEXEFLAGS" ]; then CONFIGURE_OPTIONS+=("--enable-libnpp") # Only libnpp cannot be statically linked. @@ -886,6 +886,8 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then # https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ CONFIGURE_OPTIONS+=("--nvccflags=-gencode arch=compute_52,code=sm_52") + else + CONFIGURE_OPTIONS+=("--disable-ffnvcodec") fi # Vaapi doesn't work well with static links FFmpeg. @@ -927,9 +929,7 @@ download "https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/$FFMPEG_VE --disable-shared \ --enable-pthreads \ --enable-static \ - --enable-small \ --enable-version3 \ - --disable-ffnvcodec \ --extra-cflags="${CFLAGS}" \ --extra-ldexeflags="${LDEXEFLAGS}" \ --extra-ldflags="${LDFLAGS}" \ From 0d114a02cf5645d73ea30b7e5a23d29215c570a5 Mon Sep 17 00:00:00 2001 From: jtbr Date: Tue, 13 Jun 2023 14:01:46 +0200 Subject: [PATCH 082/146] Make small (rather than fast) build an option --- build-ffmpeg | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index d9339e3d..dbe0e2d4 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -17,6 +17,7 @@ MACOS_M1=false CONFIGURE_OPTIONS=() NONFREE_AND_GPL=false LATEST=false +MANPAGES=1 # Check for Apple Silicon if [[ ("$(uname -m)" == "arm64") && ("$OSTYPE" == "darwin"*) ]]; then @@ -206,6 +207,7 @@ usage() { echo " -c, --cleanup Remove all working dirs" echo " --latest Build latest version of dependencies if newer available" echo " --full-static Build a full static FFmpeg binary (eg. glibc, pthreads etc...) **only Linux**" + echo " --small Prioritize small size over speed and usability; don't build manpages" echo " Note: Because of the NSS (Name Service Switch), glibc does not recommend static links." echo "" } @@ -247,6 +249,10 @@ while (($# > 0)); do if [[ "$1" == "--latest" ]]; then LATEST=true fi + if [[ "$1" == "--small" ]]; then + CONFIGURE_OPTIONS+=("--enable-small" "--disable-doc") + MANPAGES=0 + fi shift ;; *) @@ -925,7 +931,6 @@ download "https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/$FFMPEG_VE # shellcheck disable=SC2086 ./configure "${CONFIGURE_OPTIONS[@]}" \ --disable-debug \ - --disable-doc \ --disable-shared \ --enable-pthreads \ --enable-static \ From c700436e6dac8c33d79a48e253db57be288ae06b Mon Sep 17 00:00:00 2001 From: jtbr Date: Tue, 13 Jun 2023 14:04:58 +0200 Subject: [PATCH 083/146] Consolidate ffmpeg install code, fix install prompt, install manpages when built, use sudo only when needed, workaround ffmpeg version build due to .git dir, use local rather than system installation directories if they exist --- README.md | 1 + build-ffmpeg | 67 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b0816c9c..3e99daff 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ Options: --latest Build latest version of dependencies if newer available -c, --cleanup Remove all working dirs --full-static Complete static build of ffmpeg (eg. glibc, pthreads etc...) **only Linux** + --small Prioritize small size over speed and usability; don't build manpages. Note: Because of the NSS (Name Service Switch), glibc does not recommend static links. ``` diff --git a/build-ffmpeg b/build-ffmpeg index dbe0e2d4..4b7b8c39 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -926,6 +926,12 @@ if [[ "$OSTYPE" == "darwin"* ]]; then EXTRA_VERSION="${FFMPEG_VERSION}" fi +if [ -d "$CWD/.git" ]; then + echo -e "\nTemporarily moving .git dir to .git.bak to workaround ffmpeg build bug" #causing ffmpeg version number to be wrong + mv "$CWD/.git" "$CWD/.git.bak" + # if build fails below, .git will remain in the wrong place... +fi + build "ffmpeg" "$FFMPEG_VERSION" download "https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/$FFMPEG_VERSION.tar.gz" "FFmpeg-release-$FFMPEG_VERSION.tar.gz" # shellcheck disable=SC2086 @@ -947,9 +953,19 @@ download "https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/$FFMPEG_VE execute make -j $MJOBS execute make install -INSTALL_FOLDER="/usr/bin" +if [ -d "$CWD/.git.bak" ]; then + mv "$CWD/.git.bak" "$CWD/.git" +fi + +INSTALL_FOLDER="/usr" # not recommended, overwrites system ffmpeg package if [[ "$OSTYPE" == "darwin"* ]]; then - INSTALL_FOLDER="/usr/local/bin" + INSTALL_FOLDER="/usr/local" +else + if [ -d "$HOME/.local" ]; then # systemd-standard user path + INSTALL_FOLDER="$HOME/.local" + elif [ -d "/usr/local" ]; then + INSTALL_FOLDER="/usr/local" + fi fi verify_binary_type @@ -961,34 +977,37 @@ echo "- ffprobe: $WORKSPACE/bin/ffprobe" echo "- ffplay: $WORKSPACE/bin/ffplay" echo "" +INSTALL_NOW=0 if [[ "$AUTOINSTALL" == "yes" ]]; then - if command_exists "sudo"; then - sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" - sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" - sudo cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/ffplay" - echo "Done. FFmpeg is now installed to your system." - else - cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" - cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" - cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/ffplay" - echo "Done. FFmpeg is now installed to your system." - fi + INSTALL_NOW=1 elif [[ ! "$SKIPINSTALL" == "yes" ]]; then read -r -p "Install these binaries to your $INSTALL_FOLDER folder? Existing binaries will be replaced. [Y/n] " response case $response in - [yY][eE][sS] | [yY]) - if command_exists "sudo"; then - sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" - sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" - sudo cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/ffplay" - else - cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/ffmpeg" - cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/ffprobe" - cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/ffplay" - fi - echo "Done. FFmpeg is now installed to your system." + ("" | [yY][eE][sS] | [yY]) + INSTALL_NOW=1 ;; esac fi +if [ "$INSTALL_NOW" = 1 ]; then + if command_exists "sudo" && [[ $INSTALL_FOLDER == /usr* ]]; then + sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/bin/ffmpeg" + sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/bin/ffprobe" + sudo cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/bin/ffplay" + if [ $MANPAGES = 1 ]; then + sudo mkdir -p "$INSTALL_FOLDER/share/man/man1" + sudo cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" + fi + else + cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/bin/ffmpeg" + cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/bin/ffprobe" + cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/bin/ffplay" + if [ $MANPAGES = 1 ]; then + mkdir -p "$INSTALL_FOLDER/share/man/man1" + cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" + fi + fi + echo "Done. FFmpeg is now installed to your system." +fi + exit 0 From be86dc9ed5724ebc212c1065c84187ab37c551b4 Mon Sep 17 00:00:00 2001 From: jtbr Date: Tue, 13 Jun 2023 14:31:43 +0200 Subject: [PATCH 084/146] Update manpage db after adding --- build-ffmpeg | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build-ffmpeg b/build-ffmpeg index 4b7b8c39..42bf8fd8 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -997,6 +997,9 @@ if [ "$INSTALL_NOW" = 1 ]; then if [ $MANPAGES = 1 ]; then sudo mkdir -p "$INSTALL_FOLDER/share/man/man1" sudo cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" + if command_exists "mandb"; then + sudo mandb -q + fi fi else cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/bin/ffmpeg" @@ -1005,6 +1008,9 @@ if [ "$INSTALL_NOW" = 1 ]; then if [ $MANPAGES = 1 ]; then mkdir -p "$INSTALL_FOLDER/share/man/man1" cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" + if command_exists "mandb"; then + mandb -q + fi fi fi echo "Done. FFmpeg is now installed to your system." From e929e880ba5e4646a7f0d04e010eb60b371dd2ed Mon Sep 17 00:00:00 2001 From: jtbr Date: Thu, 15 Jun 2023 16:12:00 +0200 Subject: [PATCH 085/146] Consolidates install further --- build-ffmpeg | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 42bf8fd8..105db82c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -991,26 +991,16 @@ fi if [ "$INSTALL_NOW" = 1 ]; then if command_exists "sudo" && [[ $INSTALL_FOLDER == /usr* ]]; then - sudo cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/bin/ffmpeg" - sudo cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/bin/ffprobe" - sudo cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/bin/ffplay" - if [ $MANPAGES = 1 ]; then - sudo mkdir -p "$INSTALL_FOLDER/share/man/man1" - sudo cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" - if command_exists "mandb"; then - sudo mandb -q - fi - fi - else - cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/bin/ffmpeg" - cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/bin/ffprobe" - cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/bin/ffplay" - if [ $MANPAGES = 1 ]; then - mkdir -p "$INSTALL_FOLDER/share/man/man1" - cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" - if command_exists "mandb"; then - mandb -q - fi + SUDO=sudo + fi + $SUDO cp "$WORKSPACE/bin/ffmpeg" "$INSTALL_FOLDER/bin/ffmpeg" + $SUDO cp "$WORKSPACE/bin/ffprobe" "$INSTALL_FOLDER/bin/ffprobe" + $SUDO cp "$WORKSPACE/bin/ffplay" "$INSTALL_FOLDER/bin/ffplay" + if [ $MANPAGES = 1 ]; then + $SUDO mkdir -p "$INSTALL_FOLDER/share/man/man1" + $SUDO cp "$WORKSPACE/share/man/man1"/ff* "$INSTALL_FOLDER/share/man/man1" + if command_exists "mandb"; then + $SUDO mandb -q fi fi echo "Done. FFmpeg is now installed to your system." From e1a73d9df895e924ac0414dabffd9752694503e6 Mon Sep 17 00:00:00 2001 From: jtbr Date: Wed, 21 Jun 2023 23:25:32 +0200 Subject: [PATCH 086/146] Reorganize readme for readability and add detail for clarity. Put --small before --static in the --help --- README.md | 217 +++++++++++++++++++++++++++++---------------------- build-ffmpeg | 4 +- 2 files changed, 125 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index 3e99daff..a7ca0325 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,33 @@ By downloading and using this script, you are fully aware of this. Use this script at your own risk. I maintain this script in my spare time. Please do not file bug reports for systems other than Debian and macOS, because I don't have the resources or time to maintain different systems. -## Installation +## Requirements to build -### Quick install and run (macOS, Linux) +### macOS -Open your command line and run (curl needs to be installed): +* XCode 10.x or greater + +### Linux + +* Debian >= Buster, Ubuntu => Focal Fossa; other distributions might work too +* Rocky Linux 8 ```bash +# Debian and Ubuntu +$ sudo apt install build-essential curl +# Fedora +$ sudo dnf install @development-tools curl +``` + +## Quick Script Installation + +Note: to enable hardware acceleration, see details below. +### Quick install and build (macOS, Linux) + +Open your command line and run (curl needs to be installed): + +```bash # Without GPL and non-free codes, see https://ffmpeg.org/legal.html $ bash <(curl -s "https://raw.githubusercontent.com/markus-perl/ffmpeg-build-script/master/web-install.sh?v1") @@ -39,12 +58,15 @@ $ bash <(curl -s "https://raw.githubusercontent.com/markus-perl/ffmpeg-build-scr This command downloads the build script and automatically starts the build process. -### Common installation (macOS, Linux) +### Common install and build (macOS, Linux) ```bash $ git clone https://github.com/markus-perl/ffmpeg-build-script.git $ cd ffmpeg-build-script +# Without GPL and non-free codecs $ ./build-ffmpeg --build +# With GPL and non-free codecs +$ ./build-ffmpeg --enable-gpl-and-non-free --build ``` ## Supported Codecs @@ -54,7 +76,7 @@ $ ./build-ffmpeg --build * `libsvtav1`: SVT-AV1 Encoder and Decoder * `aom`: AV1 Video Codec (Experimental and very slow!) * `librav1e`: rust based AV1 encoder (only available if [`cargo` is installed](https://doc.rust-lang.org/cargo/getting-started/installation.html)) -* `libdav1d`: Fastest AV1 decoder developed by the VideoLAN and FFmpeg communities and sponsored by the AOMedia (only available if `meson` and `ninja` are installed) +* `libdav1d`: Fastest AV1 decoder developed by the VideoLAN and FFmpeg communities and sponsored by the AOMedia (only available if `meson` and `ninja` are available) * `fdk_aac`: Fraunhofer FDK AAC Codec * `xvidcore`: MPEG-4 video coding standard * `VP8/VP9/webm`: VP8 / VP9 Video Codec for the WebM video file format @@ -100,45 +122,113 @@ $ ./build-ffmpeg --build * H264 `h264_amf` -### Apple M1 (Apple Silicon) Support +## Build Script Usage -The script also builds FFmpeg on a new MacBook with an Apple Silicon M1 processor. +```bash +Usage: build-ffmpeg [OPTIONS] +Options: + -h, --help Display usage information + --version Display version information + -b, --build Starts the build process + --enable-gpl-and-non-free Enable non-free codecs - https://ffmpeg.org/legal.html + --latest Build latest version of dependencies if newer available + -c, --cleanup Remove all working dirs + --small Prioritize small size over speed and usability; don't build manpages. + --full-static Complete static build of ffmpeg (eg. glibc, pthreads etc...) **only Linux** + Note: Because of the NSS (Name Service Switch), glibc does not recommend static links. +``` -### LV2 Plugin Support +### Notes on static linking -If Python is available, the script will build a ffmpeg binary with lv2 plugin support. +- Because of the NSS (Name Service Switch), glibc does **not recommend** static links. See [more details here](https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked_programs_need_some_shared_libraries_which_is_not_acceptable_for_me.__What_can_I_do.3F). -## Continuous Integration +- The libnpp in the CUDA SDK cannot be statically linked. +- Vaapi cannot be statically linked. -ffmpeg-build-script is very stable. Every commit runs against Linux and macOS -with https://github.com/markus-perl/ffmpeg-build-script/actions to make sure everything works as expected. -## Requirements +## Common full build (macOS, Linux) -### macOS +1) Install the [prerequisites](#requirements-to-build), above. +1) Install optional dependencies, as desired. + - If you have an NVIDIA GPU and want to enable CUDA acceleration, please refer to [these instructions](#Cuda-installation) to install the SDK. -* XCode 10.x or greater + - If you have an AMD GPU and want to enable AMF acceleration, please refer to [these instructions](#amf-installation) to install the drivers. -### Linux + - If you want to enable Vaapi acceleration (for most GPUs), please refer to [these instructions](#Vaapi-installation) to install the driver. -* Debian >= Buster, Ubuntu => Focal Fossa, other Distributions might work too -* Rocky Linux 8 -* A development environment and curl is required + - If you want the `librav1e` AV1 encoder, please install [rust](https://doc.rust-lang.org/cargo/getting-started/installation.html) to get `cargo` for the build process. Be sure to start a new shell before building, so that `cargo` is in the new path. If desired, it can be removed with `rustup self uninstall` after the build is complete. + + - If you want the `dav1d` AV1 decoder, please ensure that `python3` is installed. If using the system python installation, also ensure that `meson` and `ninja` are installed before running (otherwise the script will try to install them using `pip3`). + + - If you want the `Lv2` filter plugin, please ensure that `python3` is installed. + +1) Run the downoaded build script from the current directory, with your desired [options](#build-script-usage). + ```bash + $ ./build-ffmpeg [your parameters here] --build + ``` + - Packages will be under the `packages/` subdirectory. + - Build results will be under the `workspace/` subdirectory. + + Upon completion, build-ffmpeg will prompt you for whether to install. + +1) Once installed, if you are satisfied with your ffmpeg build, the ffmpeg-build-script directory can be removed completely. + +### CUDA installation + +CUDA is a parallel computing platform developed by NVIDIA. To be able to compile ffmpeg with CUDA support, you first +need a compatible NVIDIA GPU and the NVIDIA compiler nvcc from the CUDA toolkit. + +- Ubuntu: To install the CUDA toolkit on Ubuntu, run + ```bash + sudo apt install nvidia-cuda-toolkit + ``` + After compilation, you can run + ```bash + sudo apt install nvidia-cuda-dev && sudo apt remove nvidia-cuda-toolkit + ``` + This removes the compilers but leaves the needed shared library `libnpp`. + +- Other Linux distributions: Once you have the GPU and display driver installed, you can follow the + [official instructions](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) + or [this blog](https://www.pugetsystems.com/labs/hpc/How-To-Install-CUDA-10-1-on-Ubuntu-19-04-1405/) + to setup the CUDA toolkit. + +### Vaapi installation + +You will need the libva driver, so please install it below. ```bash # Debian and Ubuntu -$ sudo apt install build-essential curl +$ sudo apt install libva-dev vainfo -# Fedora -$ sudo dnf install @development-tools curl +# Fedora and CentOS +$ sudo dnf install libva-devel libva-intel-driver libva-utils +``` + +### AMF installation + +To use the AMF encoder, you will need to be using the AMD GPU Pro drivers with OpenCL support. +Download the drivers from https://www.amd.com/en/support and install the appropriate opencl versions. + +```bash +./amdgpu-pro-install -y --opencl=rocr,legacy ``` -### Build in Docker (Linux) +### LV2 Plugin Support + +If python 3 is available, the script will build a ffmpeg binary with [Lv2 filter](https://github.com/lv2/lv2/wiki) plugin support. + +### Apple M1 (Apple Silicon) Support + +The script also builds FFmpeg on a new MacBook with an Apple Silicon M1 processor. + + +## Build in Docker (Linux) With Docker, FFmpeg can be built reliably without altering the host system. Also, there is no need to have the CUDA SDK installed outside of the Docker image. -##### Default +#### Default If you're running an operating system other than the one above, a completely static build may work. To build a full statically linked binary inside Docker, just run the following command: @@ -147,10 +237,10 @@ statically linked binary inside Docker, just run the following command: $ docker build --tag=ffmpeg:default --output type=local,dest=build -f Dockerfile . ``` -##### CUDA +#### CUDA These builds are always built with the --enable-gpl-and-non-free switch, as CUDA is non-free. See https://ffmpeg.org/legal.html -```bash +```bash ## Start the build $ docker build --tag=ffmpeg:cuda --output type=local,dest=build -f cuda-ubuntu.dockerfile . ``` @@ -170,7 +260,7 @@ $ ls build/lib libnppc.so.11 libnppicc.so.11 libnppidei.so.11 libnppig.so.11 ``` -##### Full static version +#### Full static version If you're running an operating system other than the one above, a completely static build may work. To build a full statically linked binary inside Docker, just run the following command: @@ -204,73 +294,6 @@ $ sudo docker build --tag=ffmpeg:cuda -f cuda-ubuntu.dockerfile . $ sudo docker run --gpus all ffmpeg-cuda -hwaccel cuvid -c:v h264_cuvid -i https://files.coconut.co.s3.amazonaws.com/test.mp4 -c:v hevc_nvenc -vf scale_npp=-1:1080 - > test.mp4 ``` -### Common build (macOS, Linux) - -If you want to enable CUDA, please refer to [these](#Cuda-installation) and install the SDK. - -If you want to enable Vaapi, please refer to [these](#Vaapi-installation) and install the driver. - -```bash -$ ./build-ffmpeg --build -``` - -## Cuda installation - -CUDA is a parallel computing platform developed by NVIDIA. To be able to compile ffmpeg with CUDA support, you first -need a compatible NVIDIA GPU and the NVIDIA compiler nvcc from the CUDA toolkit. - -- Ubuntu: To install the CUDA toolkit on Ubuntu, run `sudo apt install nvidia-cuda-toolkit`. - After compilation, you can `sudo apt install nvidia-cuda-dev && sudo apt remove nvidia-cuda-toolkit`. - This removes the compilers but leaves the needed shared library `libnpp`. -- Other Linux distributions: Once you have the GPU and display driver installed, you can follow the - [official instructions](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) - or [this blog](https://www.pugetsystems.com/labs/hpc/How-To-Install-CUDA-10-1-on-Ubuntu-19-04-1405/) - to setup the CUDA toolkit. - -## Vaapi installation - -You will need the libva driver, so please install it below. - -```bash -# Debian and Ubuntu -$ sudo apt install libva-dev vainfo - -# Fedora and CentOS -$ sudo dnf install libva-devel libva-intel-driver libva-utils -``` - -## AMF installation - -To use the AMF encoder, you will need to be using the AMD GPU Pro drivers with OpenCL support. -Download the drivers from https://www.amd.com/en/support and install the appropriate opencl versions. - -```bash -./amdgpu-pro-install -y --opencl=rocr,legacy -``` - -## Usage - -```bash -Usage: build-ffmpeg [OPTIONS] -Options: - -h, --help Display usage information - --version Display version information - -b, --build Starts the build process - --enable-gpl-and-non-free Enable non-free codecs - https://ffmpeg.org/legal.html - --latest Build latest version of dependencies if newer available - -c, --cleanup Remove all working dirs - --full-static Complete static build of ffmpeg (eg. glibc, pthreads etc...) **only Linux** - --small Prioritize small size over speed and usability; don't build manpages. - Note: Because of the NSS (Name Service Switch), glibc does not recommend static links. -``` - -## Notes of static link - -- Because of the NSS (Name Service Switch), glibc does **not recommend** static links. See detail - below: https://sourceware.org/glibc/wiki/FAQ#Even_statically_linked_programs_need_some_shared_libraries_which_is_not_acceptable_for_me.__What_can_I_do.3F - -- The libnpp in the CUDA SDK cannot be statically linked. -- Vaapi cannot be statically linked. Contact ------- @@ -284,6 +307,12 @@ Tested on * Debian 10 * Ubuntu 20.04 +## Continuous Integration + +ffmpeg-build-script is very stable. Every commit runs against Linux and macOS +with https://github.com/markus-perl/ffmpeg-build-script/actions to make sure everything works as expected. + + Example ------- diff --git a/build-ffmpeg b/build-ffmpeg index 105db82c..9fa604c2 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -206,8 +206,8 @@ usage() { echo " --enable-gpl-and-non-free Enable GPL and non-free codecs - https://ffmpeg.org/legal.html" echo " -c, --cleanup Remove all working dirs" echo " --latest Build latest version of dependencies if newer available" - echo " --full-static Build a full static FFmpeg binary (eg. glibc, pthreads etc...) **only Linux**" echo " --small Prioritize small size over speed and usability; don't build manpages" + echo " --full-static Build a full static FFmpeg binary (eg. glibc, pthreads etc...) **only Linux**" echo " Note: Because of the NSS (Name Service Switch), glibc does not recommend static links." echo "" } @@ -983,7 +983,7 @@ if [[ "$AUTOINSTALL" == "yes" ]]; then elif [[ ! "$SKIPINSTALL" == "yes" ]]; then read -r -p "Install these binaries to your $INSTALL_FOLDER folder? Existing binaries will be replaced. [Y/n] " response case $response in - ("" | [yY][eE][sS] | [yY]) + "" | [yY][eE][sS] | [yY]) INSTALL_NOW=1 ;; esac From 2b4a0b695c25f070069ac63fb7881510a2315498 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:00:20 +0200 Subject: [PATCH 087/146] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8cd080da..7a76f8d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: build-macos: name: build in native macOS - runs-on: macos-10.15 + runs-on: macos-latest steps: - name: Checkout code uses: actions/checkout@v2 From 373ab32671f4a5b25e603d7f7d0c96caf06dda33 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 3 Jul 2023 10:57:51 +0200 Subject: [PATCH 088/146] cargo update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 9fa604c2..1fefa74e 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -500,7 +500,7 @@ fi if command_exists "cargo"; then if build "rav1e" "0.6.3"; then - execute cargo install --version "0.9.14+cargo-0.66" cargo-c + execute cargo install --version "0.9.20+cargo-0.71" cargo-c download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.3.tar.gz" execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release build_done "rav1e" "0.6.3" From 1908fd8494b223e67096472e22c7a214012a2ae8 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 3 Jul 2023 15:55:23 +0200 Subject: [PATCH 089/146] mac test --- .github/workflows/build.yml | 2 +- build-ffmpeg | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a76f8d3..3e379b53 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,7 +45,7 @@ jobs: - name: build ffmpeg run: | while sleep 300; do echo "=====[ $SECONDS seconds still running ]====="; done & - SKIPINSTALL=yes VERBOSE=yes ./build-ffmpeg --build --enable-gpl-and-non-free + SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build --enable-gpl-and-non-free kill %1 - name: check shared library run: | diff --git a/build-ffmpeg b/build-ffmpeg index 1fefa74e..9eeb9509 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -499,13 +499,15 @@ if ! $MACOS_M1; then fi if command_exists "cargo"; then - if build "rav1e" "0.6.3"; then - execute cargo install --version "0.9.20+cargo-0.71" cargo-c - download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.3.tar.gz" - execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release - build_done "rav1e" "0.6.3" + if [[ ! "$SKIPRAV1E" == "yes" ]]; then + if build "rav1e" "0.6.3"; then + execute cargo install --version "0.9.20+cargo-0.71" cargo-c + download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.3.tar.gz" + execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release + build_done "rav1e" "0.6.3" + fi + CONFIGURE_OPTIONS+=("--enable-librav1e") fi - CONFIGURE_OPTIONS+=("--enable-librav1e") fi if $NONFREE_AND_GPL; then From 52944526720e3c472ab769c7386bdcf408138b1a Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 4 Jul 2023 06:36:48 +0200 Subject: [PATCH 090/146] Packages updated --- build-ffmpeg | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 9eeb9509..63e7c270 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -18,6 +18,7 @@ CONFIGURE_OPTIONS=() NONFREE_AND_GPL=false LATEST=false MANPAGES=1 +CURRENT_PACKAGE_VERSION=0 # Check for Apple Silicon if [[ ("$(uname -m)" == "arm64") && ("$OSTYPE" == "darwin"*) ]]; then @@ -136,6 +137,7 @@ build() { echo "" echo "building $1 - version $2" echo "=======================" + CURRENT_PACKAGE_VERSION=$2 if [ -f "$PACKAGES/$1.done" ]; then if grep -Fx "$2" "$PACKAGES/$1.done" >/dev/null; then @@ -393,8 +395,8 @@ if build "libtool" "2.4.7"; then fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1t"; then - download "https://www.openssl.org/source/openssl-1.1.1t.tar.gz" + if build "openssl" "1.1.1u"; then + download "https://www.openssl.org/source/openssl-$CURRENT_PACKAGE_VERSION.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc @@ -403,7 +405,7 @@ if $NONFREE_AND_GPL; then fi execute make -j $MJOBS execute make install_sw - build_done "openssl" "1.1.1t" + build_done "openssl" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-openssl") else @@ -435,12 +437,12 @@ else fi fi -if build "cmake" "3.25.1"; then - download "https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz" +if build "cmake" "3.26.4"; then + download "https://github.com/Kitware/CMake/releases/download/v$CURRENT_PACKAGE_VERSION/cmake-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS execute make install - build_done "cmake" "3.25.1" + build_done "cmake" $CURRENT_PACKAGE_VERSION fi ## @@ -483,20 +485,19 @@ if command_exists "python3"; then fi fi -if ! $MACOS_M1; then - if build "svtav1" "1.4.1"; then - # Last known working commit which passed CI Tests from HEAD branch - download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v1.4.1/SVT-AV1-v1.4.1.tar.gz" "svtav1-1.4.1.tar.gz" - cd "${PACKAGES}"/svtav1-1.4.1//Build/linux || exit - execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release - execute make -j $MJOBS - execute make install - execute cp SvtAv1Enc.pc "${WORKSPACE}/lib/pkgconfig/" - execute cp SvtAv1Dec.pc "${WORKSPACE}/lib/pkgconfig/" - build_done "svtav1" "1.4.1" - fi - CONFIGURE_OPTIONS+=("--enable-libsvtav1") +if build "svtav1" "1.6.0"; then + # Last known working commit which passed CI Tests from HEAD branch + download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$CURRENT_PACKAGE_VERSION/SVT-AV1-v$CURRENT_PACKAGE_VERSION.tar.gz" "svtav1-$CURRENT_PACKAGE_VERSION.tar.gz" + cd "${PACKAGES}"/svtav1-$CURRENT_PACKAGE_VERSION//Build/linux || exit + execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release + execute make -j $MJOBS + execute make install + execute cp SvtAv1Enc.pc "${WORKSPACE}/lib/pkgconfig/" + execute cp SvtAv1Dec.pc "${WORKSPACE}/lib/pkgconfig/" + build_done "svtav1" $CURRENT_PACKAGE_VERSION fi +CONFIGURE_OPTIONS+=("--enable-libsvtav1") + if command_exists "cargo"; then if [[ ! "$SKIPRAV1E" == "yes" ]]; then From 9146a7b19a048140333253f15ec3a4a404a5c921 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 4 Jul 2023 07:58:55 +0200 Subject: [PATCH 091/146] Version 1.46 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 63e7c270..2beab23d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.45 +SCRIPT_VERSION=1.46 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 9e08b35b1d3b9b093237824ba9caeefd98dccd69 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Mon, 2 Oct 2023 17:05:57 -0600 Subject: [PATCH 092/146] Set Ubuntu version to 22.04 LTS version Ubuntu 22.10 is out of support, this sets the version to 22.04 which is LTS and supported until April 2027. Another option would be to update to 23.04, which would have support to July 2024 (I think). --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 854e3926..0523cab1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.10 AS build +FROM ubuntu:22.04 AS build ENV DEBIAN_FRONTEND noninteractive @@ -13,7 +13,7 @@ COPY ./build-ffmpeg /app/build-ffmpeg RUN SKIPINSTALL=yes /app/build-ffmpeg --build -FROM ubuntu:22.10 +FROM ubuntu:22.04 ENV DEBIAN_FRONTEND noninteractive From 3e0af5621865c86e819b6d305cb3c55265ada6ac Mon Sep 17 00:00:00 2001 From: Nathan Trujillo <35079898+useafterfree@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:19:09 -0700 Subject: [PATCH 093/146] Update build-ffmpeg to include freetype 2.11.1 --- build-ffmpeg | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build-ffmpeg b/build-ffmpeg index 2beab23d..f4daa03f 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -855,6 +855,16 @@ if build "libsdl" "2.26.3"; then build_done "libsdl" "2.26.3" fi +if build "FreeType2" "2.11.1"; then + download "https://downloads.sourceforge.net/freetype/freetype-2.11.1.tar.xz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static + execute make -j $MJOBS + execute make install + build_done "FreeType2" "2.11.1" +fi + +CONFIGURE_OPTIONS+=("--enable-libfreetype") + if $NONFREE_AND_GPL; then if build "srt" "1.5.1"; then download "https://github.com/Haivision/srt/archive/v1.5.1.tar.gz" "srt-1.5.1.tar.gz" From f8460e0afefd158c086e0698b31c24be0417df64 Mon Sep 17 00:00:00 2001 From: Nathan Trujillo <35079898+useafterfree@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:23:27 -0700 Subject: [PATCH 094/146] Fix opencore URL --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index f4daa03f..fae640ab 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -723,7 +723,7 @@ if command_exists "python3"; then fi if build "opencore" "0.1.6"; then - download "https://netactuate.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz" "opencore-amr-0.1.6.tar.gz" + download "https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.5.tar.gz/download" "opencore-amr-0.1.6.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install From d4e6272025194457a41055cd931630e24d1b40f5 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 12 Oct 2023 09:21:57 +0200 Subject: [PATCH 095/146] OpenCore update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 2beab23d..1bcb88c3 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -723,7 +723,7 @@ if command_exists "python3"; then fi if build "opencore" "0.1.6"; then - download "https://netactuate.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz" "opencore-amr-0.1.6.tar.gz" + download "https://deac-ams.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz" "opencore-amr-0.1.6.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install From 051a010e6abee9496ee5b8aa5527b62e347dca4b Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Thu, 12 Oct 2023 12:29:49 +0200 Subject: [PATCH 096/146] Update Version --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 1bcb88c3..85978b77 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.46 +SCRIPT_VERSION=1.47 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 743e86c092cee5d12102089984c658d744a37276 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Fri, 13 Oct 2023 06:57:41 +0200 Subject: [PATCH 097/146] Update cuda-ubuntu.dockerfile --- cuda-ubuntu.dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index ccd24f44..8f757655 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -19,6 +19,7 @@ RUN apt-get -y --no-install-recommends install build-essential curl libva-dev py cuda="${CUDAVER}" \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +RUN update-alternatives --set cc /usr/bin/gcc WORKDIR /app COPY ./build-ffmpeg /app/build-ffmpeg From 9a689c2ad420640efdf9d4c6774de1fbeca5d22d Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Fri, 13 Oct 2023 08:01:01 +0200 Subject: [PATCH 098/146] Update cuda-ubuntu.dockerfile --- cuda-ubuntu.dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index 8f757655..ce43cfd3 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -15,12 +15,10 @@ RUN apt-get update \ && dpkg -i cuda-keyring_1.0-1_all.deb \ && apt-get update -RUN apt-get -y --no-install-recommends install build-essential curl libva-dev python3 python-is-python3 ninja-build meson \ +RUN apt-get -y --no-install-recommends install build-essential curl libva-dev python3 python-is-python3 ninja-build meson cmake \ cuda="${CUDAVER}" \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN update-alternatives --set cc /usr/bin/gcc - WORKDIR /app COPY ./build-ffmpeg /app/build-ffmpeg From 326e6ec750988f9ac638e60f158130bb4886fb8e Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Sun, 5 Nov 2023 17:47:05 +0100 Subject: [PATCH 099/146] AMF Update --- build-ffmpeg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 85978b77..dd1daeef 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -910,12 +910,12 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi fi - if build "amf" "1.4.29"; then - download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.29.tar.gz' 'AMF-1.4.29.tar.gz' 'AMF-1.4.29' + if build "amf" "1.4.30"; then + download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.30.tar.gz' 'AMF-1.4.30.tar.gz' 'AMF-1.4.30' execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-1.4.29/AMF-1.4.29/amf/public/include/* "${WORKSPACE}/include/AMF/" - build_done "amf" "1.4.29" + execute cp -r "${PACKAGES}"/AMF-1.4.30/AMF-1.4.30/amf/public/include/* "${WORKSPACE}/include/AMF/" + build_done "amf" "1.4.30" fi CONFIGURE_OPTIONS+=("--enable-amf") fi From a14f041b911b04c801b722bfe1ed1b2a10fa2416 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Sun, 5 Nov 2023 19:07:52 +0100 Subject: [PATCH 100/146] fix build warning --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e379b53..1359e706 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: install libva-dev run: | @@ -40,7 +40,7 @@ jobs: runs-on: macos-latest steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: build ffmpeg run: | @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: pull base image id: ubuntu_pull @@ -84,7 +84,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: pull base image id: cuda_ubuntu_pull @@ -108,7 +108,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: pull base image id: cuda_ubuntu_pull From b04ad758f733ec9b332d31ad11df530172fda7db Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Sun, 5 Nov 2023 21:21:48 +0100 Subject: [PATCH 101/146] Many libraries updated --- build-ffmpeg | 74 ++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 7f405be1..37ef9eec 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -395,7 +395,7 @@ if build "libtool" "2.4.7"; then fi if $NONFREE_AND_GPL; then - if build "openssl" "1.1.1u"; then + if build "openssl" "1.1.1w"; then download "https://www.openssl.org/source/openssl-$CURRENT_PACKAGE_VERSION.tar.gz" if $MACOS_M1; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf @@ -417,27 +417,27 @@ else build_done "gmp" "6.2.1" fi - if build "nettle" "3.8.1"; then - download "https://ftp.gnu.org/gnu/nettle/nettle-3.8.1.tar.gz" + if build "nettle" "3.9.1"; then + download "https://ftp.gnu.org/gnu/nettle/nettle-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-openssl --disable-documentation --libdir="${WORKSPACE}"/lib CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install - build_done "nettle" "3.8.1" + build_done "nettle" $CURRENT_PACKAGE_VERSION fi if [[ ! $ARCH == 'arm64' ]]; then - if build "gnutls" "3.7.9"; then - download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.9.tar.xz" + if build "gnutls" "3.7.10"; then + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install - build_done "gnutls" "3.7.9" + build_done "gnutls" $CURRENT_PACKAGE_VERSION fi # CONFIGURE_OPTIONS+=("--enable-gmp" "--enable-gnutls") fi fi -if build "cmake" "3.26.4"; then +if build "cmake" "3.27.7"; then download "https://github.com/Kitware/CMake/releases/download/v$CURRENT_PACKAGE_VERSION/cmake-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS @@ -485,7 +485,7 @@ if command_exists "python3"; then fi fi -if build "svtav1" "1.6.0"; then +if build "svtav1" "1.7.0"; then # Last known working commit which passed CI Tests from HEAD branch download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$CURRENT_PACKAGE_VERSION/SVT-AV1-v$CURRENT_PACKAGE_VERSION.tar.gz" "svtav1-$CURRENT_PACKAGE_VERSION.tar.gz" cd "${PACKAGES}"/svtav1-$CURRENT_PACKAGE_VERSION//Build/linux || exit @@ -501,11 +501,11 @@ CONFIGURE_OPTIONS+=("--enable-libsvtav1") if command_exists "cargo"; then if [[ ! "$SKIPRAV1E" == "yes" ]]; then - if build "rav1e" "0.6.3"; then + if build "rav1e" "0.6.6"; then execute cargo install --version "0.9.20+cargo-0.71" cargo-c - download "https://github.com/xiph/rav1e/archive/refs/tags/v0.6.3.tar.gz" + download "https://github.com/xiph/rav1e/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release - build_done "rav1e" "0.6.3" + build_done "rav1e" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-librav1e") fi @@ -576,8 +576,8 @@ EOF CONFIGURE_OPTIONS+=("--enable-libx265") fi -if build "libvpx" "1.13.0"; then - download "https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.0.tar.gz" "libvpx-1.13.0.tar.gz" +if build "libvpx" "1.13.1"; then + download "https://github.com/webmproject/libvpx/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libvpx-$CURRENT_PACKAGE_VERSION.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then echo "Applying Darwin patch" @@ -589,7 +589,7 @@ if build "libvpx" "1.13.0"; then execute make -j $MJOBS execute make install - build_done "libvpx" "1.13.0" + build_done "libvpx" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libvpx") @@ -615,11 +615,11 @@ if $NONFREE_AND_GPL; then fi if $NONFREE_AND_GPL; then - if build "vid_stab" "1.1.0"; then - download "https://github.com/georgmartius/vid.stab/archive/v1.1.0.tar.gz" "vid.stab-1.1.0.tar.gz" + if build "vid_stab" "1.1.1"; then + download "https://github.com/georgmartius/vid.stab/archive/v$CURRENT_PACKAGE_VERSION.tar.gz" "vid.stab-$CURRENT_PACKAGE_VERSION.tar.gz" if $MACOS_M1; then - curl -L --silent -o "$PACKAGES/vid.stab-1.1.0/fix_cmake_quoting.patch" "https://raw.githubusercontent.com/Homebrew/formula-patches/5bf1a0e0cfe666ee410305cece9c9c755641bfdf/libvidstab/fix_cmake_quoting.patch" + curl -L --silent -o "$PACKAGES/vid.stab-$CURRENT_PACKAGE_VERSION/fix_cmake_quoting.patch" "https://raw.githubusercontent.com/Homebrew/formula-patches/5bf1a0e0cfe666ee410305cece9c9c755641bfdf/libvidstab/fix_cmake_quoting.patch" patch -p1 Date: Mon, 6 Nov 2023 14:16:08 +0330 Subject: [PATCH 102/146] ADD: CUDA improvements and libzmq - Updated cuda-ubuntu Dockerfile to use NVIDIAs CUDA image instead - Updated cuda-ubuntu Dockerfile to build NVIDIAs deviceQuery for automatic compute capability detection - Updated build-ffmpeg to use automatic compute capability - Added libzmq to build-ffmpeg --- README.md | 14 +++++++++++- build-ffmpeg | 30 +++++++++++++++++++++++-- cuda-ubuntu.dockerfile | 50 +++++++++++++++++++++++++----------------- 3 files changed, 71 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index a7ca0325..48fa3e69 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,18 @@ $ ls build/lib libnppc.so.11 libnppicc.so.11 libnppidei.so.11 libnppig.so.11 ``` +##### Notes on Docker build with CUDA + +If you see a "CUDA compute capability could not be found" message during build, first check to see if your GPU device is even available. +In addition, Docker build needs access to CUDA devices to detect your capability version. [some steps](https://stackoverflow.com/a/77348905/7764138) are required on the host machine to allow this access. + +1. Install NVIDIA docker runtime and toolkit `sudo apt install nvidia-container-runtime nvidia-container-toolkit` +2. Modify `/etc/docker/daemon.json` and add the line `"default-runtime": "nvidia"` +3. Remove buildx: `sudo apt remove docker-buildx-plugin` +4. Restart Docker: `sudo systemctl restart docker` +5. (Optional but Recommended) If all this doesn't work, also disable buildkit with `export DOCKER_BUILDKIT=0` before building + + #### Full static version If you're running an operating system other than the one above, a completely static build may work. To build a full @@ -324,7 +336,7 @@ ffmpeg-build-script v1.xx Using 12 make jobs simultaneously. With GPL and non-free codecs - +CUDA compute capability: 75 building giflib - version 5.2.1 ======================= Downloading https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz as giflib-5.2.1.tar.gz diff --git a/build-ffmpeg b/build-ffmpeg index 37ef9eec..b5bc8651 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -278,6 +278,18 @@ if $NONFREE_AND_GPL; then echo "With GPL and non-free codecs" fi +# Check CUDA compute capability +if [[ "$OSTYPE" == "linux-gnu" ]]; then + if command_exists "nvcc"; then + export CUDA_COMPUTE_CAPABILITY=$(deviceQuery | grep Capability | head -n 1 | awk 'END {print $NF}' | tr -d '.') + echo "CUDA compute capability: $CUDA_COMPUTE_CAPABILITY" + fi + if [ -z "$CUDA_COMPUTE_CAPABILITY" ]; then + echo "CUDA compute capability could not be found... do you have CUDA access in docker?" + exit 1 + fi +fi + if [ -n "$LDEXEFLAGS" ]; then echo "Start the build in full static mode." fi @@ -847,7 +859,7 @@ fi ## if build "libsdl" "2.28.5"; then - download "https://www.libsdl.org/release/SDL2-$CURRENT_PACKAGE_VERSION.tar.gz" + download "https://github.com/libsdl-org/SDL/releases/download/release-$CURRENT_PACKAGE_VERSION/SDL2-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install @@ -883,6 +895,20 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-libsrt") fi +## +## zmq library +## + +if build "libzmq" "4.3.5"; then + download "https://github.com/zeromq/libzmq/releases/download/v$CURRENT_PACKAGE_VERSION/zeromq-$CURRENT_PACKAGE_VERSION.tar.gz" + execute ./autogen.sh + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static + execute make -j $MJOBS + execute make install + build_done "libzmq" $CURRENT_PACKAGE_VERSION + CONFIGURE_OPTIONS+=("--enable-libzmq") +fi + ## ## HWaccel library ## @@ -904,7 +930,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi # https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ - CONFIGURE_OPTIONS+=("--nvccflags=-gencode arch=compute_52,code=sm_52") + CONFIGURE_OPTIONS+=("--nvccflags=-gencode arch=compute_$CUDA_COMPUTE_CAPABILITY,code=sm_$CUDA_COMPUTE_CAPABILITY") else CONFIGURE_OPTIONS+=("--disable-ffnvcodec") fi diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index ce43cfd3..170e02fa 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -1,23 +1,33 @@ -ARG VER=22.04 +ARG CUDAVER=12.2.2 +ARG UBUNTUVER=22.04 -FROM ubuntu:${VER} AS build - -ARG CUDAVER=11.8.0-1 +FROM nvidia/cuda:${CUDAVER}-devel-ubuntu${UBUNTUVER} as build ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video -RUN apt-get update \ - && apt-get -y --no-install-recommends install wget ca-certificates \ - && update-ca-certificates \ - && wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb \ - && dpkg -i cuda-keyring_1.0-1_all.deb \ - && apt-get update - -RUN apt-get -y --no-install-recommends install build-essential curl libva-dev python3 python-is-python3 ninja-build meson cmake \ - cuda="${CUDAVER}" \ - && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get -y --no-install-recommends install \ + build-essential \ + curl \ + libva-dev \ + python3 \ + python-is-python3 \ + ninja-build \ + meson \ + cmake \ + git && \ + # clean + apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + +# build and move deviceQuery to /usr/bin +RUN mkdir -p /code && \ + git clone --depth 1 https://github.com/NVIDIA/cuda-samples.git /code/cuda-samples && \ + cd /code/cuda-samples/Samples/1_Utilities/deviceQuery && \ + make && \ + mv deviceQuery /usr/local/bin WORKDIR /app COPY ./build-ffmpeg /app/build-ffmpeg @@ -25,7 +35,7 @@ COPY ./build-ffmpeg /app/build-ffmpeg RUN SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free -FROM ubuntu:${VER} +FROM ubuntu:${UBUNTUVER} as release ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all @@ -37,11 +47,11 @@ RUN apt-get update \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Copy libnpp -COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppc.so.11 /lib/x86_64-linux-gnu/libnppc.so.11 -COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppig.so.11 /lib/x86_64-linux-gnu/libnppig.so.11 -COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppicc.so.11 /lib/x86_64-linux-gnu/libnppicc.so.11 -COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppidei.so.11 /lib/x86_64-linux-gnu/libnppidei.so.11 -COPY --from=build /usr/local/cuda-11.8/targets/x86_64-linux/lib/libnppif.so.11 /lib/x86_64-linux-gnu/libnppif.so.11 +COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppc.so /lib/x86_64-linux-gnu/libnppc.so +COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppig.so /lib/x86_64-linux-gnu/libnppig.so +COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppicc.so /lib/x86_64-linux-gnu/libnppicc.so +COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppidei.so /lib/x86_64-linux-gnu/libnppidei.so +COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppif.so /lib/x86_64-linux-gnu/libnppif.so # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg From 2ae201d8a8f352a861657541069948f1d349cce2 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Mon, 6 Nov 2023 15:00:56 +0330 Subject: [PATCH 103/146] FIX: undercase instructions in dockerfile --- cuda-ubuntu.dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index 170e02fa..f0ffc9f0 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -1,7 +1,7 @@ ARG CUDAVER=12.2.2 ARG UBUNTUVER=22.04 -FROM nvidia/cuda:${CUDAVER}-devel-ubuntu${UBUNTUVER} as build +FROM nvidia/cuda:${CUDAVER}-devel-ubuntu${UBUNTUVER} AS build ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all @@ -35,7 +35,7 @@ COPY ./build-ffmpeg /app/build-ffmpeg RUN SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free -FROM ubuntu:${UBUNTUVER} as release +FROM ubuntu:${UBUNTUVER} AS release ENV DEBIAN_FRONTEND noninteractive ENV NVIDIA_VISIBLE_DEVICES all From 6b35caabf2c8f835b022381cc087c75d7abd5f30 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Mon, 13 Nov 2023 14:03:11 +0330 Subject: [PATCH 104/146] FIX: build failure on non-CUDA builds and update build script All important changes: - Updated README - Added "-O2" build option to nvccflags - Make use of CURRENT_PACKAGE_VERSION more to reduce redundancies --- README.md | 1002 +++++++++++++++++++++------------------- build-ffmpeg | 163 ++++--- cuda-ubuntu.dockerfile | 3 +- 3 files changed, 608 insertions(+), 560 deletions(-) diff --git a/README.md b/README.md index 48fa3e69..37d55126 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,8 @@ need a compatible NVIDIA GPU and the NVIDIA compiler nvcc from the CUDA toolkit. or [this blog](https://www.pugetsystems.com/labs/hpc/How-To-Install-CUDA-10-1-on-Ubuntu-19-04-1405/) to setup the CUDA toolkit. +It is also beneficial to set the `CUDA_COMPUTE_CAPABILITY` environmental variable so the build is tailored to your hardware and its capabilities. There are many ways you can find your compute capability, for example by using [nvidia-smi](https://stackoverflow.com/questions/40695455/what-utility-binary-can-i-call-to-determine-an-nvidia-gpus-compute-capability). + ### Vaapi installation You will need the libva driver, so please install it below. @@ -260,17 +262,19 @@ $ ls build/lib libnppc.so.11 libnppicc.so.11 libnppidei.so.11 libnppig.so.11 ``` -##### Notes on Docker build with CUDA +--- + +By default, newer docker versions don't allow GPU access while building the image. **If you intend to build with docker on the same system you intend to run the built image on**, allowing this access is beneficial for detecting CUDA compute capability, and tailoring the build to your hardware. -If you see a "CUDA compute capability could not be found" message during build, first check to see if your GPU device is even available. -In addition, Docker build needs access to CUDA devices to detect your capability version. [some steps](https://stackoverflow.com/a/77348905/7764138) are required on the host machine to allow this access. +[some steps](https://stackoverflow.com/a/77348905/7764138) are required on the host machine to allow CUDA access during build: 1. Install NVIDIA docker runtime and toolkit `sudo apt install nvidia-container-runtime nvidia-container-toolkit` 2. Modify `/etc/docker/daemon.json` and add the line `"default-runtime": "nvidia"` -3. Remove buildx: `sudo apt remove docker-buildx-plugin` -4. Restart Docker: `sudo systemctl restart docker` -5. (Optional but Recommended) If all this doesn't work, also disable buildkit with `export DOCKER_BUILDKIT=0` before building +3. Restart Docker: `sudo systemctl restart docker` +4. Disable buildkit with `export DOCKER_BUILDKIT=0` before building +5. If all this doesn't work, also remove buildx: `sudo apt remove docker-buildx-plugin` +You should now see the message `CUDA env variable provided` during the docker build process. #### Full static version @@ -329,14 +333,16 @@ Example ------- ``` -./build-ffmpeg --build +CUDA_COMPUTE_CAPABILITY=75 SKIPINSTALL=yes ./build-ffmpeg --build --enable-gpl-and-non-free ffmpeg-build-script v1.xx ========================= Using 12 make jobs simultaneously. With GPL and non-free codecs -CUDA compute capability: 75 +CUDA env variable provided, building with compute capability 75 +cargo not installed. rav1e encoder will not be available. + building giflib - version 5.2.1 ======================= Downloading https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz as giflib-5.2.1.tar.gz @@ -351,7 +357,7 @@ Downloading https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz ... Done Extracted pkg-config-0.29.2.tar.gz $ ./configure --silent --prefix=/app/workspace --with-pc-path=/app/workspace/lib/pkgconfig --with-internal-glib -$ make -j 2 +$ make -j 12 $ make install building yasm - version 1.3.0 @@ -360,7 +366,7 @@ Downloading https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar ... Done Extracted yasm-1.3.0.tar.gz $ ./configure --prefix=/app/workspace -$ make -j 2 +$ make -j 12 $ make install building nasm - version 2.16.01 @@ -369,16 +375,16 @@ Downloading https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar. ... Done Extracted nasm-2.16.01.tar.xz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install building zlib - version 1.2.13 ======================= -Downloading https://zlib.net/fossils/zlib-1.2.13.tar.gz as zlib-1.2.13.tar.gz +Downloading https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz as zlib-1.2.13.tar.gz ... Done Extracted zlib-1.2.13.tar.gz $ ./configure --static --prefix=/app/workspace -$ make -j 2 +$ make -j 12 $ make install building m4 - version 1.4.19 @@ -387,7 +393,7 @@ Downloading https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.gz as m4-1.4.19.tar.gz ... Done Extracted m4-1.4.19.tar.gz $ ./configure --prefix=/app/workspace -$ make -j 2 +$ make -j 12 $ make install building autoconf - version 2.71 @@ -396,7 +402,7 @@ Downloading https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz as autoconf-2. ... Done Extracted autoconf-2.71.tar.gz $ ./configure --prefix=/app/workspace -$ make -j 2 +$ make -j 12 $ make install building automake - version 1.16.5 @@ -405,7 +411,7 @@ Downloading https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz as automake- ... Done Extracted automake-1.16.5.tar.gz $ ./configure --prefix=/app/workspace -$ make -j 2 +$ make -j 12 $ make install building libtool - version 2.4.7 @@ -414,54 +420,54 @@ Downloading https://ftpmirror.gnu.org/libtool/libtool-2.4.7.tar.gz as libtool-2. ... Done Extracted libtool-2.4.7.tar.gz $ ./configure --prefix=/app/workspace --enable-static --disable-shared -$ make -j 2 +$ make -j 12 $ make install -building openssl - version 1.1.1t +building openssl - version 1.1.1w ======================= -Downloading https://www.openssl.org/source/openssl-1.1.1t.tar.gz as openssl-1.1.1t.tar.gz +Downloading https://www.openssl.org/source/openssl-1.1.1w.tar.gz as openssl-1.1.1w.tar.gz ... Done -Extracted openssl-1.1.1t.tar.gz +Extracted openssl-1.1.1w.tar.gz $ ./config --prefix=/app/workspace --openssldir=/app/workspace --with-zlib-include=/app/workspace/include/ --with-zlib-lib=/app/workspace/lib no-shared zlib -$ make -j 2 +$ make -j 12 $ make install_sw -building cmake - version 3.25.1 +building cmake - version 3.27.7 ======================= -Downloading https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz as cmake-3.25.1.tar.gz +Downloading https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7.tar.gz as cmake-3.27.7.tar.gz ... Done -Extracted cmake-3.25.1.tar.gz -$ ./configure --prefix=/app/workspace --parallel=2 -- -DCMAKE_USE_OPENSSL=OFF -$ make -j 2 +Extracted cmake-3.27.7.tar.gz +$ ./configure --prefix=/app/workspace --parallel=12 -- -DCMAKE_USE_OPENSSL=OFF +$ make -j 12 $ make install building dav1d - version 1.1.0 ======================= -Downloading https://code.videolan.org/videolan/dav1d/-/archive/1.0.0/dav1d-1.1.0.tar.gz as dav1d-1.1.0.tar.gz +Downloading https://code.videolan.org/videolan/dav1d/-/archive/1.1.0/dav1d-1.1.0.tar.gz as dav1d-1.1.0.tar.gz ... Done Extracted dav1d-1.1.0.tar.gz $ meson build --prefix=/app/workspace --buildtype=release --default-library=static --libdir=/app/workspace/lib $ ninja -C build $ ninja -C build install -building svtav1 - version 1.4.1 +building svtav1 - version 1.7.0 ======================= -Downloading https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v1.4.1/SVT-AV1-v1.4.1.tar.gz as svtav1-1.4.1.tar.gz +Downloading https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v1.7.0/SVT-AV1-v1.7.0.tar.gz as svtav1-1.7.0.tar.gz ... Done -Extracted svtav1-1.4.1.tar.gz +Extracted svtav1-1.7.0.tar.gz $ cmake -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=off -DBUILD_SHARED_LIBS=OFF ../.. -GUnix Makefiles -DCMAKE_BUILD_TYPE=Release -$ make -j 2 +$ make -j 12 $ make install $ cp SvtAv1Enc.pc /app/workspace/lib/pkgconfig/ $ cp SvtAv1Dec.pc /app/workspace/lib/pkgconfig/ building x264 - version 941cae6d ======================= -Downloading https://code.videolan.org/videolan/x264/-/archive/941cae6d1d6d6344c9a1d27440eaf2872b18ca9a/x264-941cae6d1d6d6344c9a1d27440eaf2872b18ca9a.tar.gz as x264-941cae6d.tar.gz +Downloading https://code.videolan.org/videolan/x264/-/archive/941cae6d/x264-941cae6d.tar.gz as x264-941cae6d.tar.gz ... Done Extracted x264-941cae6d.tar.gz -$ ./configure --prefix=/app/workspace --enable-static --enable-pic CXXFLAGS=-fPIC -$ make -j 2 +$ ./configure --prefix=/app/workspace --enable-static --enable-pic CXXFLAGS=-fPIC +$ make -j 12 $ make install $ make install-lib-static @@ -471,21 +477,21 @@ Downloading https://github.com/videolan/x265/archive/Release_3.5.tar.gz as x265- ... Done Extracted x265-3.5.tar.gz $ cmake ../../../source -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=OFF -DBUILD_SHARED_LIBS=OFF -DHIGH_BIT_DEPTH=ON -DENABLE_HDR10_PLUS=ON -DEXPORT_C_API=OFF -DENABLE_CLI=OFF -DMAIN12=ON -$ make -j 2 +$ make -j 12 $ cmake ../../../source -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=OFF -DBUILD_SHARED_LIBS=OFF -DHIGH_BIT_DEPTH=ON -DENABLE_HDR10_PLUS=ON -DEXPORT_C_API=OFF -DENABLE_CLI=OFF -$ make -j 2 +$ make -j 12 $ cmake ../../../source -DCMAKE_INSTALL_PREFIX=/app/workspace -DENABLE_SHARED=OFF -DBUILD_SHARED_LIBS=OFF -DEXTRA_LIB=x265_main10.a;x265_main12.a;-ldl -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON -$ make -j 2 +$ make -j 12 $ ar -M $ make install -building libvpx - version 1.13.0 +building libvpx - version 1.13.1 ======================= -Downloading https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.0.tar.gz as libvpx-1.13.0.tar.gz +Downloading https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.1.tar.gz as libvpx-1.13.1.tar.gz ... Done -Extracted libvpx-1.13.0.tar.gz +Extracted libvpx-1.13.1.tar.gz $ ./configure --prefix=/app/workspace --disable-unit-tests --disable-shared --disable-examples --as=yasm --enable-vp9-highbitdepth -$ make -j 2 +$ make -j 12 $ make install building xvidcore - version 1.3.7 @@ -494,37 +500,37 @@ Downloading https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz as xvidco ... Done Extracted xvidcore-1.3.7.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install $ rm /app/workspace/lib/libxvidcore.so /app/workspace/lib/libxvidcore.so.4 /app/workspace/lib/libxvidcore.so.4.3 -building vid_stab - version 1.1.0 +building vid_stab - version 1.1.1 ======================= -Downloading https://github.com/georgmartius/vid.stab/archive/v1.1.0.tar.gz as vid.stab-1.1.0.tar.gz +Downloading https://github.com/georgmartius/vid.stab/archive/v1.1.1.tar.gz as vid.stab-1.1.1.tar.gz ... Done -Extracted vid.stab-1.1.0.tar.gz +Extracted vid.stab-1.1.1.tar.gz $ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/app/workspace -DUSE_OMP=OFF -DENABLE_SHARED=off . $ make $ make install -building av1 - version bcfe6fb +building av1 - version 7b5f665 ======================= -Downloading https://aomedia.googlesource.com/aom/+archive/bcfe6fbfed315f83ee8a95465c654ee8078dbff9.tar.gz as av1.tar.gz +Downloading https://aomedia.googlesource.com/aom/+archive/7b5f665.tar.gz as av1.tar.gz ... Done Extracted av1.tar.gz $ cmake -DENABLE_TESTS=0 -DENABLE_EXAMPLES=0 -DCMAKE_INSTALL_PREFIX=/app/workspace -DCMAKE_INSTALL_LIBDIR=lib /app/packages/av1 -$ make -j 2 +$ make -j 12 $ make install -building zimg - version 3.0.4 +building zimg - version 3.0.5 ======================= -Downloading https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.4.tar.gz as zimg-3.0.4.tar.gz +Downloading https://github.com/sekrit-twc/zimg/archive/refs/tags/release-3.0.5.tar.gz as zimg-3.0.5.tar.gz ... Done -Extracted zimg-3.0.4.tar.gz +Extracted zimg-3.0.5.tar.gz $ /app/workspace/bin/libtoolize -i -f -q $ ./autogen.sh --prefix=/app/workspace $ ./configure --prefix=/app/workspace --enable-static --disable-shared -$ make -j 2 +$ make -j 12 $ make install building lv2 - version 1.18.10 @@ -538,7 +544,7 @@ $ ninja -C build install building waflib - version b600c92 ======================= -Downloading https://gitlab.com/drobilla/autowaf/-/archive/b600c928b221a001faeab7bd92786d0b25714bc8/autowaf-b600c928b221a001faeab7bd92786d0b25714bc8.tar.gz as autowaf.tar.gz +Downloading https://gitlab.com/drobilla/autowaf/-/archive/b600c92/autowaf-b600c92.tar.gz as autowaf.tar.gz ... Done Extracted autowaf.tar.gz @@ -557,7 +563,7 @@ Downloading https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/8.45/pcre ... Done Extracted pcre-8.45.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install building sord - version 0.16.14 @@ -589,11 +595,11 @@ $ ninja -C build install building opencore - version 0.1.6 ======================= -Downloading https://netactuate.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz as opencore-amr-0.1.6.tar.gz +Downloading https://deac-ams.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz as opencore-amr-0.1.6.tar.gz ... Done Extracted opencore-amr-0.1.6.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install building lame - version 3.100 @@ -602,16 +608,16 @@ Downloading https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.ta ... Done Extracted lame-3.100.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install -building opus - version 1.3.1 +building opus - version 1.4 ======================= -Downloading https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz as opus-1.3.1.tar.gz +Downloading https://downloads.xiph.org/releases/opus/opus-1.4.tar.gz as opus-1.4.tar.gz ... Done -Extracted opus-1.3.1.tar.gz +Extracted opus-1.4.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install building libogg - version 1.3.5 @@ -620,7 +626,7 @@ Downloading https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.5.tar.xz as ... Done Extracted libogg-1.3.5.tar.xz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install building libvorbis - version 1.3.7 @@ -629,7 +635,7 @@ Downloading https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.7.tar. ... Done Extracted libvorbis-1.3.7.tar.gz $ ./configure --prefix=/app/workspace --with-ogg-libraries=/app/workspace/lib --with-ogg-includes=/app/workspace/include/ --enable-static --disable-shared --disable-oggtest -$ make -j 2 +$ make -j 12 $ make install building libtheora - version 1.1.1 @@ -638,7 +644,7 @@ Downloading https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-1.1.1.tar. ... Done Extracted libtheora-1.1.1.tar.gz $ ./configure --prefix=/app/workspace --with-ogg-libraries=/app/workspace/lib --with-ogg-includes=/app/workspace/include/ --with-vorbis-libraries=/app/workspace/lib --with-vorbis-includes=/app/workspace/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec -$ make -j 2 +$ make -j 12 $ make install building fdk_aac - version 2.0.2 @@ -647,7 +653,7 @@ Downloading https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac- ... Done Extracted fdk-aac-2.0.2.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static --enable-pic -$ make -j 2 +$ make -j 12 $ make install building libtiff - version 4.5.0 @@ -656,7 +662,7 @@ Downloading https://download.osgeo.org/libtiff/tiff-4.5.0.tar.xz as tiff-4.5.0.t ... Done Extracted tiff-4.5.0.tar.xz $ ./configure --prefix=/app/workspace --disable-shared --enable-static --disable-dependency-tracking --disable-lzma --disable-webp --disable-zstd --without-x -$ make -j 2 +$ make -j 12 $ make install building libpng - version 1.6.39 @@ -665,7 +671,7 @@ Downloading https://gigenet.dl.sourceforge.net/project/libpng/libpng16/1.6.39/li ... Done Extracted libpng-1.6.39.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install building libwebp - version 1.2.2 @@ -675,34 +681,61 @@ Downloading https://storage.googleapis.com/downloads.webmproject.org/releases/we Extracted libwebp-1.2.2.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include=/app/workspace/include/ --with-zlib-lib=/app/workspace/lib $ cmake -DCMAKE_INSTALL_PREFIX=/app/workspace -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON ../ -$ make -j 2 +$ make -j 12 $ make install -building libsdl - version 2.26.3 +building libsdl - version 2.28.5 ======================= -Downloading https://www.libsdl.org/release/SDL2-2.26.3.tar.gz as SDL2-2.26.3.tar.gz +Downloading https://github.com/libsdl-org/SDL/releases/download/release-2.28.5/SDL2-2.28.5.tar.gz as SDL2-2.28.5.tar.gz ... Done -Extracted SDL2-2.26.3.tar.gz +Extracted SDL2-2.28.5.tar.gz $ ./configure --prefix=/app/workspace --disable-shared --enable-static -$ make -j 2 +$ make -j 12 $ make install -building srt - version 1.5.1 +building FreeType2 - version 2.11.1 ======================= -Downloading https://github.com/Haivision/srt/archive/v1.5.1.tar.gz as srt-1.5.1.tar.gz +Downloading https://downloads.sourceforge.net/freetype/freetype-2.11.1.tar.xz as freetype-2.11.1.tar.xz ... Done -Extracted srt-1.5.1.tar.gz +Extracted freetype-2.11.1.tar.xz +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 12 +$ make install + +building srt - version 1.5.3 +======================= +Downloading https://github.com/Haivision/srt/archive/v1.5.3.tar.gz as srt-1.5.3.tar.gz +... Done +Extracted srt-1.5.3.tar.gz $ cmake . -DCMAKE_INSTALL_PREFIX=/app/workspace -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DENABLE_APPS=OFF -DUSE_STATIC_LIBSTDCXX=ON $ make install -building amf - version 1.4.29 +building libzmq - version 4.3.5 +======================= +Downloading https://github.com/zeromq/libzmq/releases/download/v4.3.5/zeromq-4.3.5.tar.gz as zeromq-4.3.5.tar.gz +... Done +Extracted zeromq-4.3.5.tar.gz +$ ./autogen.sh +$ ./configure --prefix=/app/workspace --disable-shared --enable-static +$ make -j 12 +$ make install + +building nv-codec - version 11.1.5.3 +======================= +Downloading https://github.com/FFmpeg/nv-codec-headers/releases/download/n11.1.5.3/nv-codec-headers-11.1.5.3.tar.gz as nv-codec-headers-11.1.5.3.tar.gz +... Done +Extracted nv-codec-headers-11.1.5.3.tar.gz +$ make PREFIX=/app/workspace +$ make PREFIX=/app/workspace install + +building amf - version 1.4.30 ======================= -Downloading https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.29.tar.gz as AMF-1.4.29.tar.gz +Downloading https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.30.tar.gz as AMF-1.4.30.tar.gz ... Done -Extracted AMF-1.4.29.tar.gz +Extracted AMF-1.4.30.tar.gz $ rm -rf /app/workspace/include/AMF $ mkdir -p /app/workspace/include/AMF -$ cp -r /app/packages/AMF-1.4.29/AMF-1.4.29/amf/public/include/components /app/packages/AMF-1.4.29/AMF-1.4.29/amf/public/include/core /app/workspace/include/AMF/ +$ cp -r /app/packages/AMF-1.4.30/AMF-1.4.30/amf/public/include/components /app/packages/AMF-1.4.30/AMF-1.4.30/amf/public/include/core /app/workspace/include/AMF/ building ffmpeg - version 6.0 ======================= @@ -738,7 +771,7 @@ EBX available yes EBP available yes debug symbols no strip symbols yes -optimize for size yes +optimize for size no optimizations yes static yes shared no @@ -754,17 +787,21 @@ makeinfo supports HTML no xmllint enabled no External libraries: -iconv libsrt libx265 -libaom libsvtav1 libxvid -libdav1d libtheora libzimg +iconv libsrt libxvid +libaom libsvtav1 libzimg +libdav1d libtheora libzmq libfdk_aac libvidstab lv2 -libmp3lame libvorbis openssl -libopencore_amrnb libvpx sdl2 -libopencore_amrwb libwebp zlib -libopus libx264 +libfreetype libvorbis openssl +libmp3lame libvpx sdl2 +libopencore_amrnb libwebp zlib +libopencore_amrwb libx264 +libopus libx265 External libraries providing hardware acceleration: -amf v4l2_m2m vaapi +amf cuvid nvenc +cuda ffnvcodec v4l2_m2m +cuda_llvm libnpp vaapi +cuda_nvcc nvdec Libraries: avcodec avformat swresample @@ -775,95 +812,96 @@ Programs: ffmpeg ffplay ffprobe Enabled decoders: -aac flic pfm -aac_fixed flv pgm -aac_latm fmvc pgmyuv -aasc fourxm pgssub -ac3 fraps pgx -ac3_fixed frwu phm -acelp_kelvin ftr photocd -adpcm_4xm g2m pictor -adpcm_adx g723_1 pixlet -adpcm_afc g729 pjs -adpcm_agm gdv png -adpcm_aica gem ppm -adpcm_argo gif prores -adpcm_ct gremlin_dpcm prosumer -adpcm_dtk gsm psd -adpcm_ea gsm_ms ptx -adpcm_ea_maxis_xa h261 qcelp -adpcm_ea_r1 h263 qdm2 -adpcm_ea_r2 h263_v4l2m2m qdmc -adpcm_ea_r3 h263i qdraw -adpcm_ea_xas h263p qoi -adpcm_g722 h264 qpeg -adpcm_g726 h264_v4l2m2m qtrle -adpcm_g726le hap r10k -adpcm_ima_acorn hca r210 -adpcm_ima_alp hcom ra_144 -adpcm_ima_amv hdr ra_288 -adpcm_ima_apc hevc ralf -adpcm_ima_apm hevc_v4l2m2m rasc -adpcm_ima_cunning hnm4_video rawvideo -adpcm_ima_dat4 hq_hqa realtext -adpcm_ima_dk3 hqx rka -adpcm_ima_dk4 huffyuv rl2 -adpcm_ima_ea_eacs hymt roq -adpcm_ima_ea_sead iac roq_dpcm -adpcm_ima_iss idcin rpza -adpcm_ima_moflex idf rscc -adpcm_ima_mtf iff_ilbm rv10 -adpcm_ima_oki ilbc rv20 -adpcm_ima_qt imc rv30 -adpcm_ima_rad imm4 rv40 -adpcm_ima_smjpeg imm5 s302m -adpcm_ima_ssi indeo2 sami -adpcm_ima_wav indeo3 sanm -adpcm_ima_ws indeo4 sbc -adpcm_ms indeo5 scpr -adpcm_mtaf interplay_acm screenpresso -adpcm_psx interplay_dpcm sdx2_dpcm -adpcm_sbpro_2 interplay_video sga -adpcm_sbpro_3 ipu sgi -adpcm_sbpro_4 jacosub sgirle -adpcm_swf jpeg2000 sheervideo -adpcm_thp jpegls shorten -adpcm_thp_le jv simbiosis_imx -adpcm_vima kgv1 sipr -adpcm_xa kmvc siren -adpcm_xmd lagarith smackaud -adpcm_yamaha libaom_av1 smacker -adpcm_zork libdav1d smc -agm libfdk_aac smvjpeg -aic libopencore_amrnb snow -alac libopencore_amrwb sol_dpcm -alias_pix libopus sonic -als libvorbis sp5x -amrnb libvpx_vp8 speedhq -amrwb libvpx_vp9 speex -amv loco srgc -anm lscr srt -ansi m101 ssa -anull mace3 stl -apac mace6 subrip -ape magicyuv subviewer -apng mdec subviewer1 -aptx media100 sunrast -aptx_hd metasound svq1 -arbc microdvd svq3 -argo mimic tak -ass misc4 targa -asv1 mjpeg targa_y216 -asv2 mjpegb tdsc -atrac1 mlp text -atrac3 mmvideo theora -atrac3al mobiclip thp -atrac3p motionpixels tiertexseqvideo -atrac3pal movtext tiff -atrac9 mp1 tmv -aura mp1float truehd -aura2 mp2 truemotion1 -av1 mp2float truemotion2 +aac fmvc pcx +aac_fixed fourxm pfm +aac_latm fraps pgm +aasc frwu pgmyuv +ac3 ftr pgssub +ac3_fixed g2m pgx +acelp_kelvin g723_1 phm +adpcm_4xm g729 photocd +adpcm_adx gdv pictor +adpcm_afc gem pixlet +adpcm_agm gif pjs +adpcm_aica gremlin_dpcm png +adpcm_argo gsm ppm +adpcm_ct gsm_ms prores +adpcm_dtk h261 prosumer +adpcm_ea h263 psd +adpcm_ea_maxis_xa h263_v4l2m2m ptx +adpcm_ea_r1 h263i qcelp +adpcm_ea_r2 h263p qdm2 +adpcm_ea_r3 h264 qdmc +adpcm_ea_xas h264_cuvid qdraw +adpcm_g722 h264_v4l2m2m qoi +adpcm_g726 hap qpeg +adpcm_g726le hca qtrle +adpcm_ima_acorn hcom r10k +adpcm_ima_alp hdr r210 +adpcm_ima_amv hevc ra_144 +adpcm_ima_apc hevc_cuvid ra_288 +adpcm_ima_apm hevc_v4l2m2m ralf +adpcm_ima_cunning hnm4_video rasc +adpcm_ima_dat4 hq_hqa rawvideo +adpcm_ima_dk3 hqx realtext +adpcm_ima_dk4 huffyuv rka +adpcm_ima_ea_eacs hymt rl2 +adpcm_ima_ea_sead iac roq +adpcm_ima_iss idcin roq_dpcm +adpcm_ima_moflex idf rpza +adpcm_ima_mtf iff_ilbm rscc +adpcm_ima_oki ilbc rv10 +adpcm_ima_qt imc rv20 +adpcm_ima_rad imm4 rv30 +adpcm_ima_smjpeg imm5 rv40 +adpcm_ima_ssi indeo2 s302m +adpcm_ima_wav indeo3 sami +adpcm_ima_ws indeo4 sanm +adpcm_ms indeo5 sbc +adpcm_mtaf interplay_acm scpr +adpcm_psx interplay_dpcm screenpresso +adpcm_sbpro_2 interplay_video sdx2_dpcm +adpcm_sbpro_3 ipu sga +adpcm_sbpro_4 jacosub sgi +adpcm_swf jpeg2000 sgirle +adpcm_thp jpegls sheervideo +adpcm_thp_le jv shorten +adpcm_vima kgv1 simbiosis_imx +adpcm_xa kmvc sipr +adpcm_xmd lagarith siren +adpcm_yamaha libaom_av1 smackaud +adpcm_zork libdav1d smacker +agm libfdk_aac smc +aic libopencore_amrnb smvjpeg +alac libopencore_amrwb snow +alias_pix libopus sol_dpcm +als libvorbis sonic +amrnb libvpx_vp8 sp5x +amrwb libvpx_vp9 speedhq +amv loco speex +anm lscr srgc +ansi m101 srt +anull mace3 ssa +apac mace6 stl +ape magicyuv subrip +apng mdec subviewer +aptx media100 subviewer1 +aptx_hd metasound sunrast +arbc microdvd svq1 +argo mimic svq3 +ass misc4 tak +asv1 mjpeg targa +asv2 mjpeg_cuvid targa_y216 +atrac1 mjpegb tdsc +atrac3 mlp text +atrac3al mmvideo theora +atrac3p mobiclip thp +atrac3pal motionpixels tiertexseqvideo +atrac9 movtext tiff +aura mp1 tmv +aura2 mp1float truehd +av1 mp2 truemotion1 +av1_cuvid mp2float truemotion2 avrn mp3 truemotion2rt avrp mp3adu truespeech avs mp3adufloat tscc @@ -872,156 +910,163 @@ ayuv mp3on4 tta bethsoftvid mp3on4float twinvq bfi mpc7 txd bink mpc8 ulti -binkaudio_dct mpeg1_v4l2m2m utvideo -binkaudio_rdft mpeg1video v210 -bintext mpeg2_v4l2m2m v210x -bitpacked mpeg2video v308 -bmp mpeg4 v408 -bmv_audio mpeg4_v4l2m2m v410 -bmv_video mpegvideo vb -bonk mpl2 vble -brender_pix msa1 vbn -c93 mscc vc1 -cavs msmpeg4v1 vc1_v4l2m2m -cbd2_dpcm msmpeg4v2 vc1image -ccaption msmpeg4v3 vcr1 -cdgraphics msnsiren vmdaudio -cdtoons msp2 vmdvideo -cdxl msrle vmnc -cfhd mss1 vnull -cinepak mss2 vorbis -clearvideo msvideo1 vp3 -cljr mszh vp4 -cllc mts2 vp5 -comfortnoise mv30 vp6 -cook mvc1 vp6a -cpia mvc2 vp6f -cri mvdv vp7 -cscd mvha vp8 -cyuv mwsc vp8_v4l2m2m -dca mxpeg vp9 -dds nellymoser vp9_v4l2m2m -derf_dpcm notchlc vplayer -dfa nuv vqa -dfpwm on2avc vqc -dirac opus wady_dpcm -dnxhd paf_audio wavarc -dolby_e paf_video wavpack -dpx pam wbmp -dsd_lsbf pbm wcmv -dsd_lsbf_planar pcm_alaw webp -dsd_msbf pcm_bluray webvtt -dsd_msbf_planar pcm_dvd wmalossless -dsicinaudio pcm_f16le wmapro -dsicinvideo pcm_f24le wmav1 -dss_sp pcm_f32be wmav2 -dst pcm_f32le wmavoice -dvaudio pcm_f64be wmv1 -dvbsub pcm_f64le wmv2 -dvdsub pcm_lxf wmv3 -dvvideo pcm_mulaw wmv3image -dxa pcm_s16be wnv1 -dxtory pcm_s16be_planar wrapped_avframe -dxv pcm_s16le ws_snd1 -eac3 pcm_s16le_planar xan_dpcm -eacmv pcm_s24be xan_wc3 -eamad pcm_s24daud xan_wc4 -eatgq pcm_s24le xbin -eatgv pcm_s24le_planar xbm -eatqi pcm_s32be xface -eightbps pcm_s32le xl -eightsvx_exp pcm_s32le_planar xma1 -eightsvx_fib pcm_s64be xma2 -escape124 pcm_s64le xpm -escape130 pcm_s8 xsub -evrc pcm_s8_planar xwd -exr pcm_sga y41p -fastaudio pcm_u16be ylc -ffv1 pcm_u16le yop -ffvhuff pcm_u24be yuv4 -ffwavesynth pcm_u24le zero12v -fic pcm_u32be zerocodec -fits pcm_u32le zlib -flac pcm_u8 zmbv -flashsv pcm_vidc -flashsv2 pcx +binkaudio_dct mpeg1_cuvid utvideo +binkaudio_rdft mpeg1_v4l2m2m v210 +bintext mpeg1video v210x +bitpacked mpeg2_cuvid v308 +bmp mpeg2_v4l2m2m v408 +bmv_audio mpeg2video v410 +bmv_video mpeg4 vb +bonk mpeg4_cuvid vble +brender_pix mpeg4_v4l2m2m vbn +c93 mpegvideo vc1 +cavs mpl2 vc1_cuvid +cbd2_dpcm msa1 vc1_v4l2m2m +ccaption mscc vc1image +cdgraphics msmpeg4v1 vcr1 +cdtoons msmpeg4v2 vmdaudio +cdxl msmpeg4v3 vmdvideo +cfhd msnsiren vmnc +cinepak msp2 vnull +clearvideo msrle vorbis +cljr mss1 vp3 +cllc mss2 vp4 +comfortnoise msvideo1 vp5 +cook mszh vp6 +cpia mts2 vp6a +cri mv30 vp6f +cscd mvc1 vp7 +cyuv mvc2 vp8 +dca mvdv vp8_cuvid +dds mvha vp8_v4l2m2m +derf_dpcm mwsc vp9 +dfa mxpeg vp9_cuvid +dfpwm nellymoser vp9_v4l2m2m +dirac notchlc vplayer +dnxhd nuv vqa +dolby_e on2avc vqc +dpx opus wady_dpcm +dsd_lsbf paf_audio wavarc +dsd_lsbf_planar paf_video wavpack +dsd_msbf pam wbmp +dsd_msbf_planar pbm wcmv +dsicinaudio pcm_alaw webp +dsicinvideo pcm_bluray webvtt +dss_sp pcm_dvd wmalossless +dst pcm_f16le wmapro +dvaudio pcm_f24le wmav1 +dvbsub pcm_f32be wmav2 +dvdsub pcm_f32le wmavoice +dvvideo pcm_f64be wmv1 +dxa pcm_f64le wmv2 +dxtory pcm_lxf wmv3 +dxv pcm_mulaw wmv3image +eac3 pcm_s16be wnv1 +eacmv pcm_s16be_planar wrapped_avframe +eamad pcm_s16le ws_snd1 +eatgq pcm_s16le_planar xan_dpcm +eatgv pcm_s24be xan_wc3 +eatqi pcm_s24daud xan_wc4 +eightbps pcm_s24le xbin +eightsvx_exp pcm_s24le_planar xbm +eightsvx_fib pcm_s32be xface +escape124 pcm_s32le xl +escape130 pcm_s32le_planar xma1 +evrc pcm_s64be xma2 +exr pcm_s64le xpm +fastaudio pcm_s8 xsub +ffv1 pcm_s8_planar xwd +ffvhuff pcm_sga y41p +ffwavesynth pcm_u16be ylc +fic pcm_u16le yop +fits pcm_u24be yuv4 +flac pcm_u24le zero12v +flashsv pcm_u32be zerocodec +flashsv2 pcm_u32le zlib +flic pcm_u8 zmbv +flv pcm_vidc Enabled encoders: -a64multi huffyuv pcm_vidc -a64multi5 jpeg2000 pcx -aac jpegls pfm -ac3 libaom_av1 pgm -ac3_fixed libfdk_aac pgmyuv -adpcm_adx libmp3lame phm -adpcm_argo libopencore_amrnb png -adpcm_g722 libopus ppm -adpcm_g726 libsvtav1 prores -adpcm_g726le libtheora prores_aw -adpcm_ima_alp libvorbis prores_ks -adpcm_ima_amv libvpx_vp8 qoi -adpcm_ima_apm libvpx_vp9 qtrle -adpcm_ima_qt libwebp r10k -adpcm_ima_ssi libwebp_anim r210 -adpcm_ima_wav libx264 ra_144 -adpcm_ima_ws libx264rgb rawvideo -adpcm_ms libx265 roq -adpcm_swf libxvid roq_dpcm -adpcm_yamaha ljpeg rpza -alac magicyuv rv10 -alias_pix mjpeg rv20 -amv mjpeg_vaapi s302m -anull mlp sbc -apng movtext sgi -aptx mp2 smc -aptx_hd mp2fixed snow -ass mpeg1video sonic -asv1 mpeg2_vaapi sonic_ls -asv2 mpeg2video speedhq -av1_amf mpeg4 srt -avrp mpeg4_v4l2m2m ssa -avui msmpeg4v2 subrip -ayuv msmpeg4v3 sunrast -bitpacked msvideo1 svq1 -bmp nellymoser targa -cfhd opus text -cinepak pam tiff -cljr pbm truehd -comfortnoise pcm_alaw tta -dca pcm_bluray ttml -dfpwm pcm_dvd utvideo -dnxhd pcm_f32be v210 -dpx pcm_f32le v308 -dvbsub pcm_f64be v408 -dvdsub pcm_f64le v410 -dvvideo pcm_mulaw vbn -eac3 pcm_s16be vc2 -exr pcm_s16be_planar vnull -ffv1 pcm_s16le vorbis -ffvhuff pcm_s16le_planar vp8_v4l2m2m -fits pcm_s24be vp8_vaapi -flac pcm_s24daud vp9_vaapi -flashsv pcm_s24le wavpack -flashsv2 pcm_s24le_planar wbmp -flv pcm_s32be webvtt -g723_1 pcm_s32le wmav1 -gif pcm_s32le_planar wmav2 -h261 pcm_s64be wmv1 -h263 pcm_s64le wmv2 -h263_v4l2m2m pcm_s8 wrapped_avframe -h263p pcm_s8_planar xbm -h264_amf pcm_u16be xface -h264_v4l2m2m pcm_u16le xsub -h264_vaapi pcm_u24be xwd -hdr pcm_u24le y41p -hevc_amf pcm_u32be yuv4 -hevc_v4l2m2m pcm_u32le zlib -hevc_vaapi pcm_u8 zmbv +a64multi hevc_vaapi pcm_vidc +a64multi5 huffyuv pcx +aac jpeg2000 pfm +ac3 jpegls pgm +ac3_fixed libaom_av1 pgmyuv +adpcm_adx libfdk_aac phm +adpcm_argo libmp3lame png +adpcm_g722 libopencore_amrnb ppm +adpcm_g726 libopus prores +adpcm_g726le libsvtav1 prores_aw +adpcm_ima_alp libtheora prores_ks +adpcm_ima_amv libvorbis qoi +adpcm_ima_apm libvpx_vp8 qtrle +adpcm_ima_qt libvpx_vp9 r10k +adpcm_ima_ssi libwebp r210 +adpcm_ima_wav libwebp_anim ra_144 +adpcm_ima_ws libx264 rawvideo +adpcm_ms libx264rgb roq +adpcm_swf libx265 roq_dpcm +adpcm_yamaha libxvid rpza +alac ljpeg rv10 +alias_pix magicyuv rv20 +amv mjpeg s302m +anull mjpeg_vaapi sbc +apng mlp sgi +aptx movtext smc +aptx_hd mp2 snow +ass mp2fixed sonic +asv1 mpeg1video sonic_ls +asv2 mpeg2_vaapi speedhq +av1_amf mpeg2video srt +avrp mpeg4 ssa +avui mpeg4_v4l2m2m subrip +ayuv msmpeg4v2 sunrast +bitpacked msmpeg4v3 svq1 +bmp msvideo1 targa +cfhd nellymoser text +cinepak opus tiff +cljr pam truehd +comfortnoise pbm tta +dca pcm_alaw ttml +dfpwm pcm_bluray utvideo +dnxhd pcm_dvd v210 +dpx pcm_f32be v308 +dvbsub pcm_f32le v408 +dvdsub pcm_f64be v410 +dvvideo pcm_f64le vbn +eac3 pcm_mulaw vc2 +exr pcm_s16be vnull +ffv1 pcm_s16be_planar vorbis +ffvhuff pcm_s16le vp8_v4l2m2m +fits pcm_s16le_planar vp8_vaapi +flac pcm_s24be vp9_vaapi +flashsv pcm_s24daud wavpack +flashsv2 pcm_s24le wbmp +flv pcm_s24le_planar webvtt +g723_1 pcm_s32be wmav1 +gif pcm_s32le wmav2 +h261 pcm_s32le_planar wmv1 +h263 pcm_s64be wmv2 +h263_v4l2m2m pcm_s64le wrapped_avframe +h263p pcm_s8 xbm +h264_amf pcm_s8_planar xface +h264_nvenc pcm_u16be xsub +h264_v4l2m2m pcm_u16le xwd +h264_vaapi pcm_u24be y41p +hdr pcm_u24le yuv4 +hevc_amf pcm_u32be zlib +hevc_nvenc pcm_u32le zmbv +hevc_v4l2m2m pcm_u8 Enabled hwaccels: -av1_vaapi mjpeg_vaapi vp8_vaapi -h263_vaapi mpeg2_vaapi vp9_vaapi -h264_vaapi mpeg4_vaapi wmv3_vaapi -hevc_vaapi vc1_vaapi +av1_nvdec mjpeg_vaapi vp8_nvdec +av1_vaapi mpeg1_nvdec vp8_vaapi +h263_vaapi mpeg2_nvdec vp9_nvdec +h264_nvdec mpeg2_vaapi vp9_vaapi +h264_vaapi mpeg4_nvdec wmv3_nvdec +hevc_nvdec mpeg4_vaapi wmv3_vaapi +hevc_vaapi vc1_nvdec +mjpeg_nvdec vc1_vaapi Enabled parsers: aac dvdsub opus @@ -1223,61 +1268,61 @@ gxf pcm_mulaw wv h261 pcm_s16be yuv4mpegpipe Enabled protocols: -async http rtmps -cache httpproxy rtmpt -concat https rtmpte -concatf icecast rtmpts -crypto ipfs_gateway rtp -data ipns_gateway srtp -fd libsrt subfile -ffrtmpcrypt md5 tcp -ffrtmphttp mmsh tee -file mmst tls -ftp pipe udp -gopher prompeg udplite -gophers rtmp unix -hls rtmpe +async http rtmpe +cache httpproxy rtmps +concat https rtmpt +concatf icecast rtmpte +crypto ipfs_gateway rtmpts +data ipns_gateway rtp +fd libsrt srtp +ffrtmpcrypt libzmq subfile +ffrtmphttp md5 tcp +file mmsh tee +ftp mmst tls +gopher pipe udp +gophers prompeg udplite +hls rtmp unix Enabled filters: -a3dscope datascope pad -abench dblur pal100bars -abitscope dcshift pal75bars -acompressor dctdnoiz palettegen -acontrast deband paletteuse -acopy deblock pan -acrossfade decimate perms -acrossover deconvolve perspective -acrusher dedot phase -acue deesser photosensitivity -addroi deflate pixdesctest -adeclick deflicker pixelize -adeclip deinterlace_vaapi pixscope -adecorrelate dejudder pp -adelay delogo pp7 -adenorm denoise_vaapi premultiply -aderivative derain prewitt -adrawgraph deshake procamp_vaapi -adrc despill pseudocolor -adynamicequalizer detelecine psnr -adynamicsmooth dialoguenhance pullup -aecho dilation qp -aemphasis displace random -aeval dnn_classify readeia608 -aevalsrc dnn_detect readvitc -aexciter dnn_processing realtime -afade doubleweave remap -afdelaysrc drawbox removegrain -afftdn drawgraph removelogo -afftfilt drawgrid repeatfields -afifo drmeter replaygain -afir dynaudnorm reverse -afirsrc earwax rgbashift -aformat ebur128 rgbtestsrc -afreqshift edgedetect roberts -afwtdn elbg rotate -agate entropy sab -agraphmonitor epx scale -ahistogram eq scale2ref +a3dscope dblur palettegen +abench dcshift paletteuse +abitscope dctdnoiz pan +acompressor deband perms +acontrast deblock perspective +acopy decimate phase +acrossfade deconvolve photosensitivity +acrossover dedot pixdesctest +acrusher deesser pixelize +acue deflate pixscope +addroi deflicker pp +adeclick deinterlace_vaapi pp7 +adeclip dejudder premultiply +adecorrelate delogo prewitt +adelay denoise_vaapi procamp_vaapi +adenorm derain pseudocolor +aderivative deshake psnr +adrawgraph despill pullup +adrc detelecine qp +adynamicequalizer dialoguenhance random +adynamicsmooth dilation readeia608 +aecho displace readvitc +aemphasis dnn_classify realtime +aeval dnn_detect remap +aevalsrc dnn_processing removegrain +aexciter doubleweave removelogo +afade drawbox repeatfields +afdelaysrc drawgraph replaygain +afftdn drawgrid reverse +afftfilt drawtext rgbashift +afifo drmeter rgbtestsrc +afir dynaudnorm roberts +afirsrc earwax rotate +aformat ebur128 sab +afreqshift edgedetect scale +afwtdn elbg scale2ref +agate entropy scale2ref_npp +agraphmonitor epx scale_cuda +ahistogram eq scale_npp aiir equalizer scale_vaapi aintegral erosion scdet ainterleave estdif scharr @@ -1294,111 +1339,116 @@ ametadata fieldmatch setpts amix fieldorder setrange amovie fifo setsar amplify fillborders settb -amultiply find_rect sharpness_vaapi -anequalizer firequalizer shear -anlmdn flanger showcqt -anlmf floodfill showcwt -anlms format showfreqs -anoisesrc fps showinfo -anull framepack showpalette -anullsink framerate showspatial -anullsrc framestep showspectrum -apad freezedetect showspectrumpic -aperms freezeframes showvolume -aphasemeter fspp showwaves -aphaser gblur showwavespic -aphaseshift geq shuffleframes -apsyclip gradfun shufflepixels -apulsator gradients shuffleplanes -arealtime graphmonitor sidechaincompress -aresample grayworld sidechaingate -areverse greyedge sidedata -arnndn guided sierpinski -asdr haas signalstats -asegment haldclut signature -aselect haldclutsrc silencedetect -asendcmd hdcd silenceremove -asetnsamples headphone sinc -asetpts hflip sine -asetrate highpass siti -asettb highshelf smartblur -ashowinfo hilbert smptebars -asidedata histeq smptehdbars -asoftclip histogram sobel -aspectralstats hqdn3d spectrumsynth -asplit hqx speechnorm -astats hstack split -astreamselect hstack_vaapi spp -asubboost hsvhold sr -asubcut hsvkey ssim -asupercut hue ssim360 -asuperpass huesaturation stereo3d -asuperstop hwdownload stereotools -atadenoise hwmap stereowiden -atempo hwupload streamselect -atilt hysteresis super2xsai -atrim identity superequalizer -avectorscope idet surround -avgblur il swaprect -avsynctest inflate swapuv -axcorrelate interlace tblend +amultiply find_rect sharpen_npp +anequalizer firequalizer sharpness_vaapi +anlmdn flanger shear +anlmf floodfill showcqt +anlms format showcwt +anoisesrc fps showfreqs +anull framepack showinfo +anullsink framerate showpalette +anullsrc framestep showspatial +apad freezedetect showspectrum +aperms freezeframes showspectrumpic +aphasemeter fspp showvolume +aphaser gblur showwaves +aphaseshift geq showwavespic +apsyclip gradfun shuffleframes +apulsator gradients shufflepixels +arealtime graphmonitor shuffleplanes +aresample grayworld sidechaincompress +areverse greyedge sidechaingate +arnndn guided sidedata +asdr haas sierpinski +asegment haldclut signalstats +aselect haldclutsrc signature +asendcmd hdcd silencedetect +asetnsamples headphone silenceremove +asetpts hflip sinc +asetrate highpass sine +asettb highshelf siti +ashowinfo hilbert smartblur +asidedata histeq smptebars +asoftclip histogram smptehdbars +aspectralstats hqdn3d sobel +asplit hqx spectrumsynth +astats hstack speechnorm +astreamselect hstack_vaapi split +asubboost hsvhold spp +asubcut hsvkey sr +asupercut hue ssim +asuperpass huesaturation ssim360 +asuperstop hwdownload stereo3d +atadenoise hwmap stereotools +atempo hwupload stereowiden +atilt hwupload_cuda streamselect +atrim hysteresis super2xsai +avectorscope identity superequalizer +avgblur idet surround +avsynctest il swaprect +axcorrelate inflate swapuv +azmq interlace tblend backgroundkey interleave telecine bandpass join testsrc bandreject kerndeint testsrc2 bass kirsch thistogram bbox lagfun threshold bench latency thumbnail -bilateral lenscorrection tile -biquad life tiltshelf -bitplanenoise limitdiff tinterlace -blackdetect limiter tlut2 -blackframe loop tmedian -blend loudnorm tmidequalizer -blockdetect lowpass tmix -blurdetect lowshelf tonemap -bm3d lumakey tonemap_vaapi -boxblur lut tpad -bwdif lut1d transpose -cas lut2 transpose_vaapi -cellauto lut3d treble -channelmap lutrgb tremolo -channelsplit lutyuv trim -chorus lv2 unpremultiply -chromahold mandelbrot unsharp -chromakey maskedclamp untile -chromanr maskedmax v360 -chromashift maskedmerge vaguedenoiser -ciescope maskedmin varblur -codecview maskedthreshold vectorscope -color maskfun vflip -colorbalance mcompand vfrdet -colorchannelmixer median vibrance -colorchart mergeplanes vibrato -colorcontrast mestimate vidstabdetect -colorcorrect metadata vidstabtransform -colorhold midequalizer vif -colorize minterpolate vignette -colorkey mix virtualbass -colorlevels monochrome vmafmotion -colormap morpho volume -colormatrix movie volumedetect -colorspace mpdecimate vstack -colorspectrum mptestsrc vstack_vaapi -colortemperature msad w3fdif -compand multiply waveform -compensationdelay negate weave -concat nlmeans xbr -convolution nnedi xcorrelate -convolve noformat xfade -copy noise xmedian -corr normalize xstack -cover_rect null xstack_vaapi -crop nullsink yadif -cropdetect nullsrc yaepblur -crossfeed oscilloscope yuvtestsrc -crystalizer overlay zoompan -cue overlay_vaapi zscale -curves owdenoise +bilateral lenscorrection thumbnail_cuda +bilateral_cuda life tile +biquad limitdiff tiltshelf +bitplanenoise limiter tinterlace +blackdetect loop tlut2 +blackframe loudnorm tmedian +blend lowpass tmidequalizer +blockdetect lowshelf tmix +blurdetect lumakey tonemap +bm3d lut tonemap_vaapi +boxblur lut1d tpad +bwdif lut2 transpose +cas lut3d transpose_npp +cellauto lutrgb transpose_vaapi +channelmap lutyuv treble +channelsplit lv2 tremolo +chorus mandelbrot trim +chromahold maskedclamp unpremultiply +chromakey maskedmax unsharp +chromakey_cuda maskedmerge untile +chromanr maskedmin v360 +chromashift maskedthreshold vaguedenoiser +ciescope maskfun varblur +codecview mcompand vectorscope +color median vflip +colorbalance mergeplanes vfrdet +colorchannelmixer mestimate vibrance +colorchart metadata vibrato +colorcontrast midequalizer vidstabdetect +colorcorrect minterpolate vidstabtransform +colorhold mix vif +colorize monochrome vignette +colorkey morpho virtualbass +colorlevels movie vmafmotion +colormap mpdecimate volume +colormatrix mptestsrc volumedetect +colorspace msad vstack +colorspace_cuda multiply vstack_vaapi +colorspectrum negate w3fdif +colortemperature nlmeans waveform +compand nnedi weave +compensationdelay noformat xbr +concat noise xcorrelate +convolution normalize xfade +convolve null xmedian +copy nullsink xstack +corr nullsrc xstack_vaapi +cover_rect oscilloscope yadif +crop overlay yadif_cuda +cropdetect overlay_cuda yaepblur +crossfeed overlay_vaapi yuvtestsrc +crystalizer owdenoise zmq +cue pad zoompan +curves pal100bars zscale +datascope pal75bars Enabled bsfs: aac_adtstoasc h264_redundant_pps opus_metadata @@ -1425,7 +1475,7 @@ fbdev sdl2 oss v4l2 License: nonfree and unredistributable -$ make -j 2 +$ make -j 12 $ make install Building done. The following binaries can be found here: diff --git a/build-ffmpeg b/build-ffmpeg index b5bc8651..ab8bf84f 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -280,13 +280,14 @@ fi # Check CUDA compute capability if [[ "$OSTYPE" == "linux-gnu" ]]; then - if command_exists "nvcc"; then - export CUDA_COMPUTE_CAPABILITY=$(deviceQuery | grep Capability | head -n 1 | awk 'END {print $NF}' | tr -d '.') - echo "CUDA compute capability: $CUDA_COMPUTE_CAPABILITY" - fi - if [ -z "$CUDA_COMPUTE_CAPABILITY" ]; then - echo "CUDA compute capability could not be found... do you have CUDA access in docker?" - exit 1 + if [ -n "$CUDA_COMPUTE_CAPABILITY" ]; then + echo "CUDA env variable provided, building with compute capability $CUDA_COMPUTE_CAPABILITY" + else + # Set default value if no compute capability was found + # Note that multi-architecture builds are not supported in ffmpeg + # see https://patchwork.ffmpeg.org/comment/62905/ + export CUDA_COMPUTE_CAPABILITY=52 + echo "CUDA env variable not provided, using default compute capability $CUDA_COMPUTE_CAPABILITY" fi fi @@ -330,80 +331,80 @@ fi ## if build "giflib" "5.2.1"; then - download "https://netcologne.dl.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz" + download "https://netcologne.dl.sourceforge.net/project/giflib/giflib-$CURRENT_PACKAGE_VERSION.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then download "https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/c323/attachment/Makefile.patch" - execute patch -p0 --forward "${PACKAGES}/giflib-5.2.1/Makefile" "${PACKAGES}/Makefile.patch" || true + execute patch -p0 --forward "${PACKAGES}/giflib-$CURRENT_PACKAGE_VERSION/Makefile" "${PACKAGES}/Makefile.patch" || true fi - cd "${PACKAGES}"/giflib-5.2.1 || exit + cd "${PACKAGES}"/giflib-$CURRENT_PACKAGE_VERSION || exit #multicore build disabled for this library execute make execute make PREFIX="${WORKSPACE}" install - build_done "giflib" "5.2.1" + build_done "giflib" $CURRENT_PACKAGE_VERSION fi if build "pkg-config" "0.29.2"; then - download "https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz" + download "https://pkgconfig.freedesktop.org/releases/pkg-config-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --silent --prefix="${WORKSPACE}" --with-pc-path="${WORKSPACE}"/lib/pkgconfig --with-internal-glib execute make -j $MJOBS execute make install - build_done "pkg-config" "0.29.2" + build_done "pkg-config" $CURRENT_PACKAGE_VERSION fi if build "yasm" "1.3.0"; then - download "https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz" + download "https://github.com/yasm/yasm/releases/download/v$CURRENT_PACKAGE_VERSION/yasm-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "yasm" "1.3.0" + build_done "yasm" $CURRENT_PACKAGE_VERSION fi if build "nasm" "2.16.01"; then - download "https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.xz" + download "https://www.nasm.us/pub/nasm/releasebuilds/$CURRENT_PACKAGE_VERSION/nasm-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "nasm" "2.16.01" + build_done "nasm" $CURRENT_PACKAGE_VERSION fi if build "zlib" "1.2.13"; then - download "https://zlib.net/fossils/zlib-1.2.13.tar.gz" + download "https://github.com/madler/zlib/releases/download/v$CURRENT_PACKAGE_VERSION/zlib-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --static --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "zlib" "1.2.13" + build_done "zlib" $CURRENT_PACKAGE_VERSION fi if build "m4" "1.4.19"; then - download "https://ftp.gnu.org/gnu/m4/m4-1.4.19.tar.gz" + download "https://ftp.gnu.org/gnu/m4/m4-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "m4" "1.4.19" + build_done "m4" $CURRENT_PACKAGE_VERSION fi if build "autoconf" "2.71"; then - download "https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz" + download "https://ftp.gnu.org/gnu/autoconf/autoconf-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "autoconf" "2.71" + build_done "autoconf" $CURRENT_PACKAGE_VERSION fi if build "automake" "1.16.5"; then - download "https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz" + download "https://ftp.gnu.org/gnu/automake/automake-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS execute make install - build_done "automake" "1.16.5" + build_done "automake" $CURRENT_PACKAGE_VERSION fi if build "libtool" "2.4.7"; then - download "https://ftpmirror.gnu.org/libtool/libtool-2.4.7.tar.gz" + download "https://ftpmirror.gnu.org/libtool/libtool-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --enable-static --disable-shared execute make -j $MJOBS execute make install - build_done "libtool" "2.4.7" + build_done "libtool" $CURRENT_PACKAGE_VERSION fi if $NONFREE_AND_GPL; then @@ -422,11 +423,11 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-openssl") else if build "gmp" "6.2.1"; then - download "https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz" + download "https://ftp.gnu.org/gnu/gmp/gmp-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "gmp" "6.2.1" + build_done "gmp" $CURRENT_PACKAGE_VERSION fi if build "nettle" "3.9.1"; then @@ -475,7 +476,7 @@ if command_exists "python3"; then fi if command_exists "meson"; then if build "dav1d" "1.1.0"; then - download "https://code.videolan.org/videolan/dav1d/-/archive/1.1.0/dav1d-1.1.0.tar.gz" + download "https://code.videolan.org/videolan/dav1d/-/archive/$CURRENT_PACKAGE_VERSION/dav1d-$CURRENT_PACKAGE_VERSION.tar.gz" make_dir build CFLAGSBACKUP=$CFLAGS @@ -491,7 +492,7 @@ if command_exists "python3"; then export CFLAGS=$CFLAGSBACKUP fi - build_done "dav1d" "1.1.0" + build_done "dav1d" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libdav1d") fi @@ -526,8 +527,8 @@ fi if $NONFREE_AND_GPL; then if build "x264" "941cae6d"; then - download "https://code.videolan.org/videolan/x264/-/archive/941cae6d1d6d6344c9a1d27440eaf2872b18ca9a/x264-941cae6d1d6d6344c9a1d27440eaf2872b18ca9a.tar.gz" "x264-941cae6d.tar.gz" - cd "${PACKAGES}"/x264-941cae6d || exit + download "https://code.videolan.org/videolan/x264/-/archive/$CURRENT_PACKAGE_VERSION/x264-$CURRENT_PACKAGE_VERSION.tar.gz" "x264-$CURRENT_PACKAGE_VERSION.tar.gz" + cd "${PACKAGES}"/x264-$CURRENT_PACKAGE_VERSION || exit if [[ "$OSTYPE" == "linux-gnu" ]]; then execute ./configure --prefix="${WORKSPACE}" --enable-static --enable-pic CXXFLAGS="-fPIC ${CXXFLAGS}" @@ -539,14 +540,14 @@ if $NONFREE_AND_GPL; then execute make install execute make install-lib-static - build_done "x264" "941cae6d" + build_done "x264" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libx264") fi if $NONFREE_AND_GPL; then if build "x265" "3.5"; then - download "https://github.com/videolan/x265/archive/Release_3.5.tar.gz" "x265-3.5.tar.gz" # This is actually 3.4 if looking at x265Version.txt + download "https://github.com/videolan/x265/archive/Release_$CURRENT_PACKAGE_VERSION.tar.gz" "x265-$CURRENT_PACKAGE_VERSION.tar.gz" # This is actually 3.4 if looking at x265Version.txt cd build/linux || exit rm -rf 8bit 10bit 12bit 2>/dev/null mkdir -p 8bit 10bit 12bit @@ -583,7 +584,7 @@ EOF sed -i.backup 's/-lgcc_s/-lgcc_eh/g' "${WORKSPACE}/lib/pkgconfig/x265.pc" # The -i.backup is intended and required on MacOS: https://stackoverflow.com/questions/5694228/sed-in-place-flag-that-works-both-on-mac-bsd-and-linux fi - build_done "x265" "3.5" + build_done "x265" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libx265") fi @@ -607,7 +608,7 @@ CONFIGURE_OPTIONS+=("--enable-libvpx") if $NONFREE_AND_GPL; then if build "xvidcore" "1.3.7"; then - download "https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz" + download "https://downloads.xvid.com/downloads/xvidcore-$CURRENT_PACKAGE_VERSION.tar.gz" cd build/generic || exit execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS @@ -621,7 +622,7 @@ if $NONFREE_AND_GPL; then execute rm "${WORKSPACE}"/lib/libxvidcore.so* fi - build_done "xvidcore" "1.3.7" + build_done "xvidcore" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libxvid") fi @@ -646,7 +647,7 @@ fi if build "av1" "7b5f665"; then # libaom bcfe6fb == v3.5.0 - download "https://aomedia.googlesource.com/aom/+archive/7b5f665231dfbcc5abc49d3b8d6d8826c75ce473.tar.gz" "av1.tar.gz" "av1" + download "https://aomedia.googlesource.com/aom/+archive/$CURRENT_PACKAGE_VERSION.tar.gz" "av1.tar.gz" "av1" make_dir "$PACKAGES"/aom_build cd "$PACKAGES"/aom_build || exit if $MACOS_M1; then @@ -657,7 +658,7 @@ if build "av1" "7b5f665"; then execute make -j $MJOBS execute make install - build_done "av1" "7b5f665" + build_done "av1" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libaom") @@ -682,50 +683,50 @@ if command_exists "python3"; then if command_exists "meson"; then if build "lv2" "1.18.10"; then - download "https://lv2plug.in/spec/lv2-1.18.10.tar.xz" "lv2-1.18.10.tar.xz" + download "https://lv2plug.in/spec/lv2-$CURRENT_PACKAGE_VERSION.tar.xz" "lv2-$CURRENT_PACKAGE_VERSION.tar.xz" execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install - build_done "lv2" "1.18.10" + build_done "lv2" $CURRENT_PACKAGE_VERSION fi if build "waflib" "b600c92"; then - download "https://gitlab.com/drobilla/autowaf/-/archive/b600c928b221a001faeab7bd92786d0b25714bc8/autowaf-b600c928b221a001faeab7bd92786d0b25714bc8.tar.gz" "autowaf.tar.gz" - build_done "waflib" "b600c92" + download "https://gitlab.com/drobilla/autowaf/-/archive/$CURRENT_PACKAGE_VERSION/autowaf-$CURRENT_PACKAGE_VERSION.tar.gz" "autowaf.tar.gz" + build_done "waflib" $CURRENT_PACKAGE_VERSION fi if build "serd" "0.30.16"; then - download "https://gitlab.com/drobilla/serd/-/archive/v0.30.16/serd-v0.30.16.tar.gz" "serd-v0.30.16.tar.gz" + download "https://gitlab.com/drobilla/serd/-/archive/v$CURRENT_PACKAGE_VERSION/serd-v$CURRENT_PACKAGE_VERSION.tar.gz" "serd-v$CURRENT_PACKAGE_VERSION.tar.gz" execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install - build_done "serd" "0.30.16" + build_done "serd" $CURRENT_PACKAGE_VERSION fi if build "pcre" "8.45"; then - download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz" "pcre-8.45.tar.gz" + download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/$CURRENT_PACKAGE_VERSION/pcre-$CURRENT_PACKAGE_VERSION.tar.gz" "pcre-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "pcre" "8.45" + build_done "pcre" $CURRENT_PACKAGE_VERSION fi if build "sord" "0.16.14"; then - download "https://gitlab.com/drobilla/sord/-/archive/v0.16.14/sord-v0.16.14.tar.gz" "sord-v0.16.14.tar.gz" + download "https://gitlab.com/drobilla/sord/-/archive/v$CURRENT_PACKAGE_VERSION/sord-v$CURRENT_PACKAGE_VERSION.tar.gz" "sord-v$CURRENT_PACKAGE_VERSION.tar.gz" execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install - build_done "sord" "0.16.14" + build_done "sord" $CURRENT_PACKAGE_VERSION fi if build "sratom" "0.6.14"; then - download "https://gitlab.com/lv2/sratom/-/archive/v0.6.14/sratom-v0.6.14.tar.gz" "sratom-v0.6.14.tar.gz" + download "https://gitlab.com/lv2/sratom/-/archive/v$CURRENT_PACKAGE_VERSION/sratom-v$CURRENT_PACKAGE_VERSION.tar.gz" "sratom-v$CURRENT_PACKAGE_VERSION.tar.gz" execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install - build_done "sratom" "0.6.14" + build_done "sratom" $CURRENT_PACKAGE_VERSION fi if build "lilv" "0.24.20"; then - download "https://gitlab.com/lv2/lilv/-/archive/v0.24.20/lilv-v0.24.20.tar.gz" "lilv-v0.24.20.tar.gz" + download "https://gitlab.com/lv2/lilv/-/archive/v$CURRENT_PACKAGE_VERSION/lilv-v$CURRENT_PACKAGE_VERSION.tar.gz" "lilv-v$CURRENT_PACKAGE_VERSION.tar.gz" execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib execute ninja -C build execute ninja -C build install - build_done "lilv" "0.24.20" + build_done "lilv" $CURRENT_PACKAGE_VERSION fi CFLAGS+=" -I$WORKSPACE/include/lilv-0" @@ -735,55 +736,55 @@ if command_exists "python3"; then fi if build "opencore" "0.1.6"; then - download "https://deac-ams.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz" "opencore-amr-0.1.6.tar.gz" + download "https://deac-ams.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-$CURRENT_PACKAGE_VERSION.tar.gz" "opencore-amr-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "opencore" "0.1.6" + build_done "opencore" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libopencore_amrnb" "--enable-libopencore_amrwb") if build "lame" "3.100"; then - download "https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download?use_mirror=gigenet" "lame-3.100.tar.gz" + download "https://sourceforge.net/projects/lame/files/lame/$CURRENT_PACKAGE_VERSION/lame-$CURRENT_PACKAGE_VERSION.tar.gz/download?use_mirror=gigenet" "lame-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "lame" "3.100" + build_done "lame" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libmp3lame") if build "opus" "1.4"; then - download "https://downloads.xiph.org/releases/opus/opus-1.4.tar.gz" + download "https://downloads.xiph.org/releases/opus/opus-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "opus" "1.3.1" + build_done "opus" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libopus") if build "libogg" "1.3.5"; then - download "https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.5.tar.xz" + download "https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libogg" "1.3.5" + build_done "libogg" $CURRENT_PACKAGE_VERSION fi if build "libvorbis" "1.3.7"; then - download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.7.tar.gz" + download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest execute make -j $MJOBS execute make install - build_done "libvorbis" "1.3.7" + build_done "libvorbis" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libvorbis") if build "libtheora" "1.1.1"; then - download "https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-1.1.1.tar.gz" + download "https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-$CURRENT_PACKAGE_VERSION.tar.gz" sed "s/-fforce-addr//g" configure >configure.patched chmod +x configure.patched mv configure.patched configure @@ -800,18 +801,18 @@ if build "libtheora" "1.1.1"; then execute make -j $MJOBS execute make install - build_done "libtheora" "1.1.1" + build_done "libtheora" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libtheora") if $NONFREE_AND_GPL; then if build "fdk_aac" "2.0.2"; then - download "https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.2.tar.gz/download?use_mirror=gigenet" "fdk-aac-2.0.2.tar.gz" + download "https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-$CURRENT_PACKAGE_VERSION.tar.gz/download?use_mirror=gigenet" "fdk-aac-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --enable-pic execute make -j $MJOBS execute make install - build_done "fdk_aac" "2.0.2" + build_done "fdk_aac" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libfdk-aac") fi @@ -821,20 +822,20 @@ fi ## if build "libtiff" "4.5.0"; then - download "https://download.osgeo.org/libtiff/tiff-4.5.0.tar.xz" + download "https://download.osgeo.org/libtiff/tiff-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-lzma --disable-webp --disable-zstd --without-x execute make -j $MJOBS execute make install - build_done "libtiff" "4.5.0" + build_done "libtiff" $CURRENT_PACKAGE_VERSION fi if build "libpng" "1.6.39"; then - download "https://gigenet.dl.sourceforge.net/project/libpng/libpng16/1.6.39/libpng-1.6.39.tar.gz" "libpng-1.6.39.tar.gz" + download "https://gigenet.dl.sourceforge.net/project/libpng/libpng16/$CURRENT_PACKAGE_VERSION/libpng-$CURRENT_PACKAGE_VERSION.tar.gz" "libpng-$CURRENT_PACKAGE_VERSION.tar.gz" export LDFLAGS="${LDFLAGS}" export CPPFLAGS="${CFLAGS}" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "libpng" "1.6.39" + build_done "libpng" $CURRENT_PACKAGE_VERSION fi ## does not compile on monterey -> _PrintGifError @@ -842,7 +843,7 @@ if [[ "$OSTYPE" != "darwin"* ]]; then if build "libwebp" "1.2.2"; then # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS CPPFLAGS= - download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.2.tar.gz" "libwebp-1.2.2.tar.gz" + download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$CURRENT_PACKAGE_VERSION.tar.gz" "libwebp-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib make_dir build cd build || exit @@ -850,7 +851,7 @@ if [[ "$OSTYPE" != "darwin"* ]]; then execute make -j $MJOBS execute make install - build_done "libwebp" "1.2.2" + build_done "libwebp" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libwebp") fi @@ -868,11 +869,11 @@ if build "libsdl" "2.28.5"; then fi if build "FreeType2" "2.11.1"; then - download "https://downloads.sourceforge.net/freetype/freetype-2.11.1.tar.xz" + download "https://downloads.sourceforge.net/freetype/freetype-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install - build_done "FreeType2" "2.11.1" + build_done "FreeType2" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libfreetype") @@ -928,9 +929,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then if [ -z "$LDEXEFLAGS" ]; then CONFIGURE_OPTIONS+=("--enable-libnpp") # Only libnpp cannot be statically linked. fi - - # https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ - CONFIGURE_OPTIONS+=("--nvccflags=-gencode arch=compute_$CUDA_COMPUTE_CAPABILITY,code=sm_$CUDA_COMPUTE_CAPABILITY") + CONFIGURE_OPTIONS+=("--nvccflags=-gencode arch=compute_$CUDA_COMPUTE_CAPABILITY,code=sm_$CUDA_COMPUTE_CAPABILITY -O2") else CONFIGURE_OPTIONS+=("--disable-ffnvcodec") fi @@ -947,11 +946,11 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi if build "amf" "1.4.30"; then - download 'https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v1.4.30.tar.gz' 'AMF-1.4.30.tar.gz' 'AMF-1.4.30' + download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-1.4.30/AMF-1.4.30/amf/public/include/* "${WORKSPACE}/include/AMF/" - build_done "amf" "1.4.30" + execute cp -r "${PACKAGES}"/AMF-$CURRENT_PACKAGE_VERSION/AMF-$CURRENT_PACKAGE_VERSION/amf/public/include/* "${WORKSPACE}/include/AMF/" + build_done "amf" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-amf") fi diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index f0ffc9f0..9c28793f 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -32,8 +32,7 @@ RUN mkdir -p /code && \ WORKDIR /app COPY ./build-ffmpeg /app/build-ffmpeg -RUN SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free - +RUN CUDA_COMPUTE_CAPABILITY=$(deviceQuery | grep Capability | head -n 1 | awk 'END {print $NF}' | tr -d '.') SKIPINSTALL=yes /app/build-ffmpeg --build --enable-gpl-and-non-free FROM ubuntu:${UBUNTUVER} AS release From 9e7388f8c0d3346f17adca0e48798c2981c4e652 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Mon, 13 Nov 2023 14:24:22 +0330 Subject: [PATCH 105/146] CHANGE: move cuda compute checks elsewhere This was done to avoid superfluous checks for cuda compute capability, even though they are not needed --- README.md | 1 - build-ffmpeg | 18 ++++++------------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 37d55126..5f8864bc 100644 --- a/README.md +++ b/README.md @@ -340,7 +340,6 @@ ffmpeg-build-script v1.xx Using 12 make jobs simultaneously. With GPL and non-free codecs -CUDA env variable provided, building with compute capability 75 cargo not installed. rav1e encoder will not be available. building giflib - version 5.2.1 diff --git a/build-ffmpeg b/build-ffmpeg index ab8bf84f..11fa6d1c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -278,18 +278,6 @@ if $NONFREE_AND_GPL; then echo "With GPL and non-free codecs" fi -# Check CUDA compute capability -if [[ "$OSTYPE" == "linux-gnu" ]]; then - if [ -n "$CUDA_COMPUTE_CAPABILITY" ]; then - echo "CUDA env variable provided, building with compute capability $CUDA_COMPUTE_CAPABILITY" - else - # Set default value if no compute capability was found - # Note that multi-architecture builds are not supported in ffmpeg - # see https://patchwork.ffmpeg.org/comment/62905/ - export CUDA_COMPUTE_CAPABILITY=52 - echo "CUDA env variable not provided, using default compute capability $CUDA_COMPUTE_CAPABILITY" - fi -fi if [ -n "$LDEXEFLAGS" ]; then echo "Start the build in full static mode." @@ -929,6 +917,12 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then if [ -z "$LDEXEFLAGS" ]; then CONFIGURE_OPTIONS+=("--enable-libnpp") # Only libnpp cannot be statically linked. fi + if [ -z "$CUDA_COMPUTE_CAPABILITY" ]; then + # Set default value if no compute capability was found + # Note that multi-architecture builds are not supported in ffmpeg + # see https://patchwork.ffmpeg.org/comment/62905/ + export CUDA_COMPUTE_CAPABILITY=52 + fi CONFIGURE_OPTIONS+=("--nvccflags=-gencode arch=compute_$CUDA_COMPUTE_CAPABILITY,code=sm_$CUDA_COMPUTE_CAPABILITY -O2") else CONFIGURE_OPTIONS+=("--disable-ffnvcodec") From 2c2755815b436ced199217261ad115db291fdae0 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Mon, 13 Nov 2023 15:10:05 +0330 Subject: [PATCH 106/146] FIX: library name mismatch --- export.dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/export.dockerfile b/export.dockerfile index a062fac8..04ff3d2c 100644 --- a/export.dockerfile +++ b/export.dockerfile @@ -3,10 +3,10 @@ ARG DIST=ubuntu FROM scratch # Copy libnpp -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppc.so.11 /lib/libnppc.so.11 -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppig.so.11 /lib/libnppig.so.11 -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppicc.so.11 /lib/libnppicc.so.11 -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppidei.so.11 /lib/libnppidei.so.11 +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppc.so /lib/libnppc.so +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppig.so /lib/libnppig.so +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppicc.so /lib/libnppicc.so +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppidei.so /lib/libnppidei.so # Copy ffmpeg COPY --from=ffmpeg:cuda-${DIST} /usr/bin/ffmpeg /bin/ffmpeg From cfd6921eb2274c2b7fb1bd33c1f5425b2d82f130 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Sat, 18 Nov 2023 17:18:58 +0330 Subject: [PATCH 107/146] CHANGE: zmq version to avoid errors in OS X --- build-ffmpeg | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 11fa6d1c..1bf0b73a 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -888,9 +888,11 @@ fi ## zmq library ## -if build "libzmq" "4.3.5"; then +if build "libzmq" "4.3.1"; then download "https://github.com/zeromq/libzmq/releases/download/v$CURRENT_PACKAGE_VERSION/zeromq-$CURRENT_PACKAGE_VERSION.tar.gz" - execute ./autogen.sh + if [[ "$OSTYPE" == "darwin"* ]]; then + export XML_CATALOG_FILES=/usr/local/etc/xml/catalog + fi execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS execute make install From ef800fef357737ee39bde9ba56a81571922f61b2 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Sun, 19 Nov 2023 11:35:06 +0330 Subject: [PATCH 108/146] CHANGE: libnpp names to fix docker build issue --- cuda-ubuntu.dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index 9c28793f..1355b21e 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -46,11 +46,11 @@ RUN apt-get update \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Copy libnpp -COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppc.so /lib/x86_64-linux-gnu/libnppc.so -COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppig.so /lib/x86_64-linux-gnu/libnppig.so -COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppicc.so /lib/x86_64-linux-gnu/libnppicc.so -COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppidei.so /lib/x86_64-linux-gnu/libnppidei.so -COPY --from=build /usr/local/cuda/targets/x86_64-linux/lib/libnppif.so /lib/x86_64-linux-gnu/libnppif.so +COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppc.so /lib/x86_64-linux-gnu/libnppc.so.12 +COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppig.so /lib/x86_64-linux-gnu/libnppig.so.12 +COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppicc.so /lib/x86_64-linux-gnu/libnppicc.so.12 +COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppidei.so /lib/x86_64-linux-gnu/libnppidei.so.12 +COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppif.so /lib/x86_64-linux-gnu/libnppif.so.12 # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg From 487c9057c33118efcb9bbf7764104825558a1296 Mon Sep 17 00:00:00 2001 From: alireza miryazdi Date: Sun, 19 Nov 2023 14:31:37 +0330 Subject: [PATCH 109/146] FIX: library paths to reflect changes in cuda dockerfile --- export.dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/export.dockerfile b/export.dockerfile index 04ff3d2c..a25cea4d 100644 --- a/export.dockerfile +++ b/export.dockerfile @@ -3,10 +3,10 @@ ARG DIST=ubuntu FROM scratch # Copy libnpp -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppc.so /lib/libnppc.so -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppig.so /lib/libnppig.so -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppicc.so /lib/libnppicc.so -COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppidei.so /lib/libnppidei.so +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppc.so.12 /lib/libnppc.so.12 +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppig.so.12 /lib/libnppig.so.12 +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppicc.so.12 /lib/libnppicc.so.12 +COPY --from=ffmpeg:cuda-${DIST} /lib/x86_64-linux-gnu/libnppidei.so.12 /lib/libnppidei.so.12 # Copy ffmpeg COPY --from=ffmpeg:cuda-${DIST} /usr/bin/ffmpeg /bin/ffmpeg From fec153dbfda8f16414c4af177b7979ac0a52f91d Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Sat, 25 Nov 2023 14:41:54 +0100 Subject: [PATCH 110/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 1bf0b73a..8a7a5cc5 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.47 +SCRIPT_VERSION=1.48 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From e6da606703c7c0c16ca584148ecb7692367088fe Mon Sep 17 00:00:00 2001 From: Colin Pfingstl Date: Fri, 2 Feb 2024 02:06:51 +0100 Subject: [PATCH 111/146] fix libpng download url --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 8a7a5cc5..5fdabe81 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -817,7 +817,7 @@ if build "libtiff" "4.5.0"; then build_done "libtiff" $CURRENT_PACKAGE_VERSION fi if build "libpng" "1.6.39"; then - download "https://gigenet.dl.sourceforge.net/project/libpng/libpng16/$CURRENT_PACKAGE_VERSION/libpng-$CURRENT_PACKAGE_VERSION.tar.gz" "libpng-$CURRENT_PACKAGE_VERSION.tar.gz" + download "https://sourceforge.net/projects/libpng/files/libpng16/$CURRENT_PACKAGE_VERSION/libpng-$CURRENT_PACKAGE_VERSION.tar.gz" "libpng-$CURRENT_PACKAGE_VERSION.tar.gz" export LDFLAGS="${LDFLAGS}" export CPPFLAGS="${CFLAGS}" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static From cef7f703dcccf46e7c061a0462397c31a535717e Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 5 Feb 2024 20:32:39 +0100 Subject: [PATCH 112/146] V1.49 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 5fdabe81..e5f8abda 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.48 +SCRIPT_VERSION=1.49 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 04a79babcb64de348c13756b1269e5846ec85e96 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 19 Feb 2024 12:00:00 +0100 Subject: [PATCH 113/146] Update build-ffmpeg --- build-ffmpeg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index e5f8abda..a9ec811a 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,8 +4,8 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=6.0 -SCRIPT_VERSION=1.49 +FFMPEG_VERSION=6.1 +SCRIPT_VERSION=1.50 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From f197812bb1b5a09ec5cc2c98dfd14907c81c8d07 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Fri, 5 Apr 2024 20:20:51 +0200 Subject: [PATCH 114/146] FFmpeg 7.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index a9ec811a..5c8b1464 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,7 +4,7 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=6.1 +FFMPEG_VERSION=7.0 SCRIPT_VERSION=1.50 CWD=$(pwd) PACKAGES="$CWD/packages" From 6aa09553f733664beecc543d1429754172ba7171 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Fri, 5 Apr 2024 20:22:09 +0200 Subject: [PATCH 115/146] FFmpeg 7.0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f8864bc..78916a70 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ other than Debian and macOS, because I don't have the resources or time to maint ### macOS -* XCode 10.x or greater +* XCode 14.x or greater ### Linux From 3e2f4a2baa28477656c3ff47d18743f1047a9671 Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Fri, 5 Apr 2024 21:40:25 +0200 Subject: [PATCH 116/146] FFmpeg 7.0 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 5c8b1464..7aae00e7 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=7.0 -SCRIPT_VERSION=1.50 +SCRIPT_VERSION=1.51 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 0d857d973403d6a9b3ef2a74a0dced9754d32eff Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 30 Apr 2024 20:52:56 +0200 Subject: [PATCH 117/146] MacOs build fix --- build-ffmpeg | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 7aae00e7..6fa6e981 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -9,7 +9,7 @@ SCRIPT_VERSION=1.51 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" -CFLAGS="-I$WORKSPACE/include" +CFLAGS="-I$WORKSPACE/include -Wno-int-conversion" LDFLAGS="-L$WORKSPACE/lib" LDEXEFLAGS="" EXTRALIBS="-ldl -lpthread -lm -lz" @@ -333,6 +333,10 @@ fi if build "pkg-config" "0.29.2"; then download "https://pkgconfig.freedesktop.org/releases/pkg-config-$CURRENT_PACKAGE_VERSION.tar.gz" + if [[ "$OSTYPE" == "darwin"* ]]; then + export XXFLAGS="-Wno-int-conversion" # pkg-config 0.29.2 has a warning that is treated as an error + export CFLAGS="-Wno-error=int-conversion" + fi execute ./configure --silent --prefix="${WORKSPACE}" --with-pc-path="${WORKSPACE}"/lib/pkgconfig --with-internal-glib execute make -j $MJOBS execute make install From e1128a1b262b98b204f181131e68ad92faef2604 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Tue, 30 Apr 2024 22:27:38 +0200 Subject: [PATCH 118/146] Mac fix --- build-ffmpeg | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 6fa6e981..f74c970f 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -490,7 +490,7 @@ if command_exists "python3"; then fi fi -if build "svtav1" "1.7.0"; then +if build "svtav1" "2.0.0"; then # Last known working commit which passed CI Tests from HEAD branch download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$CURRENT_PACKAGE_VERSION/SVT-AV1-v$CURRENT_PACKAGE_VERSION.tar.gz" "svtav1-$CURRENT_PACKAGE_VERSION.tar.gz" cd "${PACKAGES}"/svtav1-$CURRENT_PACKAGE_VERSION//Build/linux || exit @@ -637,7 +637,7 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-libvidstab") fi -if build "av1" "7b5f665"; then +if build "av1" "6cab58c3925e0f4138e15a4ed510161ea83b6db1"; then # libaom bcfe6fb == v3.5.0 download "https://aomedia.googlesource.com/aom/+archive/$CURRENT_PACKAGE_VERSION.tar.gz" "av1.tar.gz" "av1" make_dir "$PACKAGES"/aom_build @@ -765,15 +765,18 @@ if build "libogg" "1.3.5"; then build_done "libogg" $CURRENT_PACKAGE_VERSION fi -if build "libvorbis" "1.3.7"; then - download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-$CURRENT_PACKAGE_VERSION.tar.gz" - execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest - execute make -j $MJOBS - execute make install +if [[ "$OSTYPE" != "darwin"* ]]; then + if build "libvorbis" "1.3.7"; then + download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-$CURRENT_PACKAGE_VERSION.tar.gz" + execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-silent-rules --disable-dependency-tracking - build_done "libvorbis" $CURRENT_PACKAGE_VERSION + execute make -j $MJOBS + execute make install + + build_done "libvorbis" $CURRENT_PACKAGE_VERSION + fi + CONFIGURE_OPTIONS+=("--enable-libvorbis") fi -CONFIGURE_OPTIONS+=("--enable-libvorbis") if build "libtheora" "1.1.1"; then download "https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-$CURRENT_PACKAGE_VERSION.tar.gz" From 9c896583a47dd99edd31dc9d9e56fadd84d3a71a Mon Sep 17 00:00:00 2001 From: Stefan-olt Date: Thu, 6 Jun 2024 18:11:54 +0200 Subject: [PATCH 119/146] updated many libs, fixed building vorbis and webp on macOS, added libs for JPEG-XL and ZVBI (dvb teletext subtitles), option to not include lv2 plugins --- build-ffmpeg | 240 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 142 insertions(+), 98 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index f74c970f..c8aee7b1 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -16,6 +16,7 @@ EXTRALIBS="-ldl -lpthread -lm -lz" MACOS_M1=false CONFIGURE_OPTIONS=() NONFREE_AND_GPL=false +DISABLE_LV2=false LATEST=false MANPAGES=1 CURRENT_PACKAGE_VERSION=0 @@ -206,6 +207,7 @@ usage() { echo " --version Display version information" echo " -b, --build Starts the build process" echo " --enable-gpl-and-non-free Enable GPL and non-free codecs - https://ffmpeg.org/legal.html" + echo " --disable-lv2 Disable LV2 libraries" echo " -c, --cleanup Remove all working dirs" echo " --latest Build latest version of dependencies if newer available" echo " --small Prioritize small size over speed and usability; don't build manpages" @@ -237,6 +239,9 @@ while (($# > 0)); do CONFIGURE_OPTIONS+=("--enable-gpl") NONFREE_AND_GPL=true fi + if [[ "$1" == "--disable-lv2" ]]; then + DISABLE_LV2=true + fi if [[ "$1" == "--cleanup" || "$1" =~ '-c' && ! "$1" =~ '--' ]]; then cflag='-c' cleanup @@ -359,7 +364,7 @@ if build "nasm" "2.16.01"; then build_done "nasm" $CURRENT_PACKAGE_VERSION fi -if build "zlib" "1.2.13"; then +if build "zlib" "1.3.1"; then download "https://github.com/madler/zlib/releases/download/v$CURRENT_PACKAGE_VERSION/zlib-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --static --prefix="${WORKSPACE}" execute make -j $MJOBS @@ -400,6 +405,14 @@ if build "libtool" "2.4.7"; then fi if $NONFREE_AND_GPL; then + if build "gettext" "0.22.5"; then + download "https://ftpmirror.gnu.org/gettext/gettext-$CURRENT_PACKAGE_VERSION.tar.gz" + execute ./configure --prefix="${WORKSPACE}" --enable-static --disable-shared + execute make -j $MJOBS + execute make install + build_done "gettext" $CURRENT_PACKAGE_VERSION + fi + if build "openssl" "1.1.1w"; then download "https://www.openssl.org/source/openssl-$CURRENT_PACKAGE_VERSION.tar.gz" if $MACOS_M1; then @@ -467,7 +480,7 @@ if command_exists "python3"; then done fi if command_exists "meson"; then - if build "dav1d" "1.1.0"; then + if build "dav1d" "1.4.2"; then download "https://code.videolan.org/videolan/dav1d/-/archive/$CURRENT_PACKAGE_VERSION/dav1d-$CURRENT_PACKAGE_VERSION.tar.gz" make_dir build @@ -490,7 +503,7 @@ if command_exists "python3"; then fi fi -if build "svtav1" "2.0.0"; then +if build "svtav1" "2.1.0"; then # Last known working commit which passed CI Tests from HEAD branch download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$CURRENT_PACKAGE_VERSION/SVT-AV1-v$CURRENT_PACKAGE_VERSION.tar.gz" "svtav1-$CURRENT_PACKAGE_VERSION.tar.gz" cd "${PACKAGES}"/svtav1-$CURRENT_PACKAGE_VERSION//Build/linux || exit @@ -506,9 +519,10 @@ CONFIGURE_OPTIONS+=("--enable-libsvtav1") if command_exists "cargo"; then if [[ ! "$SKIPRAV1E" == "yes" ]]; then - if build "rav1e" "0.6.6"; then - execute cargo install --version "0.9.20+cargo-0.71" cargo-c + if build "rav1e" "0.7.1"; then + execute cargo install cargo-c download "https://github.com/xiph/rav1e/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" + export RUSTFLAGS="-C target-cpu=native" execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release build_done "rav1e" $CURRENT_PACKAGE_VERSION fi @@ -518,7 +532,7 @@ fi if $NONFREE_AND_GPL; then - if build "x264" "941cae6d"; then + if build "x264" "be4f0200"; then download "https://code.videolan.org/videolan/x264/-/archive/$CURRENT_PACKAGE_VERSION/x264-$CURRENT_PACKAGE_VERSION.tar.gz" "x264-$CURRENT_PACKAGE_VERSION.tar.gz" cd "${PACKAGES}"/x264-$CURRENT_PACKAGE_VERSION || exit @@ -538,8 +552,8 @@ if $NONFREE_AND_GPL; then fi if $NONFREE_AND_GPL; then - if build "x265" "3.5"; then - download "https://github.com/videolan/x265/archive/Release_$CURRENT_PACKAGE_VERSION.tar.gz" "x265-$CURRENT_PACKAGE_VERSION.tar.gz" # This is actually 3.4 if looking at x265Version.txt + if build "x265" "3.6"; then + download "https://bitbucket.org/multicoreware/x265_git/downloads/x265_$CURRENT_PACKAGE_VERSION.tar.gz" "x265-$CURRENT_PACKAGE_VERSION.tar.gz" # This is actually 3.4 if looking at x265Version.txt cd build/linux || exit rm -rf 8bit 10bit 12bit 2>/dev/null mkdir -p 8bit 10bit 12bit @@ -581,7 +595,7 @@ EOF CONFIGURE_OPTIONS+=("--enable-libx265") fi -if build "libvpx" "1.13.1"; then +if build "libvpx" "1.14.1"; then download "https://github.com/webmproject/libvpx/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libvpx-$CURRENT_PACKAGE_VERSION.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then @@ -637,8 +651,8 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-libvidstab") fi -if build "av1" "6cab58c3925e0f4138e15a4ed510161ea83b6db1"; then - # libaom bcfe6fb == v3.5.0 +if build "av1" "42dfaa1d47022650bc157dbe20d210591d14bae4"; then + # libaom 42dfaa1d47022650bc157dbe20d210591d14bae4 == v3.9.0 download "https://aomedia.googlesource.com/aom/+archive/$CURRENT_PACKAGE_VERSION.tar.gz" "av1.tar.gz" "av1" make_dir "$PACKAGES"/aom_build cd "$PACKAGES"/aom_build || exit @@ -669,61 +683,63 @@ CONFIGURE_OPTIONS+=("--enable-libzimg") ## ## audio library ## - -if command_exists "python3"; then - - if command_exists "meson"; then - - if build "lv2" "1.18.10"; then - download "https://lv2plug.in/spec/lv2-$CURRENT_PACKAGE_VERSION.tar.xz" "lv2-$CURRENT_PACKAGE_VERSION.tar.xz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "lv2" $CURRENT_PACKAGE_VERSION - fi - if build "waflib" "b600c92"; then - download "https://gitlab.com/drobilla/autowaf/-/archive/$CURRENT_PACKAGE_VERSION/autowaf-$CURRENT_PACKAGE_VERSION.tar.gz" "autowaf.tar.gz" - build_done "waflib" $CURRENT_PACKAGE_VERSION - fi - if build "serd" "0.30.16"; then - download "https://gitlab.com/drobilla/serd/-/archive/v$CURRENT_PACKAGE_VERSION/serd-v$CURRENT_PACKAGE_VERSION.tar.gz" "serd-v$CURRENT_PACKAGE_VERSION.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "serd" $CURRENT_PACKAGE_VERSION - fi - if build "pcre" "8.45"; then - download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/$CURRENT_PACKAGE_VERSION/pcre-$CURRENT_PACKAGE_VERSION.tar.gz" "pcre-$CURRENT_PACKAGE_VERSION.tar.gz" - execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static - execute make -j $MJOBS - execute make install - build_done "pcre" $CURRENT_PACKAGE_VERSION - fi - if build "sord" "0.16.14"; then - download "https://gitlab.com/drobilla/sord/-/archive/v$CURRENT_PACKAGE_VERSION/sord-v$CURRENT_PACKAGE_VERSION.tar.gz" "sord-v$CURRENT_PACKAGE_VERSION.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "sord" $CURRENT_PACKAGE_VERSION - fi - if build "sratom" "0.6.14"; then - download "https://gitlab.com/lv2/sratom/-/archive/v$CURRENT_PACKAGE_VERSION/sratom-v$CURRENT_PACKAGE_VERSION.tar.gz" "sratom-v$CURRENT_PACKAGE_VERSION.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "sratom" $CURRENT_PACKAGE_VERSION - fi - if build "lilv" "0.24.20"; then - download "https://gitlab.com/lv2/lilv/-/archive/v$CURRENT_PACKAGE_VERSION/lilv-v$CURRENT_PACKAGE_VERSION.tar.gz" "lilv-v$CURRENT_PACKAGE_VERSION.tar.gz" - execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib - execute ninja -C build - execute ninja -C build install - build_done "lilv" $CURRENT_PACKAGE_VERSION +if ! $DISABLE_LV2 ; then + + if command_exists "python3"; then + + if command_exists "meson"; then + + if build "lv2" "1.18.10"; then + download "https://lv2plug.in/spec/lv2-$CURRENT_PACKAGE_VERSION.tar.xz" "lv2-$CURRENT_PACKAGE_VERSION.tar.xz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "lv2" $CURRENT_PACKAGE_VERSION + fi + if build "waflib" "b600c92"; then + download "https://gitlab.com/drobilla/autowaf/-/archive/$CURRENT_PACKAGE_VERSION/autowaf-$CURRENT_PACKAGE_VERSION.tar.gz" "autowaf.tar.gz" + build_done "waflib" $CURRENT_PACKAGE_VERSION + fi + if build "serd" "0.30.16"; then + download "https://gitlab.com/drobilla/serd/-/archive/v$CURRENT_PACKAGE_VERSION/serd-v$CURRENT_PACKAGE_VERSION.tar.gz" "serd-v$CURRENT_PACKAGE_VERSION.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "serd" $CURRENT_PACKAGE_VERSION + fi + if build "pcre" "8.45"; then + download "https://altushost-swe.dl.sourceforge.net/project/pcre/pcre/$CURRENT_PACKAGE_VERSION/pcre-$CURRENT_PACKAGE_VERSION.tar.gz" "pcre-$CURRENT_PACKAGE_VERSION.tar.gz" + execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static + execute make -j $MJOBS + execute make install + build_done "pcre" $CURRENT_PACKAGE_VERSION + fi + if build "sord" "0.16.14"; then + download "https://gitlab.com/drobilla/sord/-/archive/v$CURRENT_PACKAGE_VERSION/sord-v$CURRENT_PACKAGE_VERSION.tar.gz" "sord-v$CURRENT_PACKAGE_VERSION.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "sord" $CURRENT_PACKAGE_VERSION + fi + if build "sratom" "0.6.14"; then + download "https://gitlab.com/lv2/sratom/-/archive/v$CURRENT_PACKAGE_VERSION/sratom-v$CURRENT_PACKAGE_VERSION.tar.gz" "sratom-v$CURRENT_PACKAGE_VERSION.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "sratom" $CURRENT_PACKAGE_VERSION + fi + if build "lilv" "0.24.20"; then + download "https://gitlab.com/lv2/lilv/-/archive/v$CURRENT_PACKAGE_VERSION/lilv-v$CURRENT_PACKAGE_VERSION.tar.gz" "lilv-v$CURRENT_PACKAGE_VERSION.tar.gz" + execute meson build --prefix="${WORKSPACE}" --buildtype=release --default-library=static --libdir="${WORKSPACE}"/lib + execute ninja -C build + execute ninja -C build install + build_done "lilv" $CURRENT_PACKAGE_VERSION + fi + CFLAGS+=" -I$WORKSPACE/include/lilv-0" + + CONFIGURE_OPTIONS+=("--enable-lv2") + fi - CFLAGS+=" -I$WORKSPACE/include/lilv-0" - - CONFIGURE_OPTIONS+=("--enable-lv2") - fi fi @@ -747,7 +763,7 @@ if build "lame" "3.100"; then fi CONFIGURE_OPTIONS+=("--enable-libmp3lame") -if build "opus" "1.4"; then +if build "opus" "1.5.2"; then download "https://downloads.xiph.org/releases/opus/opus-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS @@ -765,18 +781,19 @@ if build "libogg" "1.3.5"; then build_done "libogg" $CURRENT_PACKAGE_VERSION fi -if [[ "$OSTYPE" != "darwin"* ]]; then - if build "libvorbis" "1.3.7"; then - download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-$CURRENT_PACKAGE_VERSION.tar.gz" - execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-silent-rules --disable-dependency-tracking - - execute make -j $MJOBS - execute make install +if build "libvorbis" "1.3.7"; then + download "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-$CURRENT_PACKAGE_VERSION.tar.gz" + sed "s/-force_cpusubtype_ALL//g" configure.ac >configure.ac.patched + rm configure.ac + mv configure.ac.patched configure.ac + execute ./autogen.sh --prefix="${WORKSPACE}" + execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest + execute make -j $MJOBS + execute make install - build_done "libvorbis" $CURRENT_PACKAGE_VERSION - fi - CONFIGURE_OPTIONS+=("--enable-libvorbis") + build_done "libvorbis" $CURRENT_PACKAGE_VERSION fi +CONFIGURE_OPTIONS+=("--enable-libvorbis") if build "libtheora" "1.1.1"; then download "https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-$CURRENT_PACKAGE_VERSION.tar.gz" @@ -801,7 +818,7 @@ fi CONFIGURE_OPTIONS+=("--enable-libtheora") if $NONFREE_AND_GPL; then - if build "fdk_aac" "2.0.2"; then + if build "fdk_aac" "2.0.3"; then download "https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-$CURRENT_PACKAGE_VERSION.tar.gz/download?use_mirror=gigenet" "fdk-aac-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --enable-pic execute make -j $MJOBS @@ -816,14 +833,14 @@ fi ## image library ## -if build "libtiff" "4.5.0"; then +if build "libtiff" "4.6.0"; then download "https://download.osgeo.org/libtiff/tiff-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-lzma --disable-webp --disable-zstd --without-x execute make -j $MJOBS execute make install build_done "libtiff" $CURRENT_PACKAGE_VERSION fi -if build "libpng" "1.6.39"; then +if build "libpng" "1.6.43"; then download "https://sourceforge.net/projects/libpng/files/libpng16/$CURRENT_PACKAGE_VERSION/libpng-$CURRENT_PACKAGE_VERSION.tar.gz" "libpng-$CURRENT_PACKAGE_VERSION.tar.gz" export LDFLAGS="${LDFLAGS}" export CPPFLAGS="${CFLAGS}" @@ -833,28 +850,42 @@ if build "libpng" "1.6.39"; then build_done "libpng" $CURRENT_PACKAGE_VERSION fi -## does not compile on monterey -> _PrintGifError -if [[ "$OSTYPE" != "darwin"* ]]; then - if build "libwebp" "1.2.2"; then - # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS - CPPFLAGS= - download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$CURRENT_PACKAGE_VERSION.tar.gz" "libwebp-$CURRENT_PACKAGE_VERSION.tar.gz" - execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-gl --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib - make_dir build - cd build || exit - execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON ../ - execute make -j $MJOBS - execute make install +if build "libjxl" "0.10.2"; then + download "https://github.com/libjxl/libjxl/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libjxl-$CURRENT_PACKAGE_VERSION.tar.gz" +# currently needed to fix linking of static builds in non-C++ applications + sed "s/-ljxl_threads/-ljxl_threads @JPEGXL_THREADS_PUBLIC_LIBS@/g" lib/threads/libjxl_threads.pc.in >lib/threads/libjxl_threads.pc.in.patched + rm lib/threads/libjxl_threads.pc.in + mv lib/threads/libjxl_threads.pc.in.patched lib/threads/libjxl_threads.pc.in + sed 's/set(JPEGXL_REQUIRES_TYPE "Requires")/set(JPEGXL_REQUIRES_TYPE "Requires")\'$'\n'' set(JPEGXL_THREADS_PUBLIC_LIBS "-lm ${PKGCONFIG_CXX_LIB}")/g' lib/jxl_threads.cmake >lib/jxl_threads.cmake.patched + rm lib/jxl_threads.cmake + mv lib/jxl_threads.cmake.patched lib/jxl_threads.cmake + execute ./deps.sh + execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=OFF -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF . + execute make -j $MJOBS + execute make install + build_done "libjxl" $CURRENT_PACKAGE_VERSION +fi +CONFIGURE_OPTIONS+=("--enable-libjxl") + +if build "libwebp" "1.4.0"; then + # libwebp can fail to compile on Ubuntu if these flags were left set to CFLAGS + CPPFLAGS= + download "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$CURRENT_PACKAGE_VERSION.tar.gz" "libwebp-$CURRENT_PACKAGE_VERSION.tar.gz" + make_dir build + cd build || exit + execute cmake -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=OFF -DENABLE_STATIC=ON -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF -DWEBP_BUILD_VWEBP=OFF ../ + execute make -j $MJOBS + execute make install - build_done "libwebp" $CURRENT_PACKAGE_VERSION - fi - CONFIGURE_OPTIONS+=("--enable-libwebp") + build_done "libwebp" $CURRENT_PACKAGE_VERSION fi +CONFIGURE_OPTIONS+=("--enable-libwebp") + ## ## other library ## -if build "libsdl" "2.28.5"; then +if build "libsdl" "2.30.1"; then download "https://github.com/libsdl-org/SDL/releases/download/release-$CURRENT_PACKAGE_VERSION/SDL2-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS @@ -863,7 +894,7 @@ if build "libsdl" "2.28.5"; then build_done "libsdl" $CURRENT_PACKAGE_VERSION fi -if build "FreeType2" "2.11.1"; then +if build "FreeType2" "2.13.2"; then download "https://downloads.sourceforge.net/freetype/freetype-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS @@ -889,18 +920,31 @@ if $NONFREE_AND_GPL; then build_done "srt" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libsrt") + + if build "zvbi" "0.2.42"; then + download "https://github.com/zapping-vbi/zvbi/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "zvbi-$CURRENT_PACKAGE_VERSION.tar.gz" + execute ./autogen.sh --prefix="${WORKSPACE}" + execute ./configure CFLAGS="-I${WORKSPACE}/include/libpng16 ${CFLAGS}" --prefix="${WORKSPACE}" --enable-static --disable-shared + execute make -j $MJOBS + execute make install + build_done "zvbi" $CURRENT_PACKAGE_VERSION + fi + CONFIGURE_OPTIONS+=("--enable-libzvbi") fi ## ## zmq library ## -if build "libzmq" "4.3.1"; then +if build "libzmq" "4.3.5"; then download "https://github.com/zeromq/libzmq/releases/download/v$CURRENT_PACKAGE_VERSION/zeromq-$CURRENT_PACKAGE_VERSION.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then export XML_CATALOG_FILES=/usr/local/etc/xml/catalog fi execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static + sed "s/stats_proxy stats = {0}/stats_proxy stats = {{{0, 0}, {0, 0}}, {{0, 0}, {0, 0}}}/g" src/proxy.cpp >src/proxy.cpp.patched + rm src/proxy.cpp + mv src/proxy.cpp.patched src/proxy.cpp execute make -j $MJOBS execute make install build_done "libzmq" $CURRENT_PACKAGE_VERSION @@ -948,7 +992,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi fi - if build "amf" "1.4.30"; then + if build "amf" "1.4.33"; then download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" From a3d8c0b4bc9426d73d486300cb6d18429a730d6d Mon Sep 17 00:00:00 2001 From: markus-perl <1220081+markus-perl@users.noreply.github.com> Date: Sat, 20 Jul 2024 10:25:29 +0200 Subject: [PATCH 120/146] Update build-ffmpeg --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index c8aee7b1..7e40bb3b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=7.0 -SCRIPT_VERSION=1.51 +SCRIPT_VERSION=1.52 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From c59cf6d34daa3660075b5d4ee09724cfaf7b1833 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Sat, 20 Jul 2024 10:46:55 +0200 Subject: [PATCH 121/146] MacOs fixes --- .github/workflows/build.yml | 2 +- build-ffmpeg | 30 +++++++++++++++++++++++------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1359e706..a6aab34c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: build-macos: name: build in native macOS - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/build-ffmpeg b/build-ffmpeg index c8aee7b1..a504142c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -470,14 +470,30 @@ fi if command_exists "python3"; then # dav1d needs meson and ninja along with nasm to be built if command_exists "pip3"; then - # meson and ninja can be installed via pip3 - execute pip3 install pip setuptools --quiet --upgrade --no-cache-dir --disable-pip-version-check - for r in meson ninja; do - if ! command_exists ${r}; then - execute pip3 install ${r} --quiet --upgrade --no-cache-dir --disable-pip-version-check + + #set variable meson and ninja installed to false + MESON_INSTALLED=false + + #check if macOs and brew is available + if [[ "$OSTYPE" == "darwin"* ]]; then + if ! command_exists "brew"; then + brew install python-setuptools meson ninja + MESON_INSTALLED=true fi - export PATH=$PATH:~/Library/Python/3.9/bin - done + fi + + #check if meson and ninja are installed MESON_INSTALLED + if ! $MESON_INSTALLED; then + # meson and ninja can be installed via pip3 + execute pip3 install pip setuptools --quiet --upgrade --no-cache-dir --disable-pip-version-check + for r in meson ninja; do + if ! command_exists ${r}; then + execute pip3 install ${r} --quiet --upgrade --no-cache-dir --disable-pip-version-check + fi + export PATH=$PATH:~/Library/Python/3.9/bin + done + fi + fi if command_exists "meson"; then if build "dav1d" "1.4.2"; then From 21f7a4c9457841f4de169fee83cf28056847fbb2 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Sat, 20 Jul 2024 15:02:39 +0200 Subject: [PATCH 122/146] MacOS fix --- build-ffmpeg | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 4bd493b5..2dda0b2b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -476,22 +476,23 @@ if command_exists "python3"; then #check if macOs and brew is available if [[ "$OSTYPE" == "darwin"* ]]; then - if ! command_exists "brew"; then + if command_exists "brew"; then brew install python-setuptools meson ninja MESON_INSTALLED=true fi - fi - - #check if meson and ninja are installed MESON_INSTALLED - if ! $MESON_INSTALLED; then - # meson and ninja can be installed via pip3 - execute pip3 install pip setuptools --quiet --upgrade --no-cache-dir --disable-pip-version-check - for r in meson ninja; do - if ! command_exists ${r}; then - execute pip3 install ${r} --quiet --upgrade --no-cache-dir --disable-pip-version-check - fi - export PATH=$PATH:~/Library/Python/3.9/bin - done + else + #check if meson and ninja are installed MESON_INSTALLED AND system is not MacOS + if ! $MESON_INSTALLED; then + + # meson and ninja can be installed via pip3 + execute pip3 install pip setuptools --quiet --upgrade --no-cache-dir --disable-pip-version-check + for r in meson ninja; do + if ! command_exists ${r}; then + execute pip3 install ${r} --quiet --upgrade --no-cache-dir --disable-pip-version-check + fi + export PATH=$PATH:~/Library/Python/3.9/bin + done + fi fi fi From 7f3c8d5ac8231ca8295eb94c1b3229a0c0dea5f9 Mon Sep 17 00:00:00 2001 From: Markus Perl <1220081+markus-perl@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:00:26 +0200 Subject: [PATCH 123/146] Linux fix --- .github/workflows/build.yml | 2 +- build-ffmpeg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a6aab34c..b2d56bdf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: - name: build ffmpeg run: | while sleep 300; do echo "=====[ $SECONDS seconds still running ]====="; done & - SKIPINSTALL=yes VERBOSE=yes ./build-ffmpeg --build --enable-gpl-and-non-free + SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build --enable-gpl-and-non-free kill %1 - name: check shared library run: | diff --git a/build-ffmpeg b/build-ffmpeg index 2dda0b2b..854c4f9c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -867,7 +867,7 @@ if build "libpng" "1.6.43"; then build_done "libpng" $CURRENT_PACKAGE_VERSION fi -if build "libjxl" "0.10.2"; then +if build "libjxl" "0.10.3"; then download "https://github.com/libjxl/libjxl/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libjxl-$CURRENT_PACKAGE_VERSION.tar.gz" # currently needed to fix linking of static builds in non-C++ applications sed "s/-ljxl_threads/-ljxl_threads @JPEGXL_THREADS_PUBLIC_LIBS@/g" lib/threads/libjxl_threads.pc.in >lib/threads/libjxl_threads.pc.in.patched From fb8ff05990cf2d5bac4966394a7f6fcde9cf3d89 Mon Sep 17 00:00:00 2001 From: rhuts <35385944+rhuts@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:26:35 -0400 Subject: [PATCH 124/146] Use minimal AMF-headers tarball instead of downloading full repo Valid for AMF v1.4.33 and newer --- build-ffmpeg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index 854c4f9c..ef6536e0 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -1010,10 +1010,10 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi if build "amf" "1.4.33"; then - download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" + download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/download/v$CURRENT_PACKAGE_VERSION/AMF-headers-v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-$CURRENT_PACKAGE_VERSION/AMF-$CURRENT_PACKAGE_VERSION/amf/public/include/* "${WORKSPACE}/include/AMF/" + execute cp -r "${PACKAGES}"/AMF-$CURRENT_PACKAGE_VERSION/AMF-$CURRENT_PACKAGE_VERSION/AMF/* "${WORKSPACE}/include/AMF/" build_done "amf" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-amf") From 9eba3d8ff1233414414c2df884d692246982119b Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 11:06:53 +0100 Subject: [PATCH 125/146] FFmpeg 7.1 upgrade --- .gitignore | 1 + build-ffmpeg | 32 ++++++++++++++++++++++++-------- full-static.dockerfile | 10 +++++----- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 06485f58..20461095 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ workspace linux .artifacts build +full-static-test.dockerfile diff --git a/build-ffmpeg b/build-ffmpeg index 854c4f9c..df8ebfee 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -4,8 +4,8 @@ # LICENSE: https://github.com/markus-perl/ffmpeg-build-script/blob/master/LICENSE PROGNAME=$(basename "$0") -FFMPEG_VERSION=7.0 -SCRIPT_VERSION=1.52 +FFMPEG_VERSION=7.1 +SCRIPT_VERSION=1.53 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" @@ -26,6 +26,7 @@ if [[ ("$(uname -m)" == "arm64") && ("$OSTYPE" == "darwin"*) ]]; then # If arm64 AND darwin (macOS) export ARCH=arm64 export MACOSX_DEPLOYMENT_TARGET=11.0 + export CXX=$(which clang++) MACOS_M1=true fi @@ -53,7 +54,7 @@ make_dir() { remove_dir() { if [ -d "$1" ]; then - rm -r "$1" + rm -rf "$1" fi } @@ -120,7 +121,16 @@ download() { ) } +print_flags () { + echo "Flags: CFLAGS \"$CFLAGS\", CXXFLAGS \"$CXXFLAGS\", LDFLAGS \"$LDFLAGS\", LDEXEFLAGS \"$LDEXEFLAGS\"" +} + execute() { + + if [[ "$1" == *configure* ]]; then + print_flags + fi + echo "$ $*" OUTPUT=$("$@" 2>&1) @@ -251,7 +261,9 @@ while (($# > 0)); do echo "Error: A full static binary can only be build on Linux." exit 1 fi - LDEXEFLAGS="-static" + LDEXEFLAGS="-static -fPIC" + CFLAGS+=" -fPIC" + CXXFLAGS+=" -fPIC" fi if [[ "$1" == "--latest" ]]; then LATEST=true @@ -339,8 +351,8 @@ fi if build "pkg-config" "0.29.2"; then download "https://pkgconfig.freedesktop.org/releases/pkg-config-$CURRENT_PACKAGE_VERSION.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then - export XXFLAGS="-Wno-int-conversion" # pkg-config 0.29.2 has a warning that is treated as an error - export CFLAGS="-Wno-error=int-conversion" + export XXFLAGS +=" -Wno-int-conversion" # pkg-config 0.29.2 has a warning that is treated as an error + export CFLAGS +=" -Wno-error=int-conversion" fi execute ./configure --silent --prefix="${WORKSPACE}" --with-pc-path="${WORKSPACE}"/lib/pkgconfig --with-internal-glib execute make -j $MJOBS @@ -455,12 +467,15 @@ else fi fi -if build "cmake" "3.27.7"; then +if build "cmake" "3.31.0"; then + CXXFLAGS_BACKUP=$CXXFLAGS + export CXXFLAGS+=" -std=c++11" download "https://github.com/Kitware/CMake/releases/download/v$CURRENT_PACKAGE_VERSION/cmake-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --parallel="${MJOBS}" -- -DCMAKE_USE_OPENSSL=OFF execute make -j $MJOBS execute make install build_done "cmake" $CURRENT_PACKAGE_VERSION + export CXXFLAGS=$CXXFLAGS_BACKUP fi ## @@ -537,6 +552,7 @@ CONFIGURE_OPTIONS+=("--enable-libsvtav1") if command_exists "cargo"; then if [[ ! "$SKIPRAV1E" == "yes" ]]; then if build "rav1e" "0.7.1"; then + echo "if you get the message 'cannot be built because it requires rustc x.xx or newer, try to run 'rustup update'" execute cargo install cargo-c download "https://github.com/xiph/rav1e/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" export RUSTFLAGS="-C target-cpu=native" @@ -1037,7 +1053,7 @@ fi build "ffmpeg" "$FFMPEG_VERSION" download "https://github.com/FFmpeg/FFmpeg/archive/refs/heads/release/$FFMPEG_VERSION.tar.gz" "FFmpeg-release-$FFMPEG_VERSION.tar.gz" # shellcheck disable=SC2086 -./configure "${CONFIGURE_OPTIONS[@]}" \ +execute ./configure "${CONFIGURE_OPTIONS[@]}" \ --disable-debug \ --disable-shared \ --enable-pthreads \ diff --git a/full-static.dockerfile b/full-static.dockerfile index 6c075927..4b549a54 100644 --- a/full-static.dockerfile +++ b/full-static.dockerfile @@ -1,8 +1,8 @@ FROM ubuntu:22.04 AS build -ENV DEBIAN_FRONTEND noninteractive -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video +ENV DEBIAN_FRONTEND=noninteractive +ENV NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video RUN apt-get update \ && apt-get -y --no-install-recommends install build-essential curl ca-certificates python3 python-is-python3 ninja-build meson \ @@ -21,8 +21,8 @@ RUN ! ldd /app/workspace/bin/ffplay FROM scratch -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video +ENV NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /ffmpeg From 14cf6a2a1868c7cd97262f2745553df54085ce31 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 11:29:16 +0100 Subject: [PATCH 126/146] FFmpeg 7.1 upgrade --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b2d56bdf..e6edb807 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: build-macos: name: build in native macOS - runs-on: macos-14 + runs-on: macos-14-xlarge steps: - name: Checkout code uses: actions/checkout@v4 From 3f49f73ed7d56a8d02bd561f360188b92805f2f0 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 11:30:32 +0100 Subject: [PATCH 127/146] FFmpeg 7.1 upgrade --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e6edb807..39c7c405 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: build-macos: name: build in native macOS - runs-on: macos-14-xlarge + runs-on: macos-14 steps: - name: Checkout code uses: actions/checkout@v4 @@ -45,7 +45,7 @@ jobs: - name: build ffmpeg run: | while sleep 300; do echo "=====[ $SECONDS seconds still running ]====="; done & - SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build --enable-gpl-and-non-free + SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build kill %1 - name: check shared library run: | From ab3d8c566170e87b09964b78f8ee0ac553d79277 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 11:32:10 +0100 Subject: [PATCH 128/146] FFmpeg 7.1 upgrade --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39c7c405..ce057e91 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: build-macos: name: build in native macOS - runs-on: macos-14 + runs-on: macos-latest steps: - name: Checkout code uses: actions/checkout@v4 From a36c8c5e60017f9e339ceb8ce5d211613a676054 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 11:53:38 +0100 Subject: [PATCH 129/146] Libjxl upgrade --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index df8ebfee..fa4c6b99 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -883,7 +883,7 @@ if build "libpng" "1.6.43"; then build_done "libpng" $CURRENT_PACKAGE_VERSION fi -if build "libjxl" "0.10.3"; then +if build "libjxl" "0.11.0"; then download "https://github.com/libjxl/libjxl/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libjxl-$CURRENT_PACKAGE_VERSION.tar.gz" # currently needed to fix linking of static builds in non-C++ applications sed "s/-ljxl_threads/-ljxl_threads @JPEGXL_THREADS_PUBLIC_LIBS@/g" lib/threads/libjxl_threads.pc.in >lib/threads/libjxl_threads.pc.in.patched From e1d4e3ed9afd0a1df69078d0497aee207b17010e Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 13:20:21 +0100 Subject: [PATCH 130/146] FFmpeg 7.1 upgrade --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index fa4c6b99..9b96d56b 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -893,7 +893,7 @@ if build "libjxl" "0.11.0"; then rm lib/jxl_threads.cmake mv lib/jxl_threads.cmake.patched lib/jxl_threads.cmake execute ./deps.sh - execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=OFF -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF . + execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=ON -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF . execute make -j $MJOBS execute make install build_done "libjxl" $CURRENT_PACKAGE_VERSION From 4a608b4734a03157164f7d753255e507d46f2097 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 20:55:04 +0100 Subject: [PATCH 131/146] svtav1 2.3.0 --- Dockerfile | 2 +- build-ffmpeg | 3 +-- full-static.dockerfile | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0523cab1..933104b7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt-get update \ && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev \ - python3 python-is-python3 ninja-build meson \ + python3 python-is-python3 ninja-build meson git \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ && update-ca-certificates diff --git a/build-ffmpeg b/build-ffmpeg index 9b96d56b..93581a57 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -535,7 +535,7 @@ if command_exists "python3"; then fi fi -if build "svtav1" "2.1.0"; then +if build "svtav1" "2.3.0"; then # Last known working commit which passed CI Tests from HEAD branch download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$CURRENT_PACKAGE_VERSION/SVT-AV1-v$CURRENT_PACKAGE_VERSION.tar.gz" "svtav1-$CURRENT_PACKAGE_VERSION.tar.gz" cd "${PACKAGES}"/svtav1-$CURRENT_PACKAGE_VERSION//Build/linux || exit @@ -543,7 +543,6 @@ if build "svtav1" "2.1.0"; then execute make -j $MJOBS execute make install execute cp SvtAv1Enc.pc "${WORKSPACE}/lib/pkgconfig/" - execute cp SvtAv1Dec.pc "${WORKSPACE}/lib/pkgconfig/" build_done "svtav1" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-libsvtav1") diff --git a/full-static.dockerfile b/full-static.dockerfile index 4b549a54..2191f7f8 100644 --- a/full-static.dockerfile +++ b/full-static.dockerfile @@ -5,7 +5,8 @@ ENV NVIDIA_VISIBLE_DEVICES=all ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video RUN apt-get update \ - && apt-get -y --no-install-recommends install build-essential curl ca-certificates python3 python-is-python3 ninja-build meson \ + && apt-get -y --no-install-recommends install build-essential curl ca-certificates python3 \ + python-is-python3 ninja-build meson git \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ && update-ca-certificates From ba3b39b6d8e550be51acd90ca0fc0ff8ea19fa70 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 21:03:30 +0100 Subject: [PATCH 132/146] amf update --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 77c0ce3a..01b8549a 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -1024,7 +1024,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi fi - if build "amf" "1.4.33"; then + if build "amf" "1.4.35"; then download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/download/v$CURRENT_PACKAGE_VERSION/AMF-headers-v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" From e1d3f8efe3ed15c483ae997b8b6a862f2b08d517 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 21:08:13 +0100 Subject: [PATCH 133/146] libpng upgrade to 1.6.44 --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 01b8549a..27ae8221 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -872,7 +872,7 @@ if build "libtiff" "4.6.0"; then execute make install build_done "libtiff" $CURRENT_PACKAGE_VERSION fi -if build "libpng" "1.6.43"; then +if build "libpng" "1.6.44"; then download "https://sourceforge.net/projects/libpng/files/libpng16/$CURRENT_PACKAGE_VERSION/libpng-$CURRENT_PACKAGE_VERSION.tar.gz" "libpng-$CURRENT_PACKAGE_VERSION.tar.gz" export LDFLAGS="${LDFLAGS}" export CPPFLAGS="${CFLAGS}" From e66215516816689e7f176096eef7ca3de0de91cb Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 21:15:41 +0100 Subject: [PATCH 134/146] MacOs Test --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 27ae8221..aa681ba9 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -892,7 +892,7 @@ if build "libjxl" "0.11.0"; then rm lib/jxl_threads.cmake mv lib/jxl_threads.cmake.patched lib/jxl_threads.cmake execute ./deps.sh - execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=ON -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF . + execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=OFF -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF DJPEGXL_ENABLE_SKCMS=OFF . execute make -j $MJOBS execute make install build_done "libjxl" $CURRENT_PACKAGE_VERSION From 16e9267c1ceef2985ba25c1bd154def10cc91753 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 21:35:13 +0100 Subject: [PATCH 135/146] Revert "Use minimal AMF-headers tarball instead of downloading full repo" This reverts commit fb8ff05990cf2d5bac4966394a7f6fcde9cf3d89. --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index aa681ba9..0b6cc18c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -1028,7 +1028,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/download/v$CURRENT_PACKAGE_VERSION/AMF-headers-v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" - execute cp -r "${PACKAGES}"/AMF-$CURRENT_PACKAGE_VERSION/AMF-$CURRENT_PACKAGE_VERSION/AMF/* "${WORKSPACE}/include/AMF/" + execute cp -r "${PACKAGES}"/AMF-$CURRENT_PACKAGE_VERSION/AMF-$CURRENT_PACKAGE_VERSION/amf/public/include/* "${WORKSPACE}/include/AMF/" build_done "amf" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-amf") From feef904288e29b06d297be5e61facdab8d3d9af5 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Mon, 25 Nov 2024 22:06:06 +0100 Subject: [PATCH 136/146] Mac Test+ --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 0b6cc18c..4e6e76bb 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -892,7 +892,7 @@ if build "libjxl" "0.11.0"; then rm lib/jxl_threads.cmake mv lib/jxl_threads.cmake.patched lib/jxl_threads.cmake execute ./deps.sh - execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=OFF -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF DJPEGXL_ENABLE_SKCMS=OFF . + execute cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${WORKSPACE}" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_BINDIR=bin -DCMAKE_INSTALL_INCLUDEDIR=include -DENABLE_SHARED=off -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF -DJPEGXL_ENABLE_JPEGLI=ON -DJPEGXL_TEST_TOOLS=OFF -DJPEGXL_ENABLE_JNI=OFF -DBUILD_TESTING=OFF DJPEGXL_ENABLE_SKCMS=OFF . execute make -j $MJOBS execute make install build_done "libjxl" $CURRENT_PACKAGE_VERSION From 696f608440d41185e750ec7e9ab6f20722f4f78f Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 06:31:50 +0100 Subject: [PATCH 137/146] AMF fix --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 4e6e76bb..ebc4091c 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -1025,7 +1025,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then fi if build "amf" "1.4.35"; then - download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/download/v$CURRENT_PACKAGE_VERSION/AMF-headers-v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" + download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION" execute rm -rf "${WORKSPACE}/include/AMF" execute mkdir -p "${WORKSPACE}/include/AMF" execute cp -r "${PACKAGES}"/AMF-$CURRENT_PACKAGE_VERSION/AMF-$CURRENT_PACKAGE_VERSION/amf/public/include/* "${WORKSPACE}/include/AMF/" From 3014b61a387f3e17f1f870850fc8c4ac78cd5d87 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 08:31:08 +0100 Subject: [PATCH 138/146] MacOS System detection --- build-ffmpeg | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index ebc4091c..43d59fa6 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -13,7 +13,7 @@ CFLAGS="-I$WORKSPACE/include -Wno-int-conversion" LDFLAGS="-L$WORKSPACE/lib" LDEXEFLAGS="" EXTRALIBS="-ldl -lpthread -lm -lz" -MACOS_M1=false +MACOS_SILICON=false CONFIGURE_OPTIONS=() NONFREE_AND_GPL=false DISABLE_LV2=false @@ -27,7 +27,20 @@ if [[ ("$(uname -m)" == "arm64") && ("$OSTYPE" == "darwin"*) ]]; then export ARCH=arm64 export MACOSX_DEPLOYMENT_TARGET=11.0 export CXX=$(which clang++) - MACOS_M1=true + MACOS_SILICON=true + echo "Apple Silicon detected." + + # get macos version + MACOS_VERSION=$(sw_vers -productVersion) + echo "macOS Version: $MACOS_VERSION" + + #check if clang++ is installed and print version. Otherwise exit with an error message + if command_exists "clang++"; then + echo "clang++ is installed. Version: $(clang++ --version | head -n 1)" + else + echo "clang++ is not installed. Please install Xcode." + exit 1 + fi fi # Speed up the process @@ -195,7 +208,7 @@ verify_binary_type() { echo "" case $BINARY_TYPE in "Mach-O 64-bit executable arm64") - echo "Successfully built Apple Silicon (M1) for ${OSTYPE}: ${BINARY_TYPE}" + echo "Successfully built Apple Silicon for ${OSTYPE}: ${BINARY_TYPE}" ;; *) echo "Successfully built binary for ${OSTYPE}: ${BINARY_TYPE}" @@ -427,7 +440,7 @@ if $NONFREE_AND_GPL; then if build "openssl" "1.1.1w"; then download "https://www.openssl.org/source/openssl-$CURRENT_PACKAGE_VERSION.tar.gz" - if $MACOS_M1; then + if $MACOS_SILICON; then sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc else @@ -517,7 +530,7 @@ if command_exists "python3"; then make_dir build CFLAGSBACKUP=$CFLAGS - if $MACOS_M1; then + if $MACOS_SILICON; then export CFLAGS="-arch arm64" fi @@ -525,7 +538,7 @@ if command_exists "python3"; then execute ninja -C build execute ninja -C build install - if $MACOS_M1; then + if $MACOS_SILICON; then export CFLAGS=$CFLAGSBACKUP fi @@ -669,7 +682,7 @@ if $NONFREE_AND_GPL; then if build "vid_stab" "1.1.1"; then download "https://github.com/georgmartius/vid.stab/archive/v$CURRENT_PACKAGE_VERSION.tar.gz" "vid.stab-$CURRENT_PACKAGE_VERSION.tar.gz" - if $MACOS_M1; then + if $MACOS_SILICON; then curl -L --silent -o "$PACKAGES/vid.stab-$CURRENT_PACKAGE_VERSION/fix_cmake_quoting.patch" "https://raw.githubusercontent.com/Homebrew/formula-patches/5bf1a0e0cfe666ee410305cece9c9c755641bfdf/libvidstab/fix_cmake_quoting.patch" patch -p1 Date: Tue, 26 Nov 2024 08:34:25 +0100 Subject: [PATCH 139/146] MacOS System detection --- .github/workflows/build.yml | 2 +- build-ffmpeg | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ce057e91..3f376765 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: build-macos: name: build in native macOS - runs-on: macos-latest + runs-on: macos-15 steps: - name: Checkout code uses: actions/checkout@v4 diff --git a/build-ffmpeg b/build-ffmpeg index 43d59fa6..b36b8e01 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -21,6 +21,15 @@ LATEST=false MANPAGES=1 CURRENT_PACKAGE_VERSION=0 + +command_exists() { + if ! [[ -x $(command -v "$1") ]]; then + return 1 + fi + + return 0 +} + # Check for Apple Silicon if [[ ("$(uname -m)" == "arm64") && ("$OSTYPE" == "darwin"*) ]]; then # If arm64 AND darwin (macOS) @@ -179,14 +188,6 @@ build() { return 0 } -command_exists() { - if ! [[ -x $(command -v "$1") ]]; then - return 1 - fi - - return 0 -} - library_exists() { if ! [[ -x $(pkg-config --exists --print-errors "$1" 2>&1 >/dev/null) ]]; then return 1 From c62093d51b210c5760cfc59ac5ddb9ba4f43b971 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 08:46:05 +0100 Subject: [PATCH 140/146] autoconf 2.72, automake 1.17, nettle 3.10, gnutls 3.8.4, dav1d 1.5.0, x265 4.0, libvpx 1.15.0, av1 3.11 --- build-ffmpeg | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/build-ffmpeg b/build-ffmpeg index b36b8e01..793961bb 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -406,7 +406,7 @@ if build "m4" "1.4.19"; then build_done "m4" $CURRENT_PACKAGE_VERSION fi -if build "autoconf" "2.71"; then +if build "autoconf" "2.72"; then download "https://ftp.gnu.org/gnu/autoconf/autoconf-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS @@ -414,7 +414,7 @@ if build "autoconf" "2.71"; then build_done "autoconf" $CURRENT_PACKAGE_VERSION fi -if build "automake" "1.16.5"; then +if build "automake" "1.17"; then download "https://ftp.gnu.org/gnu/automake/automake-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" execute make -j $MJOBS @@ -461,7 +461,7 @@ else build_done "gmp" $CURRENT_PACKAGE_VERSION fi - if build "nettle" "3.9.1"; then + if build "nettle" "3.10"; then download "https://ftp.gnu.org/gnu/nettle/nettle-$CURRENT_PACKAGE_VERSION.tar.gz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-openssl --disable-documentation --libdir="${WORKSPACE}"/lib CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS @@ -470,8 +470,8 @@ else fi if [[ ! $ARCH == 'arm64' ]]; then - if build "gnutls" "3.7.10"; then - download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-$CURRENT_PACKAGE_VERSION.tar.xz" + if build "gnutls" "3.8.4"; then + download "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-doc --disable-tools --disable-cxx --disable-tests --disable-gtk-doc-html --disable-libdane --disable-nls --enable-local-libopts --disable-guile --with-included-libtasn1 --with-included-unistring --without-p11-kit CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" execute make -j $MJOBS execute make install @@ -526,7 +526,7 @@ if command_exists "python3"; then fi if command_exists "meson"; then - if build "dav1d" "1.4.2"; then + if build "dav1d" "1.5.0"; then download "https://code.videolan.org/videolan/dav1d/-/archive/$CURRENT_PACKAGE_VERSION/dav1d-$CURRENT_PACKAGE_VERSION.tar.gz" make_dir build @@ -598,7 +598,7 @@ if $NONFREE_AND_GPL; then fi if $NONFREE_AND_GPL; then - if build "x265" "3.6"; then + if build "x265" "4.0"; then download "https://bitbucket.org/multicoreware/x265_git/downloads/x265_$CURRENT_PACKAGE_VERSION.tar.gz" "x265-$CURRENT_PACKAGE_VERSION.tar.gz" # This is actually 3.4 if looking at x265Version.txt cd build/linux || exit rm -rf 8bit 10bit 12bit 2>/dev/null @@ -641,7 +641,7 @@ EOF CONFIGURE_OPTIONS+=("--enable-libx265") fi -if build "libvpx" "1.14.1"; then +if build "libvpx" "1.15.0"; then download "https://github.com/webmproject/libvpx/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libvpx-$CURRENT_PACKAGE_VERSION.tar.gz" if [[ "$OSTYPE" == "darwin"* ]]; then @@ -697,8 +697,8 @@ if $NONFREE_AND_GPL; then CONFIGURE_OPTIONS+=("--enable-libvidstab") fi -if build "av1" "42dfaa1d47022650bc157dbe20d210591d14bae4"; then - # libaom 42dfaa1d47022650bc157dbe20d210591d14bae4 == v3.9.0 +if build "av1" "d6f30ae474dd6c358f26de0a0fc26a0d7340a84c"; then + # d6f30ae474dd6c358f26de0a0fc26a0d7340a84c == v3.11.0 download "https://aomedia.googlesource.com/aom/+archive/$CURRENT_PACKAGE_VERSION.tar.gz" "av1.tar.gz" "av1" make_dir "$PACKAGES"/aom_build cd "$PACKAGES"/aom_build || exit From 9bd427e0dde4f4868ef696eed1627f3ffbadc684 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 09:00:49 +0100 Subject: [PATCH 141/146] libtiff 4.7.0, FreeType2 2.13.3, srt 1.5.4 --- .github/workflows/build.yml | 2 +- build-ffmpeg | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f376765..a6f33d25 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: - name: build ffmpeg run: | while sleep 300; do echo "=====[ $SECONDS seconds still running ]====="; done & - SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build --enable-gpl-and-non-free + SKIPINSTALL=yes VERBOSE=yes ./build-ffmpeg --build --enable-gpl-and-non-free kill %1 - name: check shared library run: | diff --git a/build-ffmpeg b/build-ffmpeg index 793961bb..45d56c34 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -879,7 +879,7 @@ fi ## image library ## -if build "libtiff" "4.6.0"; then +if build "libtiff" "4.7.0"; then download "https://download.osgeo.org/libtiff/tiff-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static --disable-dependency-tracking --disable-lzma --disable-webp --disable-zstd --without-x execute make -j $MJOBS @@ -940,7 +940,7 @@ if build "libsdl" "2.30.1"; then build_done "libsdl" $CURRENT_PACKAGE_VERSION fi -if build "FreeType2" "2.13.2"; then +if build "FreeType2" "2.13.3"; then download "https://downloads.sourceforge.net/freetype/freetype-$CURRENT_PACKAGE_VERSION.tar.xz" execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static execute make -j $MJOBS @@ -951,7 +951,7 @@ fi CONFIGURE_OPTIONS+=("--enable-libfreetype") if $NONFREE_AND_GPL; then - if build "srt" "1.5.3"; then + if build "srt" "1.5.4"; then download "https://github.com/Haivision/srt/archive/v$CURRENT_PACKAGE_VERSION.tar.gz" "srt-$CURRENT_PACKAGE_VERSION.tar.gz" export OPENSSL_ROOT_DIR="${WORKSPACE}" export OPENSSL_LIB_DIR="${WORKSPACE}"/lib From 61ef7d2f0bb8350015e70ab147af09f45a453e82 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 09:01:39 +0100 Subject: [PATCH 142/146] Bump Version to 1.54 --- README.md | 6 +++--- build-ffmpeg | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 78916a70..2f0d5a0e 100644 --- a/README.md +++ b/README.md @@ -319,9 +319,9 @@ Contact Tested on --------- -* MacOS 10.15 -* Debian 10 -* Ubuntu 20.04 +* MacOS 15.1 +* Debian 12 +* Ubuntu 22.04 ## Continuous Integration diff --git a/build-ffmpeg b/build-ffmpeg index 45d56c34..0a6ea1e2 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -5,7 +5,7 @@ PROGNAME=$(basename "$0") FFMPEG_VERSION=7.1 -SCRIPT_VERSION=1.53 +SCRIPT_VERSION=1.54 CWD=$(pwd) PACKAGES="$CWD/packages" WORKSPACE="$CWD/workspace" From 4a57fe9cee076408e3728569a22d0cc81decc38a Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 09:53:02 +0100 Subject: [PATCH 143/146] rav1e build fix --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a6f33d25..3f376765 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: - name: build ffmpeg run: | while sleep 300; do echo "=====[ $SECONDS seconds still running ]====="; done & - SKIPINSTALL=yes VERBOSE=yes ./build-ffmpeg --build --enable-gpl-and-non-free + SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build --enable-gpl-and-non-free kill %1 - name: check shared library run: | From 2ca2b9bca0ced7b0e455cf9299a6e883babdb4b7 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 10:08:47 +0100 Subject: [PATCH 144/146] rav1e build fix macOS --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f376765..5935084a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,7 +45,7 @@ jobs: - name: build ffmpeg run: | while sleep 300; do echo "=====[ $SECONDS seconds still running ]====="; done & - SKIPINSTALL=yes VERBOSE=yes SKIPRAV1E=yes ./build-ffmpeg --build + SKIPINSTALL=yes VERBOSE=yes ./build-ffmpeg --build kill %1 - name: check shared library run: | From fcbcb3c50e8902edb6961d46f6c79087fa118124 Mon Sep 17 00:00:00 2001 From: Markus Perl Date: Tue, 26 Nov 2024 15:14:55 +0100 Subject: [PATCH 145/146] Ubuntu 24.04 upgrade --- .github/workflows/build.yml | 16 +++++++------- Dockerfile | 10 ++++----- cuda-ubuntu.dockerfile | 43 +++++++++++++++---------------------- full-static.dockerfile | 2 +- 4 files changed, 31 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5935084a..df03b2de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ on: jobs: build-linux: name: build in native linux - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4 @@ -59,7 +59,7 @@ jobs: build-docker: name: build in docker - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4 @@ -67,11 +67,11 @@ jobs: - name: pull base image id: ubuntu_pull run: | - docker pull ubuntu:22.04 + docker pull ubuntu:24.04 - name: run if ubuntu_pull failed if: failure() && steps.ubuntu_pull.outcome == 'failure' run: | - docker pull ubuntu:22.04 + docker pull ubuntu:24.04 - name: build ffmpeg run: | docker build -t ffmpeg:ubuntu -f Dockerfile . @@ -89,12 +89,12 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 + docker pull nvidia/cuda:12.6.2-devel-ubuntu22.04 docker pull ubuntu:22.04 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 + docker pull nvidia/cuda:12.6.2-devel-ubuntu22.04 docker pull ubuntu:22.04 - name: build ffmpeg run: | @@ -113,11 +113,11 @@ jobs: - name: pull base image id: cuda_ubuntu_pull run: | - docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 + docker pull nvidia/cuda:12.6.2-devel-ubuntu22.04 - name: run if cuda_ubuntu_pull failed if: failure() && steps.cuda_ubuntu_pull.outcome == 'failure' run: | - docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04 + docker pull nvidia/cuda:12.6.2-devel-ubuntu22.04 - name: build ffmpeg run: | docker build -t ffmpeg:cuda-static -f full-static.dockerfile . diff --git a/Dockerfile b/Dockerfile index 933104b7..1b3498c8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -FROM ubuntu:22.04 AS build +FROM ubuntu:24.04 AS build -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev \ - python3 python-is-python3 ninja-build meson git \ + python3 python-is-python3 ninja-build meson git curl \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ && update-ca-certificates @@ -13,9 +13,9 @@ COPY ./build-ffmpeg /app/build-ffmpeg RUN SKIPINSTALL=yes /app/build-ffmpeg --build -FROM ubuntu:22.04 +FROM ubuntu:24.04 -ENV DEBIAN_FRONTEND noninteractive +ENV DEBIAN_FRONTEND=noninteractive # install va-driver RUN apt-get update \ diff --git a/cuda-ubuntu.dockerfile b/cuda-ubuntu.dockerfile index 1355b21e..709cb7c1 100644 --- a/cuda-ubuntu.dockerfile +++ b/cuda-ubuntu.dockerfile @@ -1,26 +1,17 @@ -ARG CUDAVER=12.2.2 +ARG CUDAVER=12.6.2 ARG UBUNTUVER=22.04 FROM nvidia/cuda:${CUDAVER}-devel-ubuntu${UBUNTUVER} AS build -ENV DEBIAN_FRONTEND noninteractive -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video +ENV DEBIAN_FRONTEND=noninteractive +ENV NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get -y --no-install-recommends install \ - build-essential \ - curl \ - libva-dev \ - python3 \ - python-is-python3 \ - ninja-build \ - meson \ - cmake \ - git && \ - # clean - apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +RUN apt-get update \ + && apt-get -y --no-install-recommends install build-essential curl ca-certificates libva-dev \ + python3 python-is-python3 ninja-build meson git curl \ + && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \ + && update-ca-certificates # build and move deviceQuery to /usr/bin RUN mkdir -p /code && \ @@ -36,9 +27,9 @@ RUN CUDA_COMPUTE_CAPABILITY=$(deviceQuery | grep Capability | head -n 1 | awk 'E FROM ubuntu:${UBUNTUVER} AS release -ENV DEBIAN_FRONTEND noninteractive -ENV NVIDIA_VISIBLE_DEVICES all -ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,video +ENV DEBIAN_FRONTEND=noninteractive +ENV NVIDIA_VISIBLE_DEVICES=all +ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video # install va-driver RUN apt-get update \ @@ -46,11 +37,11 @@ RUN apt-get update \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Copy libnpp -COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppc.so /lib/x86_64-linux-gnu/libnppc.so.12 -COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppig.so /lib/x86_64-linux-gnu/libnppig.so.12 -COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppicc.so /lib/x86_64-linux-gnu/libnppicc.so.12 -COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppidei.so /lib/x86_64-linux-gnu/libnppidei.so.12 -COPY --from=build /usr/local/cuda-12.2/targets/x86_64-linux/lib/libnppif.so /lib/x86_64-linux-gnu/libnppif.so.12 +COPY --from=build /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppc.so /lib/x86_64-linux-gnu/libnppc.so.12 +COPY --from=build /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppig.so /lib/x86_64-linux-gnu/libnppig.so.12 +COPY --from=build /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppicc.so /lib/x86_64-linux-gnu/libnppicc.so.12 +COPY --from=build /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppidei.so /lib/x86_64-linux-gnu/libnppidei.so.12 +COPY --from=build /usr/local/cuda-12.6/targets/x86_64-linux/lib/libnppif.so /lib/x86_64-linux-gnu/libnppif.so.12 # Copy ffmpeg COPY --from=build /app/workspace/bin/ffmpeg /usr/bin/ffmpeg diff --git a/full-static.dockerfile b/full-static.dockerfile index 2191f7f8..26f016b5 100644 --- a/full-static.dockerfile +++ b/full-static.dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 AS build +FROM ubuntu:24.04 AS build ENV DEBIAN_FRONTEND=noninteractive ENV NVIDIA_VISIBLE_DEVICES=all From 417bc75d7325483208d239037a42f0c174baada3 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Sun, 8 Dec 2024 15:26:04 -0500 Subject: [PATCH 146/146] add libdir flag to fix not found by pkg-config --- build-ffmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-ffmpeg b/build-ffmpeg index 0a6ea1e2..b277711d 100755 --- a/build-ffmpeg +++ b/build-ffmpeg @@ -569,7 +569,7 @@ if command_exists "cargo"; then execute cargo install cargo-c download "https://github.com/xiph/rav1e/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" export RUSTFLAGS="-C target-cpu=native" - execute cargo cinstall --prefix="${WORKSPACE}" --library-type=staticlib --crt-static --release + execute cargo cinstall --prefix="${WORKSPACE}" --libdir=lib --library-type=staticlib --crt-static --release build_done "rav1e" $CURRENT_PACKAGE_VERSION fi CONFIGURE_OPTIONS+=("--enable-librav1e")