From 873c860f200fcb384ae67fdd431c2be1fcd72ca5 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:38:20 +0000 Subject: [PATCH] remove unused hwaccel images (#28) --- nvidia.Dockerfile | 702 ---------------------------------------------- vaapi.Dockerfile | 610 ---------------------------------------- 2 files changed, 1312 deletions(-) delete mode 100644 nvidia.Dockerfile delete mode 100644 vaapi.Dockerfile diff --git a/nvidia.Dockerfile b/nvidia.Dockerfile deleted file mode 100644 index 05d453c..0000000 --- a/nvidia.Dockerfile +++ /dev/null @@ -1,702 +0,0 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS devel-base - -ENV DEBIAN_FRONTEND="noninteractive" \ - MAKEFLAGS="-j4" \ - PATH="/root/.cargo/bin:${PATH}" - -ENV AOM=v3.12.0 \ - FDKAAC=2.0.3 \ - FFMPEG_HARD=7.1.1 \ - FONTCONFIG=2.16.0 \ - FREETYPE=2.13.3 \ - FRIBIDI=1.0.16 \ - KVAZAAR=2.3.1 \ - LAME=3.100 \ - LIBASS=0.17.3 \ - LIBDAV1D=1.5.1 \ - LIBDOVI=2.2.0 \ - LIBDRM=2.4.124 \ - LIBGL=1.7.0 \ - LIBPLACEBO=7.349.0 \ - LIBSRT=1.5.4 \ - LIBVA=2.18.0 \ - LIBVDPAU=1.5 \ - LIBWEBP=1.5.0 \ - NVCODEC=11.1.5.3 \ - OGG=1.3.5 \ - OPENCOREAMR=0.1.6 \ - OPENJPEG=2.5.3 \ - OPUS=1.5.2 \ - SHADERC=v2025.1 \ - THEORA=1.1.1 \ - VORBIS=1.3.7 \ - VPX=1.15.0 \ - VULKANSDK=vulkan-sdk-1.4.304.1 \ - X265=4.1 \ - XVID=1.3.7 \ - ZIMG=3.0.5 - -RUN apt-get -yqq update && \ - apt-get -yq --no-install-recommends install -y \ - autoconf \ - automake \ - bzip2 \ - ca-certificates \ - clang \ - cmake \ - curl \ - diffutils \ - doxygen \ - expat \ - g++ \ - gcc \ - git \ - gperf \ - jq \ - libexpat1-dev \ - libxext-dev \ - libgcc-9-dev \ - libgomp1 \ - libharfbuzz-dev \ - libpciaccess-dev \ - libssl-dev \ - libtool \ - libv4l-dev \ - libwayland-dev \ - libwayland-egl-backend-dev \ - libx11-dev \ - libx11-xcb-dev \ - libxcb-dri2-0-dev \ - libxcb-dri3-dev \ - libxcb-glx0-dev \ - libxcb-present-dev \ - libxcb-shape0-dev \ - libxml2-dev \ - libxrandr-dev \ - make \ - nasm \ - nvidia-cuda-toolkit \ - ocl-icd-opencl-dev \ - patch \ - perl \ - pkg-config \ - python3-venv \ - x11proto-xext-dev \ - xserver-xorg-dev \ - xz-utils \ - yasm \ - zlib1g-dev && \ - apt-get autoremove -y && \ - apt-get clean -y && \ - mkdir -p /tmp/rust && \ - RUST_VERSION=$(curl -fsX GET https://api.github.com/repos/rust-lang/rust/releases/latest | jq -r '.tag_name') && \ - curl -fo /tmp/rust.tar.gz -L "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" && \ - tar xf /tmp/rust.tar.gz -C /tmp/rust --strip-components=1 && \ - cd /tmp/rust && \ - ./install.sh && \ - cargo install cargo-c cbindgen --locked && \ - python3 -m venv /lsiopy && \ - pip install -U --no-cache-dir \ - pip \ - setuptools \ - wheel && \ - pip install --no-cache-dir cmake==3.31.6 mako meson ninja packaging ply pyyaml - -# aom -RUN mkdir -p /tmp/aom && \ - git clone \ - --branch ${AOM} \ - --depth 1 https://aomedia.googlesource.com/aom \ - /tmp/aom -RUN cd /tmp/aom && \ - rm -rf \ - CMakeCache.txt \ - CMakeFiles && \ - mkdir -p \ - aom_build && \ - cd aom_build && \ - cmake \ - -DBUILD_STATIC_LIBS=0 .. && \ - make && \ - make install - -# fdk-aac -RUN mkdir -p /tmp/fdk-aac && \ - curl -Lf \ - https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/fdk-aac -RUN cd /tmp/fdk-aac && \ - autoreconf -fiv && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libfdk-aac.so - -# ffnvcodec -RUN mkdir -p /tmp/ffnvcodec && \ - git clone \ - --branch n${NVCODEC} \ - --depth 1 https://github.com/FFmpeg/nv-codec-headers \ - /tmp/ffnvcodec -RUN cd /tmp/ffnvcodec && \ - make install - -# freetype -RUN mkdir -p /tmp/freetype && \ - curl -Lf \ - https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/freetype -RUN cd /tmp/freetype && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libfreetype.so - -# fontconfig -RUN mkdir -p /tmp/fontconfig && \ - curl -Lf \ - https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.xz | \ - tar -Jx --strip-components=1 -C /tmp/fontconfig -RUN cd /tmp/fontconfig && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libfontconfig.so - -# fribidi -RUN mkdir -p /tmp/fribidi && \ - curl -Lf \ - https://github.com/fribidi/fribidi/archive/v${FRIBIDI}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/fribidi -RUN cd /tmp/fribidi && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make -j 1 && \ - make install && \ - strip -d /usr/local/lib/libfribidi.so - -# kvazaar -RUN mkdir -p /tmp/kvazaar && \ - curl -Lf \ - https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/kvazaar -RUN cd /tmp/kvazaar && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libkvazaar.so - -# lame -RUN mkdir -p /tmp/lame && \ - curl -Lf \ - http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/lame -RUN cd /tmp/lame && \ - cp \ - /usr/share/automake-1.16/config.guess \ - config.guess && \ - cp \ - /usr/share/automake-1.16/config.sub \ - config.sub && \ - ./configure \ - --disable-frontend \ - --disable-static \ - --enable-nasm \ - --enable-shared && \ - make && \ - make install - -# libass -RUN mkdir -p /tmp/libass && \ - curl -Lf \ - https://github.com/libass/libass/archive/${LIBASS}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libass -RUN cd /tmp/libass && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libass.so - -# libdav1d -RUN mkdir -p /tmp/libdav1d && \ - git clone \ - --branch ${LIBDAV1D} \ - --depth 1 https://github.com/videolan/dav1d.git \ - /tmp/libdav1d -RUN mkdir /tmp/libdav1d/build && cd /tmp/libdav1d/build && \ - meson setup -Denable_tools=false -Denable_tests=false --libdir /usr/local/lib .. && \ - ninja install - -# libgl -RUN mkdir -p /tmp/libgl && \ - curl -Lf \ - https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v${LIBGL}/libglvnd-v${LIBGL}.tar.gz | \ - tar -xz --strip-components=1 -C /tmp/libgl -RUN cd /tmp/libgl && \ - meson setup \ - --buildtype=release \ - build && \ - ninja -C build install && \ - strip -d \ - /usr/local/lib64/libEGL.so \ - /usr/local/lib64/libGLdispatch.so \ - /usr/local/lib64/libGLESv1_CM.so \ - /usr/local/lib64/libGLESv2.so \ - /usr/local/lib64/libGL.so \ - /usr/local/lib64/libGLX.so \ - /usr/local/lib64/libOpenGL.so - -# libdrm -RUN mkdir -p /tmp/libdrm && \ - curl -Lf \ - https://dri.freedesktop.org/libdrm/libdrm-${LIBDRM}.tar.xz | \ - tar -Jx --strip-components=1 -C /tmp/libdrm -RUN cd /tmp/libdrm && \ - meson setup \ - --prefix=/usr --libdir=/usr/local/lib/x86_64-linux-gnu \ - -Dvalgrind=disabled \ - . build && \ - ninja -C build && \ - ninja -C build install && \ - strip -d /usr/local/lib/x86_64-linux-gnu/libdrm*.so - -# libdovi -RUN mkdir -p /tmp/libdovi && \ - git clone \ - --branch ${LIBDOVI} \ - https://github.com/quietvoid/dovi_tool.git \ - /tmp/libdovi -RUN cd /tmp/libdovi/dolby_vision && \ - cargo cinstall --release && \ - strip -d /usr/local/lib64/libdovi.so - -# libplacebo -RUN mkdir -p /tmp/libplacebo && \ - git clone \ - --branch v${LIBPLACEBO} \ - --recursive https://code.videolan.org/videolan/libplacebo \ - /tmp/libplacebo -RUN cd /tmp/libplacebo && \ - meson setup \ - --prefix=/usr --libdir=/usr/local/lib/x86_64-linux-gnu \ - . build --buildtype release && \ - ninja -C build install - -# libsrt -RUN mkdir -p /tmp/libsrt && \ - curl -Lf \ - https://github.com/Haivision/srt/archive/v${LIBSRT}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libsrt -RUN cd /tmp/libsrt && \ - cmake . && \ - make && \ - make install - -# libva -RUN mkdir -p /tmp/libva && \ - curl -Lf \ - https://github.com/intel/libva/archive/${LIBVA}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libva -RUN cd /tmp/libva && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d \ - /usr/local/lib/libva.so \ - /usr/local/lib/libva-drm.so \ - /usr/local/lib/libva-wayland.so - -# libvdpau -RUN mkdir -p /tmp/libvdpau && \ - git clone \ - --branch ${LIBVDPAU} \ - --depth 1 https://gitlab.freedesktop.org/vdpau/libvdpau.git \ - /tmp/libvdpau -RUN cd /tmp/libvdpau && \ - meson setup \ - --prefix=/usr --libdir=/usr/local/lib \ - -Ddocumentation=false \ - build && \ - ninja -C build install && \ - strip -d /usr/local/lib/libvdpau.so - -# shaderc -RUN mkdir -p /tmp/shaderc && \ - git clone \ - --branch ${SHADERC} \ - --depth 1 https://github.com/google/shaderc.git \ - /tmp/shaderc -RUN cd /tmp/shaderc && \ - ./utils/git-sync-deps && \ - mkdir -p build && \ - cd build && \ - cmake -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - .. && \ - ninja install - -# libwebp -RUN mkdir -p /tmp/libwebp && \ - curl -Lf \ - https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${LIBWEBP}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libwebp -RUN cd /tmp/libwebp && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# ogg -RUN mkdir -p /tmp/ogg && \ - curl -Lf \ - http://downloads.xiph.org/releases/ogg/libogg-${OGG}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/ogg -RUN cd /tmp/ogg && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# opencore-amr -RUN mkdir -p /tmp/opencore-amr && \ - curl -Lf \ - http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/opencore-amr -RUN cd /tmp/opencore-amr && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libopencore-amr*.so - -# openjpeg -RUN mkdir -p /tmp/openjpeg && \ - curl -Lf \ - https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/openjpeg -RUN cd /tmp/openjpeg && \ - rm -Rf \ - thirdparty/libpng/* && \ - curl -Lf \ - https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz | \ - tar -zx --strip-components=1 -C thirdparty/libpng/ && \ - cmake \ - -DBUILD_STATIC_LIBS=0 \ - -DBUILD_THIRDPARTY:BOOL=ON . && \ - make && \ - make install - -# opus -RUN mkdir -p /tmp/opus && \ - curl -Lf \ - https://downloads.xiph.org/releases/opus/opus-${OPUS}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/opus -RUN cd /tmp/opus && \ - autoreconf -fiv && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install && \ - strip -d /usr/local/lib/libopus.so - -# theora -RUN mkdir -p /tmp/theora && \ - curl -Lf \ - http://downloads.xiph.org/releases/theora/libtheora-${THEORA}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/theora -RUN cd /tmp/theora && \ - cp \ - /usr/share/automake-1.16/config.guess \ - config.guess && \ - cp \ - /usr/share/automake-1.16/config.sub \ - config.sub && \ - curl -fL \ - 'https://gitlab.xiph.org/xiph/theora/-/commit/7288b539c52e99168488dc3a343845c9365617c8.diff' \ - > png.patch && \ - patch ./examples/png2theora.c < png.patch && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# vorbis -RUN mkdir -p /tmp/vorbis && \ - curl -Lf \ - http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/vorbis -RUN cd /tmp/vorbis && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# vpx -RUN mkdir -p /tmp/vpx && \ - curl -Lf \ - https://github.com/webmproject/libvpx/archive/v${VPX}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/vpx -RUN cd /tmp/vpx && \ - ./configure \ - --disable-debug \ - --disable-docs \ - --disable-examples \ - --disable-install-bins \ - --disable-static \ - --disable-unit-tests \ - --enable-pic \ - --enable-shared \ - --enable-vp8 \ - --enable-vp9 \ - --enable-vp9-highbitdepth && \ - make && \ - make install - -# vulkan -RUN mkdir -p /tmp/vulkan-headers && \ - git clone \ - --branch ${VULKANSDK} \ - --depth 1 https://github.com/KhronosGroup/Vulkan-Headers.git \ - /tmp/vulkan-headers -RUN cd /tmp/vulkan-headers && \ - cmake -S . -B build/ && \ - cmake --install build --prefix /usr/local - -RUN mkdir -p /tmp/vulkan-loader && \ - git clone \ - --branch ${VULKANSDK} \ - --depth 1 https://github.com/KhronosGroup/Vulkan-Loader.git \ - /tmp/vulkan-loader -RUN cd /tmp/vulkan-loader && \ - mkdir -p build && \ - cd build && \ - cmake \ - -D CMAKE_BUILD_TYPE=Release \ - -D VULKAN_HEADERS_INSTALL_DIR=/usr/local/lib/x86_64-linux-gnu \ - -D CMAKE_INSTALL_PREFIX=/usr/local \ - .. && \ - make && \ - make install - -# x264 -RUN mkdir -p /tmp/x264 && \ - git clone --branch stable --depth 1 https://github.com/mirror/x264 /tmp/x264 -RUN cd /tmp/x264 && \ - ./configure \ - --disable-cli \ - --disable-static \ - --enable-pic \ - --enable-shared && \ - make && \ - make install - -# x265 -RUN mkdir -p /tmp/x265 && \ - curl -Lf \ - https://bitbucket.org/multicoreware/x265_git/downloads/x265_${X265}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/x265 -RUN cd /tmp/x265/build/linux && \ - ./multilib.sh && \ - make -C 8bit install - -# xvid -RUN mkdir -p /tmp/xvid && \ - curl -Lf \ - https://downloads.xvid.com/downloads/xvidcore-${XVID}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/xvid -RUN cd /tmp/xvid/build/generic && \ - ./configure && \ - make && \ - make install - -# zimg -RUN mkdir -p /tmp/zimg && \ - git clone \ - --branch release-${ZIMG} --depth 1 \ - https://github.com/sekrit-twc/zimg.git \ - /tmp/zimg -RUN cd /tmp/zimg && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# ffmpeg -RUN if [ -z ${FFMPEG_VERSION+x} ]; then \ - FFMPEG=${FFMPEG_HARD}; \ - else \ - FFMPEG=${FFMPEG_VERSION}; \ - fi && \ - mkdir -p /tmp/ffmpeg && \ - echo "https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.bz2" && \ - curl -Lf \ - https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.bz2 | \ - tar -jx --strip-components=1 -C /tmp/ffmpeg - -RUN cd /tmp/ffmpeg && \ - ./configure \ - --ld=clang++ \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-ffprobe \ - --enable-cuda \ - --enable-cuda-llvm \ - --enable-cuvid \ - --enable-ffprobe \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libdav1d \ - --enable-libass \ - --enable-libfdk_aac \ - --enable-libfontconfig \ - --enable-libfreetype \ - --enable-libfribidi \ - --enable-libkvazaar \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libplacebo \ - --enable-libshaderc \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libv4l2 \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libxml2 \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxvid \ - --enable-libzimg \ - --enable-nonfree \ - --enable-nvdec \ - --enable-nvenc \ - --enable-opencl \ - --enable-openssl \ - --enable-small \ - --enable-stripping \ - --enable-vaapi \ - --enable-vdpau \ - --enable-version3 \ - --enable-vulkan \ - --extra-libs=-ldl \ - --extra-libs=-lpthread && \ - make - -RUN /usr/local/lib/rustlib/uninstall.sh && \ - ldconfig && \ - mkdir -p \ - /buildout/usr/local/bin \ - /buildout/usr/lib \ - /buildout/usr/local/lib/x86_64-linux-gnu/dri \ - /buildout/usr/local/lib/x86_64-linux-gnu/vdpau \ - /buildout/usr/local/share/vulkan \ - /buildout/usr/share/libdrm \ - /buildout/etc/OpenCL/vendors && \ - cp \ - /tmp/ffmpeg/ffmpeg \ - /buildout/usr/local/bin && \ - cp \ - /tmp/ffmpeg/ffprobe \ - /buildout/usr/local/bin && \ - cp -a \ - /usr/local/lib64/lib*so* \ - /buildout/usr/local/lib/x86_64-linux-gnu/ && \ - cp -a \ - /usr/local/lib/lib*so* \ - /buildout/usr/local/lib/ && \ - cp -a \ - /usr/local/lib/x86_64-linux-gnu/lib*so* \ - /buildout/usr/local/lib/x86_64-linux-gnu/ && \ - #cp -a \ - #/usr/local/lib/x86_64-linux-gnu/vdpau/*.so \ - #/buildout/usr/local/lib/x86_64-linux-gnu/vdpau/ && \ - #ldd /tmp/ffmpeg/ffmpeg \ - #| awk '/local/ {print $3}' \ - #| xargs -i cp -L {} /buildout/usr/lib/ && \ - cp -a \ - /usr/share/libdrm/amdgpu.ids \ - /buildout/usr/share/libdrm/ && \ - cp -a \ - /usr/local/share/vulkan/* \ - /buildout/usr/local/share/vulkan/ && \ - echo \ - 'libnvidia-opencl.so.1' > \ - /buildout/etc/OpenCL/vendors/nvidia.icd - -FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS runtime-base - -COPY --from=devel-base /buildout/ / - -ARG DEBIAN_FRONTEND="noninteractive" - -ENV LIBVA_DRIVERS_PATH="/usr/local/lib/x86_64-linux-gnu/dri" \ - LD_LIBRARY_PATH="/usr/local/lib" \ - NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \ - NVIDIA_VISIBLE_DEVICES="all" - -RUN apt-get -yqq update && \ - apt-get install -yq --no-install-recommends \ - ca-certificates \ - expat \ - libgomp1 \ - libllvm15 \ - libharfbuzz-bin \ - libv4l-0 \ - libwayland-client0 \ - libx11-6 \ - libx11-xcb1 \ - libxcb-dri2-0 \ - libxcb-dri3-0 \ - libxcb-present0 \ - libxcb-randr0 \ - libxcb-shape0 \ - libxcb-shm0 \ - libxcb-sync1 \ - libxcb-xfixes0 \ - libxcb1 \ - libxext6 \ - libxfixes3 \ - libxshmfence1 \ - libxml2 \ - ocl-icd-libopencl1 \ - wget && \ - apt-get autoremove -y && \ - apt-get clean -y - -RUN apt-get update && \ - apt-get install -y libicu-dev tzdata fontconfig fonts-noto-core fonts-noto-cjk libgdiplus && \ - rm -rf /var/lib/apt/lists/* /var/tmp/* - -CMD ["--help"] -ENTRYPOINT ["ffmpeg"] diff --git a/vaapi.Dockerfile b/vaapi.Dockerfile deleted file mode 100644 index 5d7e439..0000000 --- a/vaapi.Dockerfile +++ /dev/null @@ -1,610 +0,0 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS devel-base - -ENV DEBIAN_FRONTEND="noninteractive" -ENV MAKEFLAGS="-j4" - -ARG LIBVA=2.22.0 -ENV AOM=v3.12.0 \ - FDKAAC=2.0.3 \ - FFMPEG_HARD=7.1.1 \ - FONTCONFIG=2.16.0 \ - FREETYPE=2.13.3 \ - FRIBIDI=1.0.16 \ - GMMLIB=22.3.20 \ - IHD=24.2.5 \ - KVAZAAR=2.3.1 \ - LAME=3.100 \ - LIBASS=0.17.3 \ - LIBDAV1D=1.5.1 \ - LIBDRM=2.4.124 \ - LIBSRT=1.5.4 \ - LIBVA=$LIBVA \ - LIBVDPAU=1.5 \ - LIBVIDSTAB=1.1.1 \ - LIBWEBP=1.5.0 \ - OGG=1.3.5 \ - OPENCOREAMR=0.1.6 \ - OPENJPEG=2.5.3 \ - OPUS=1.5.2 \ - THEORA=1.1.1 \ - VORBIS=1.3.7 \ - VPX=1.15.0 \ - X265=4.1 \ - XVID=1.3.7 \ - ZIMG=3.0.5 - -RUN apt-get -yqq update && \ - apt-get install -y gpg-agent wget && \ - wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \ - gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu noble unified" | \ - tee /etc/apt/sources.list.d/intel.gpu.noble.list && \ - apt-get -yqq update && \ - apt-get install -yq \ - libmfx-dev \ - libegl1-mesa-dev \ - libgl1-mesa-dev \ - libgles2-mesa-dev \ - libigc-dev \ - intel-igc-cm \ - libigdfcl-dev \ - libigfxcmrt-dev \ - level-zero-dev \ - libvpl-dev && \ - apt-get -yq --no-install-recommends install -y \ - autoconf \ - automake \ - bzip2 \ - ca-certificates \ - cmake \ - curl \ - diffutils \ - doxygen \ - expat \ - g++ \ - gcc \ - git \ - gperf \ - libexpat1-dev \ - libxext-dev \ - libgcc-9-dev \ - libgomp1 \ - libharfbuzz-dev \ - libpciaccess-dev \ - libssl-dev \ - libtool \ - libv4l-dev \ - libx11-dev \ - libxcb-shape0-dev \ - libxml2-dev \ - make \ - meson \ - nasm \ - ninja-build \ - ocl-icd-opencl-dev \ - patch \ - perl \ - pkg-config \ - python3 \ - python3-pip\ - python3-setuptools \ - python3-wheel \ - x11proto-xext-dev \ - xserver-xorg-dev \ - xz-utils \ - yasm \ - zlib1g-dev && \ - apt-get autoremove -y && \ - apt-get clean -y - -# aom -RUN mkdir -p /tmp/aom && \ - git clone \ - --branch ${AOM} \ - --depth 1 https://aomedia.googlesource.com/aom \ - /tmp/aom -RUN cd /tmp/aom && \ - rm -rf \ - CMakeCache.txt \ - CMakeFiles && \ - mkdir -p \ - aom_build && \ - cd aom_build && \ - cmake \ - -DBUILD_STATIC_LIBS=0 .. && \ - make && \ - make install - -# dav1d -RUN mkdir -p /tmp/dav1d && \ - git clone \ - --branch ${LIBDAV1D} \ - --depth 1 https://github.com/videolan/dav1d.git \ - /tmp/dav1d -RUN mkdir /tmp/dav1d/build && cd /tmp/dav1d/build && \ - meson setup -Denable_tools=false -Denable_tests=false --libdir /usr/local/lib .. && \ - ninja && \ - ninja install - -# fdk-aac -RUN mkdir -p /tmp/fdk-aac && \ - curl -Lf \ - https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/fdk-aac -RUN cd /tmp/fdk-aac && \ - autoreconf -fiv && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# freetype -RUN mkdir -p /tmp/freetype && \ - curl -Lf \ - https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/freetype -RUN cd /tmp/freetype && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# fontconfig -RUN mkdir -p /tmp/fontconfig && \ - curl -Lf \ - https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.xz | \ - tar -Jx --strip-components=1 -C /tmp/fontconfig -RUN cd /tmp/fontconfig && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# fribidi -RUN mkdir -p /tmp/fribidi && \ - curl -Lf \ - https://github.com/fribidi/fribidi/archive/v${FRIBIDI}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/fribidi -RUN cd /tmp/fribidi && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make -j 1 && \ - make install - -# kvazaar -RUN mkdir -p /tmp/kvazaar && \ - curl -Lf \ - https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/kvazaar -RUN cd /tmp/kvazaar && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# lame -RUN mkdir -p /tmp/lame && \ - curl -Lf \ - http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/lame -RUN cd /tmp/lame && \ - cp \ - /usr/share/automake-1.16/config.guess \ - config.guess && \ - cp \ - /usr/share/automake-1.16/config.sub \ - config.sub && \ - ./configure \ - --disable-frontend \ - --disable-static \ - --enable-nasm \ - --enable-shared && \ - make && \ - make install - -# libass -RUN mkdir -p /tmp/libass && \ - curl -Lf \ - https://github.com/libass/libass/archive/${LIBASS}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libass -RUN cd /tmp/libass && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# libdrm -RUN mkdir -p /tmp/libdrm && \ - curl -Lf \ - https://dri.freedesktop.org/libdrm/libdrm-${LIBDRM}.tar.xz | \ - tar -Jx --strip-components=1 -C /tmp/libdrm -RUN cd /tmp/libdrm && \ - meson setup \ - --prefix=/usr --libdir=/usr/local/lib/x86_64-linux-gnu \ - -Dvalgrind=disabled \ - . build && \ - ninja -C build && \ - ninja -C build install && \ - strip -d /usr/local/lib/x86_64-linux-gnu/libdrm*.so - -# libsrt -RUN mkdir -p /tmp/libsrt && \ - curl -Lf \ - https://github.com/Haivision/srt/archive/v${LIBSRT}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libsrt -RUN cd /tmp/libsrt && \ - cmake . && \ - make && \ - make install - -# libva -RUN mkdir -p /tmp/libva && \ - git clone \ - --branch master \ - --depth 1 https://github.com/intel/libva.git \ - /tmp/libva - #curl -Lf \ - #https://github.com/intel/libva/archive/${LIBVA}.tar.gz | \ - #tar -zx --strip-components=1 -C /tmp/libva -RUN cd /tmp/libva && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# libvdpau -RUN mkdir -p /tmp/libvdpau && \ - git clone \ - --branch ${LIBVDPAU} \ - --depth 1 https://gitlab.freedesktop.org/vdpau/libvdpau.git \ - /tmp/libvdpau -RUN cd /tmp/libvdpau && \ - meson setup \ - --prefix=/usr --libdir=/usr/local/lib \ - -Ddocumentation=false build && \ - ninja -C build install - -# gmm -RUN mkdir -p /tmp/gmmlib && \ - curl -Lf \ - https://github.com/intel/gmmlib/archive/refs/tags/intel-gmmlib-${GMMLIB}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/gmmlib -RUN mkdir -p /tmp/gmmlib/build && \ - cd /tmp/gmmlib/build && \ - cmake \ - -DCMAKE_BUILD_TYPE=Release \ - .. && \ - make && \ - make install && \ - strip -d /usr/local/lib/libigdgmm.so - -# iHD -RUN mkdir -p /tmp/ihd && \ - curl -Lf \ - https://github.com/intel/media-driver/archive/refs/tags/intel-media-${IHD}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/ihd -RUN mkdir -p /tmp/ihd/build && \ - cd /tmp/ihd/build && \ - cmake \ - -DLIBVA_DRIVERS_PATH=/usr/local/lib/x86_64-linux-gnu/dri/ \ - .. && \ - make && \ - make install && \ - strip -d /usr/local/lib/x86_64-linux-gnu/dri/iHD_drv_video.so - -# libwebp -RUN mkdir -p /tmp/libwebp && \ - curl -Lf \ - https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${LIBWEBP}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/libwebp -RUN cd /tmp/libwebp && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# ogg -RUN mkdir -p /tmp/ogg && \ - curl -Lf \ - http://downloads.xiph.org/releases/ogg/libogg-${OGG}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/ogg -RUN cd /tmp/ogg && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# opencore-amr -RUN mkdir -p /tmp/opencore-amr && \ - curl -Lf \ - http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/opencore-amr -RUN cd /tmp/opencore-amr && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# openjpeg -RUN mkdir -p /tmp/openjpeg && \ - curl -Lf \ - https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/openjpeg -RUN cd /tmp/openjpeg && \ - rm -Rf \ - thirdparty/libpng/* && \ - curl -Lf \ - https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz | \ - tar -zx --strip-components=1 -C thirdparty/libpng/ && \ - cmake \ - -DBUILD_STATIC_LIBS=0 \ - -DBUILD_THIRDPARTY:BOOL=ON . && \ - make && \ - make install - -# opus -RUN mkdir -p /tmp/opus && \ - curl -Lf \ - https://downloads.xiph.org/releases/opus/opus-${OPUS}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/opus -RUN cd /tmp/opus && \ - autoreconf -fiv && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# theora -RUN mkdir -p /tmp/theora && \ - curl -Lf \ - http://downloads.xiph.org/releases/theora/libtheora-${THEORA}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/theora -RUN cd /tmp/theora && \ - cp \ - /usr/share/automake-1.16/config.guess \ - config.guess && \ - cp \ - /usr/share/automake-1.16/config.sub \ - config.sub && \ - curl -fL \ - 'https://gitlab.xiph.org/xiph/theora/-/commit/7288b539c52e99168488dc3a343845c9365617c8.diff' \ - > png.patch && \ - patch ./examples/png2theora.c < png.patch && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# vid.stab -RUN mkdir -p /tmp/vid.stab && \ - curl -Lf \ - https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/vid.stab -RUN cd /tmp/vid.stab && \ - cmake \ - -DBUILD_STATIC_LIBS=0 . && \ - make && \ - make install - -# vorbis -RUN mkdir -p /tmp/vorbis && \ - curl -Lf \ - http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/vorbis -RUN cd /tmp/vorbis && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# vpx -RUN mkdir -p /tmp/vpx && \ - curl -Lf \ - https://github.com/webmproject/libvpx/archive/v${VPX}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/vpx -RUN cd /tmp/vpx && \ - ./configure \ - --disable-debug \ - --disable-docs \ - --disable-examples \ - --disable-install-bins \ - --disable-static \ - --disable-unit-tests \ - --enable-pic \ - --enable-shared \ - --enable-vp8 \ - --enable-vp9 \ - --enable-vp9-highbitdepth && \ - make && \ - make install - -# x264 -RUN mkdir -p /tmp/x264 && \ - git clone --branch stable --depth 1 https://github.com/mirror/x264 /tmp/x264 -RUN cd /tmp/x264 && \ - ./configure \ - --disable-cli \ - --disable-static \ - --enable-pic \ - --enable-shared && \ - make && \ - make install - -# x265 -RUN mkdir -p /tmp/x265 && \ - curl -Lf \ - https://bitbucket.org/multicoreware/x265_git/downloads/x265_${X265}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/x265 -RUN cd /tmp/x265/build/linux && \ - ./multilib.sh && \ - make -C 8bit install - -# xvid -RUN mkdir -p /tmp/xvid && \ - curl -Lf \ - https://downloads.xvid.com/downloads/xvidcore-${XVID}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/xvid -RUN cd /tmp/xvid/build/generic && \ - ./configure && \ - make && \ - make install - -# zimg -RUN mkdir -p /tmp/zimg && \ - git clone \ - --branch release-${ZIMG} --depth 1 \ - https://github.com/sekrit-twc/zimg.git \ - /tmp/zimg -RUN cd /tmp/zimg && \ - ./autogen.sh && \ - ./configure \ - --disable-static \ - --enable-shared && \ - make && \ - make install - -# ffmpeg -RUN if [ -z ${FFMPEG_VERSION+x} ]; then \ - FFMPEG=${FFMPEG_HARD}; \ - else \ - FFMPEG=${FFMPEG_VERSION}; \ - fi && \ - mkdir -p /tmp/ffmpeg && \ - echo "https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.bz2" && \ - curl -Lf \ - https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.bz2 | \ - tar -jx --strip-components=1 -C /tmp/ffmpeg - -RUN cd /tmp/ffmpeg && \ - ./configure \ - --disable-debug \ - --disable-doc \ - --disable-ffplay \ - --enable-ffprobe \ - --enable-fontconfig \ - --enable-gpl \ - --enable-libaom \ - --enable-libdav1d \ - --enable-libass \ - --enable-libfdk_aac \ - --enable-libfreetype \ - --enable-libkvazaar \ - --enable-libvpl \ - --enable-libmp3lame \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libopenjpeg \ - --enable-libopus \ - --enable-libsrt \ - --enable-libtheora \ - --enable-libv4l2 \ - --enable-libvidstab \ - --enable-libvorbis \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libxml2 \ - --enable-libx264 \ - --enable-libx265 \ - --enable-libxvid \ - --enable-libzimg \ - --enable-nonfree \ - --enable-opencl \ - --enable-openssl \ - --enable-small \ - --enable-stripping \ - --enable-vaapi \ - --enable-vdpau \ - --enable-version3 \ - --extra-libs=-ldl \ - --extra-libs=-lpthread && \ - make - -RUN ldconfig && \ - mkdir -p \ - /buildout/usr/local/bin \ - /buildout/usr/lib \ - /buildout/usr/local/lib/x86_64-linux-gnu/dri \ - /buildout/usr/local/lib/x86_64-linux-gnu/vdpau \ - /buildout/usr/share/libdrm && \ - cp \ - /tmp/ffmpeg/ffmpeg \ - /buildout/usr/local/bin && \ - cp \ - /tmp/ffmpeg/ffprobe \ - /buildout/usr/local/bin && \ - cp -a \ - /usr/local/lib/lib*so* \ - /buildout/usr/local/lib/ && \ - cp -a \ - /usr/local/lib/x86_64-linux-gnu/lib*so* \ - /buildout/usr/local/lib/x86_64-linux-gnu/ && \ - cp -a \ - /usr/local/lib/x86_64-linux-gnu/dri/*.so \ - /buildout/usr/local/lib/x86_64-linux-gnu/dri/ && \ - #cp -a \ - #/usr/local/lib/x86_64-linux-gnu/vdpau/*.so \ - #/buildout/usr/local/lib/x86_64-linux-gnu/vdpau/ && \ - cp -a \ - /usr/share/libdrm/amdgpu.ids \ - /buildout/usr/share/libdrm/ && \ - ldd /tmp/ffmpeg/ffmpeg \ - | awk '/local/ {print $3}' \ - | xargs -i cp -L {} /buildout/usr/lib/ - -FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS runtime-base - -ENV MAKEFLAGS="-j4" \ - LIBVA_DRIVERS_PATH="/usr/lib/x86_64-linux-gnu/dri" \ - LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu" \ - LIBVA_MESSAGING_LEVEL=0 \ - LIBVA_DISPLAY=drm - -RUN apt-get -yqq update && \ - apt-get install -yq --no-install-recommends ca-certificates expat libgomp1 libharfbuzz-bin libxcb-shape0 libv4l-0 \ - && apt autoremove -y \ - && rm -rf /var/lib/apt/lists/* - -COPY --from=devel-base /buildout/ / - -RUN apt-get -yqq update && \ - DEBIAN_FRONTEND="noninteractive" apt-get install -y gpg-agent wget && \ - wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \ - gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu noble unified" | \ - tee /etc/apt/sources.list.d/intel.gpu.noble.list && \ - apt-get -yqq update && \ - DEBIAN_FRONTEND="noninteractive" apt-get install -yq \ - tzdata \ - fontconfig \ - fonts-noto-core \ - fonts-noto-cjk \ - libgdiplus \ - intel-opencl-icd=24.26.30049.10-950~24.04 intel-level-zero-gpu level-zero libze1 \ - libmfxgen1 libvpl2 \ - libegl-mesa0 libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \ - libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \ - mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo \ - i965-va-driver-shaders \ - && apt autoremove -y \ - && rm -rf /tmp/intel \ - && rm -rf /var/lib/apt/lists/* - -CMD ["--help"] -ENTRYPOINT ["ffmpeg"]