From ab7a4e8283f0eef68af4c5518b3eb06afc9215d6 Mon Sep 17 00:00:00 2001 From: WyattBlue Date: Mon, 12 Jan 2026 01:47:20 -0500 Subject: [PATCH 1/3] Remove libaom dav1d and stvav1 are better encoders/decoders for basically everyone. --- README.rst | 3 +-- scripts/build-ffmpeg.py | 14 -------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/README.rst b/README.rst index daa8007f..630db927 100644 --- a/README.rst +++ b/README.rst @@ -7,7 +7,7 @@ users to easily install PyAV without perform error-prone compilations. The builds are provided for several platforms: -- Linux (x86_64, aarch64) +- Linux (x86_64, aarch64, ppc64le) - macOS (x86_64, arm64) - Windows (x86_64) @@ -21,7 +21,6 @@ Currently FFmpeg 8.0.1 is built with the following packages enabled for all plat - opus 1.6 - speex 1.2.1 - vorbis 1.3.7 -- aom 3.13.1 - dav1d 1.5.3 - libsvtav1 3.1.2 - vpx 1.15.2 diff --git a/scripts/build-ffmpeg.py b/scripts/build-ffmpeg.py index 77d00ded..7b95f0e7 100644 --- a/scripts/build-ffmpeg.py +++ b/scripts/build-ffmpeg.py @@ -92,19 +92,6 @@ def calculate_sha256(filename: str) -> str: sha256="b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b", requires=["ogg"], ), - Package( - name="aom", - source_url="https://storage.googleapis.com/aom-releases/libaom-3.13.1.tar.gz", - sha256="19e45a5a7192d690565229983dad900e76b513a02306c12053fb9a262cbeca7d", - build_system="cmake", - build_arguments=[ - "-DENABLE_DOCS=0", - "-DENABLE_EXAMPLES=0", - "-DENABLE_TESTS=0", - "-DENABLE_TOOLS=0", - ], - build_parallel=False, - ), Package( name="dav1d", source_url="https://code.videolan.org/videolan/dav1d/-/archive/1.5.3/dav1d-1.5.3.tar.bz2", @@ -369,7 +356,6 @@ def main(): "--enable-version3", "--enable-alsa" if use_alsa else "--disable-alsa", "--enable-gnutls" if use_gnutls else "--disable-gnutls", - "--enable-libaom", "--enable-libdav1d", "--enable-libmp3lame", "--enable-libopencore-amrnb" if community else "--disable-libopencore-amrnb", From 6a7e123bb3ff6d629e7c13f0b11b50242e394295 Mon Sep 17 00:00:00 2001 From: WyattBlue Date: Mon, 12 Jan 2026 02:25:08 -0500 Subject: [PATCH 2/3] Use x264 revision b35605ace3ddf7 --- scripts/build-ffmpeg.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/build-ffmpeg.py b/scripts/build-ffmpeg.py index 7b95f0e7..ceb09116 100644 --- a/scripts/build-ffmpeg.py +++ b/scripts/build-ffmpeg.py @@ -160,12 +160,12 @@ def calculate_sha256(filename: str) -> str: ), Package( name="x264", - source_url="https://code.videolan.org/videolan/x264/-/archive/32c3b801191522961102d4bea292cdb61068d0dd/x264-32c3b801191522961102d4bea292cdb61068d0dd.tar.bz2", - sha256="d7748f350127cea138ad97479c385c9a35a6f8527bc6ef7a52236777cf30b839", + source_url="https://code.videolan.org/videolan/x264/-/archive/b35605ace3ddf7c1a5d67a2eb553f034aef41d55/x264-b35605ace3ddf7c1a5d67a2eb553f034aef41d55.tar.bz2", + sha256="6eeb82934e69fd51e043bd8c5b0d152839638d1ce7aa4eea65a3fedcf83ff224", # assembly contains textrels which are not supported by musl - build_arguments=["--disable-cli"] + (["--disable-asm"] if is_musllinux else []), - # parallel build runs out of memory on Windows - build_parallel=plat != "Windows", + build_arguments=( + "--disable-lsmash --disable-swscale --disable-ffms --enable-strip" + (" --disable-asm" if is_musllinux else "") + ).split(" "), ), Package( name="x265", From 2343600753c1e5f73080909c42d4bc14998e2124 Mon Sep 17 00:00:00 2001 From: WyattBlue Date: Mon, 12 Jan 2026 02:47:58 -0500 Subject: [PATCH 3/3] Enable parallel building for Windows --- .github/workflows/build-ffmpeg.yml | 5 ++--- scripts/build-ffmpeg.py | 7 ++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-ffmpeg.yml b/.github/workflows/build-ffmpeg.yml index bb9e9114..75f1edac 100644 --- a/.github/workflows/build-ffmpeg.yml +++ b/.github/workflows/build-ffmpeg.yml @@ -87,11 +87,10 @@ jobs: path: output/ cross-build: - runs-on: ${{ matrix.os }} + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - os: [ "ubuntu-24.04" ] build: [ "manylinux_", "musllinux_" ] # arch: [ "loongarch64", "ppc64le", "riscv64", "s390x" ] arch: [ "ppc64le" ] @@ -99,7 +98,7 @@ jobs: - uses: actions/checkout@v6 - uses: actions/setup-python@v6 with: - python-version: "3.13" + python-version: "3.14" - uses: docker/setup-qemu-action@v3 - name: Build FFmpeg env: diff --git a/scripts/build-ffmpeg.py b/scripts/build-ffmpeg.py index ceb09116..b1099075 100644 --- a/scripts/build-ffmpeg.py +++ b/scripts/build-ffmpeg.py @@ -154,8 +154,7 @@ def calculate_sha256(filename: str) -> str: name="opencore-amr", source_url="https://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz", sha256="483eb4061088e2b34b358e47540b5d495a96cd468e361050fae615b1809dc4a1", - # parallel build hangs on Windows - build_parallel=plat != "Windows", + build_arguments=["--disable-dependency-tracking"], when=When.community_only, ), Package( @@ -164,7 +163,7 @@ def calculate_sha256(filename: str) -> str: sha256="6eeb82934e69fd51e043bd8c5b0d152839638d1ce7aa4eea65a3fedcf83ff224", # assembly contains textrels which are not supported by musl build_arguments=( - "--disable-lsmash --disable-swscale --disable-ffms --enable-strip" + (" --disable-asm" if is_musllinux else "") + "--disable-cli --disable-lsmash --disable-swscale --disable-ffms --enable-strip" + (" --disable-asm" if is_musllinux else "") ).split(" "), ), Package( @@ -216,8 +215,6 @@ def calculate_sha256(filename: str) -> str: name="ffmpeg", source_url="https://ffmpeg.org/releases/ffmpeg-8.0.1.tar.xz", sha256="05ee0b03119b45c0bdb4df654b96802e909e0a752f72e4fe3794f487229e5a41", - build_arguments=[], - build_parallel=plat != "Windows", )