Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
DataHoarder | 4398c0c979 |
152
Dockerfile
152
Dockerfile
|
@ -2,10 +2,12 @@ FROM debian:bullseye AS dep-base
|
|||
|
||||
ENV PYTHON_VERSION=3.9
|
||||
|
||||
#libavcodec58 libavformat58 libswscale5 libavresample4 libavutil56 libavfilter7 libavdevice58
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
|
||||
libpython${PYTHON_VERSION} python3-pip python3-numpy python3-opencv python3-tk git nscd curl xz-utils ca-certificates gpg gnupg \
|
||||
libavcodec58 libavformat58 libswscale5 libavresample4 libavutil56 libavfilter7 libavdevice58 libass9 \
|
||||
libpython${PYTHON_VERSION} python3-pip python3-numpy git nscd curl xz-utils ca-certificates gpg gnupg \
|
||||
libass9 \
|
||||
libnuma1 libatomic1 libfftw3-3 && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
pip3 install Cython
|
||||
|
@ -13,16 +15,19 @@ RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
|||
FROM dep-base AS build-base
|
||||
|
||||
COPY docker/clang.list /etc/apt/sources.list.d/clang.list
|
||||
|
||||
# libboost-all-dev
|
||||
# libflac-dev libogg-dev libvorbis-dev libdvdread-dev
|
||||
# xsltproc docbook-xsl doxygen
|
||||
#libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libavfilter-dev libavdevice-dev
|
||||
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
|
||||
DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
|
||||
python${PYTHON_VERSION}-dev \
|
||||
python3-setuptools python3-wheel \
|
||||
autoconf automake libtool pkg-config meson ninja-build make rake cmake yasm nasm gcc g++ clang llvm lld ccache jq \
|
||||
libflac-dev libogg-dev libvorbis-dev libboost-all-dev zlib1g-dev libdvdread-dev libgmp-dev xsltproc docbook-xsl doxygen \
|
||||
libxcb-xinerama0-dev \
|
||||
libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libavfilter-dev libavdevice-dev libass-dev libfftw3-3 libfftw3-dev && \
|
||||
zlib1g-dev libgmp-dev \
|
||||
libnuma-dev \
|
||||
libfftw3-dev && \
|
||||
update-alternatives --install /usr/bin/cc cc $(readlink -f /usr/bin/clang) 100 && \
|
||||
update-alternatives --install /usr/bin/c++ c++ $(readlink -f /usr/bin/clang++) 100 && \
|
||||
update-alternatives --install /usr/bin/link link $(readlink -f /usr/bin/ld.lld) 100
|
||||
|
@ -37,18 +42,6 @@ ENV LDFLAGS "-flto -fuse-ld=lld"
|
|||
|
||||
COPY docker/git-shallow-clone.sh /usr/bin/git-shallow-clone
|
||||
|
||||
|
||||
FROM build-base AS build-x265
|
||||
|
||||
ARG X265_TAG=3.5
|
||||
ARG X265_REPO=https://bitbucket.org/multicoreware/x265_git.git
|
||||
|
||||
COPY docker/build/x265/multilib.sh /multilib.sh
|
||||
COPY docker/build/x265/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
|
||||
FROM build-base AS build-lsmash
|
||||
|
||||
COPY docker/build/l-smash/build.sh /build-l-smash.sh
|
||||
|
@ -71,27 +64,18 @@ COPY docker/build/x264/build.sh /build.sh
|
|||
|
||||
RUN /build.sh master
|
||||
|
||||
FROM build-base AS build-uvg266
|
||||
FROM build-base AS build-libvpx
|
||||
|
||||
ARG UVG266_TAG=v0.2.3
|
||||
ARG UVG266_REPO=https://github.com/ultravideo/uvg266.git
|
||||
ARG VPX_TAG=v1.11.0
|
||||
ARG VPX_REPO=https://chromium.googlesource.com/webm/libvpx.git
|
||||
|
||||
COPY docker/build/uvg266/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-vvenc
|
||||
|
||||
ARG VVENC_TAG=a361f5931d3cbee07d9a7d557a7a59a92d9121f8
|
||||
ARG VVENC_REPO=https://github.com/fraunhoferhhi/vvenc.git
|
||||
|
||||
COPY docker/build/vvenc/build.sh /build.sh
|
||||
COPY docker/build/libvpx/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-aom
|
||||
|
||||
ARG AOM_TAG=v3.3.0
|
||||
ARG AOM_TAG=4dca33a3f7455e95d5449d9f5d01cc594ab27eeb
|
||||
ARG AOM_REPO=https://aomedia.googlesource.com/aom.git
|
||||
|
||||
ARG VMAF_TAG=v2.3.1
|
||||
|
@ -115,7 +99,7 @@ RUN /build.sh
|
|||
|
||||
FROM build-base AS build-svt-av1
|
||||
|
||||
ARG SVT_TAG=v1.0.0
|
||||
ARG SVT_TAG=v1.1.0
|
||||
ARG SVT_REPO=https://gitlab.com/AOMediaCodec/SVT-AV1.git
|
||||
|
||||
COPY docker/build/svt-av1/build.sh /build.sh
|
||||
|
@ -131,6 +115,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
|||
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
|
||||
nasm jq
|
||||
|
||||
RUN cargo install cargo-c
|
||||
|
||||
COPY docker/git-shallow-clone.sh /usr/bin/git-shallow-clone
|
||||
COPY docker/build/rav1e/build.sh /build.sh
|
||||
|
||||
|
@ -145,6 +131,67 @@ COPY docker/build/fdk-aac/build.sh /build.sh
|
|||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-dav1d
|
||||
|
||||
ARG DAV1D_TAG=1.0.0
|
||||
ARG DAV1D_REPO=https://code.videolan.org/videolan/dav1d.git
|
||||
|
||||
COPY docker/build/dav1d/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-ffmpeg
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
|
||||
zlib1g-dev \
|
||||
libass-dev \
|
||||
libflac-dev \
|
||||
libopus-dev \
|
||||
libogg-dev \
|
||||
libvorbis-dev \
|
||||
libmp3lame-dev
|
||||
|
||||
ARG FFMPEG_TAG=n5.0.1
|
||||
ARG FFMPEG_REPO=https://git.ffmpeg.org/ffmpeg.git
|
||||
|
||||
COPY --from=build-x264-dev /usr/include/x264* /usr/include/
|
||||
COPY --from=build-x264-dev /usr/lib/pkgconfig/x264.pc /usr/lib/pkgconfig/
|
||||
COPY --from=build-x264-dev /usr/lib/libx264.a /usr/lib/
|
||||
|
||||
COPY --from=build-aom /usr/include/libvmaf /usr/include/libvmaf
|
||||
COPY --from=build-aom /usr/lib/pkgconfig/libvmaf.pc /usr/lib/pkgconfig/
|
||||
COPY --from=build-aom /usr/lib/libvmaf.* /usr/lib/
|
||||
|
||||
COPY --from=build-aom /usr/include/aom /usr/include/aom
|
||||
COPY --from=build-aom /usr/lib/x86_64-linux-gnu/pkgconfig/aom.pc /usr/lib/x86_64-linux-gnu/pkgconfig/
|
||||
COPY --from=build-aom /usr/lib/x86_64-linux-gnu/libaom.a /usr/lib/x86_64-linux-gnu/
|
||||
|
||||
COPY --from=build-dav1d /usr/include/dav1d /usr/include/dav1d
|
||||
COPY --from=build-dav1d /usr/lib/pkgconfig/dav1d.pc /usr/lib/pkgconfig/
|
||||
COPY --from=build-dav1d /usr/lib/libdav1d.a /usr/lib/
|
||||
|
||||
COPY --from=build-rav1e /usr/include/rav1e /usr/include/rav1e
|
||||
COPY --from=build-rav1e /usr/lib/pkgconfig/rav1e.pc /usr/lib/pkgconfig/
|
||||
COPY --from=build-rav1e /usr/lib/librav1e.* /usr/lib/
|
||||
|
||||
COPY --from=build-svt-av1 /usr/include/svt-av1 /usr/include/svt-av1
|
||||
COPY --from=build-svt-av1 /usr/lib/x86_64-linux-gnu/pkgconfig/SvtAv1* /usr/lib/x86_64-linux-gnu/pkgconfig/
|
||||
COPY --from=build-svt-av1 /usr/lib/x86_64-linux-gnu/libSvtAv1* /usr/lib/x86_64-linux-gnu/
|
||||
|
||||
COPY --from=build-libvpx /usr/include/vpx /usr/include/vpx
|
||||
COPY --from=build-libvpx /usr/lib/pkgconfig/vpx.pc /usr/lib/pkgconfig/
|
||||
COPY --from=build-libvpx /usr/lib/libvpx.a /usr/lib/
|
||||
|
||||
COPY --from=build-fdk-aac /usr/include/fdk-aac /usr/include/fdk-aac
|
||||
COPY --from=build-fdk-aac /usr/lib/x86_64-linux-gnu/pkgconfig/fdk-aac.pc /usr/lib/x86_64-linux-gnu/pkgconfig/
|
||||
COPY --from=build-fdk-aac /usr/lib/x86_64-linux-gnu/libfdk-aac.a /usr/lib/x86_64-linux-gnu/
|
||||
|
||||
|
||||
COPY docker/build/ffmpeg/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-lsmash AS build-vapoursynth
|
||||
|
||||
ARG MAGICK_TAG=7.1.0-31
|
||||
|
@ -172,7 +219,8 @@ RUN echo "deb-src http://deb.debian.org/debian bullseye main" > /etc/apt/sources
|
|||
echo "deb-src http://security.debian.org/debian-security bullseye-security main" >> /etc/apt/sources.list.d/src.list && \
|
||||
echo "deb-src http://deb.debian.org/debian bullseye-updates main" >> /etc/apt/sources.list.d/src.list && \
|
||||
DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt build-dep -y qtbase-opensource-src
|
||||
DEBIAN_FRONTEND=noninteractive apt build-dep -y qtbase-opensource-src \
|
||||
libxcb-xinerama0-dev
|
||||
|
||||
ARG MKVTOOLNIX_TAG=release-67.0.0
|
||||
ARG MKVTOOLNIX_REPO=https://gitlab.com/mbunkus/mkvtoolnix.git
|
||||
|
@ -201,6 +249,24 @@ COPY docker/build/av1an/build.sh /build-av1an.sh
|
|||
RUN /build-vmaf.sh
|
||||
RUN /build-av1an.sh
|
||||
|
||||
FROM build-base AS build-uvg266
|
||||
|
||||
ARG UVG266_TAG=v0.2.3
|
||||
ARG UVG266_REPO=https://github.com/ultravideo/uvg266.git
|
||||
|
||||
COPY docker/build/uvg266/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-vvenc
|
||||
|
||||
ARG VVENC_TAG=a361f5931d3cbee07d9a7d557a7a59a92d9121f8
|
||||
ARG VVENC_REPO=https://github.com/fraunhoferhhi/vvenc.git
|
||||
|
||||
COPY docker/build/vvenc/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-xeve
|
||||
|
||||
ARG XEVE_TAG=v0.3.4
|
||||
|
@ -219,6 +285,16 @@ COPY docker/build/xeve/build.sh /build.sh
|
|||
|
||||
RUN /build.sh MAIN
|
||||
|
||||
FROM build-base AS build-x265
|
||||
|
||||
ARG X265_TAG=3.5
|
||||
ARG X265_REPO=https://bitbucket.org/multicoreware/x265_git.git
|
||||
|
||||
COPY docker/build/x265/multilib.sh /multilib.sh
|
||||
COPY docker/build/x265/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-mediainfo
|
||||
|
||||
ARG MEDIAINFO_TAG=v22.03
|
||||
|
@ -232,14 +308,6 @@ FROM dep-base
|
|||
|
||||
RUN pip3 install git+https://github.com/FichteFoll/Sushi.git@master
|
||||
|
||||
RUN curl "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$(dpkg --print-architecture)-static.tar.xz" > /tmp/ffmpeg.tar.xz && \
|
||||
cd /tmp && tar -xJf /tmp/ffmpeg.tar.xz && cd ffmpeg-* && \
|
||||
cp -r model /usr/local/share/ && \
|
||||
cp ./ffprobe /usr/bin/ && \
|
||||
cp ./ffmpeg /usr/bin/ && \
|
||||
cp ./qt-faststart /usr/bin/ && \
|
||||
cd / && rm -r /tmp/ffmpeg*
|
||||
|
||||
|
||||
ENV PYTHONPATH "/usr/lib/python${PYTHON_VERSION}/site-packages:/usr/lib/vapoursynth:$PYTHONPATH"
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release -DBU
|
|||
-DCONFIG_RT_ML_PARTITIONING=1 \
|
||||
-DCONFIG_THREE_PASS=1 \
|
||||
-DCONFIG_AV1_ENCODER=1 \
|
||||
-DCONFIG_AV1_DECODER=1 \
|
||||
&& \
|
||||
-DCONFIG_AV1_DECODER=1
|
||||
|
||||
make -j$(nproc)
|
||||
make install
|
9
docker/build/dav1d/build.sh
Executable file
9
docker/build/dav1d/build.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git-shallow-clone "${DAV1D_TAG}" "${DAV1D_REPO}" /src/dav1d
|
||||
pushd /src/dav1d
|
||||
meson setup build . --prefix /usr --buildtype release --default-library=static
|
||||
ninja -vC build
|
||||
ninja -vC build install
|
34
docker/build/ffmpeg/build.sh
Executable file
34
docker/build/ffmpeg/build.sh
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git-shallow-clone "${FFMPEG_TAG}" "${FFMPEG_REPO}" /src/ffmpeg
|
||||
pushd /src/ffmpeg
|
||||
exit 0
|
||||
./configure --prefix=/usr \
|
||||
--enable-lto \
|
||||
--enable-pic \
|
||||
--cc=clang \
|
||||
--cxx=clang++ \
|
||||
--ar=llvm-ar \
|
||||
--ranlib=llvm-ranlib \
|
||||
--enable-gpl \
|
||||
--enable-nonfree \
|
||||
--enable-gray \
|
||||
--disable-ffplay \
|
||||
--disable-doc \
|
||||
--enable-libaom \
|
||||
--enable-libass \
|
||||
--enable-libdav1d \
|
||||
--enable-libfdk-aac \
|
||||
--enable-libmp3lame \
|
||||
--enable-libopus \
|
||||
--enable-librav1e \
|
||||
--enable-libsvtav1 \
|
||||
--enable-libvmaf \
|
||||
--enable-libvorbis \
|
||||
--enable-libvpx \
|
||||
--enable-libx264
|
||||
|
||||
make -j$(nproc)
|
||||
make install
|
23
docker/build/libvpx/build.sh
Executable file
23
docker/build/libvpx/build.sh
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git-shallow-clone "${VPX_TAG}" "${VPX_REPO}" /src/libvpx
|
||||
pushd /src/libvpx
|
||||
./configure --prefix=/usr \
|
||||
--enable-pic \
|
||||
--enable-ccache \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--disable-examples \
|
||||
--disable-docs \
|
||||
--disable-tools \
|
||||
--enable-vp9-highbitdepth \
|
||||
--enable-vp8 \
|
||||
--enable-vp9 \
|
||||
--enable-postproc \
|
||||
--enable-vp9-postproc \
|
||||
--enable-multi-res-encoding \
|
||||
--enable-vp9-temporal-denoising
|
||||
make -j$(nproc)
|
||||
make install
|
|
@ -6,4 +6,6 @@ git-shallow-clone "${RAV1E_TAG}" "${RAV1E_REPO}" /src/rav1e
|
|||
pushd /src/rav1e
|
||||
RUSTFLAGS="-C target-cpu=native" cargo build --release --features unstable,asm,threading
|
||||
|
||||
cp "$(cargo metadata --format-version 1 | jq -r '.target_directory')/release/rav1e" /usr/bin/rav1e
|
||||
cp "$(cargo metadata --format-version 1 | jq -r '.target_directory')/release/rav1e" /usr/bin/rav1e
|
||||
|
||||
cargo cinstall --release --prefix=/usr --features unstable,asm,threading
|
|
@ -4,7 +4,16 @@ set -o pipefail
|
|||
|
||||
git-shallow-clone "${1}" "${X264_REPO}" /src/x264
|
||||
pushd /src/x264
|
||||
CC=gcc CXX=g++ CFLAGS="-Ofast -march=native" CPPFLAGS="-Ofast -march=native" CXXFLAGS="-Ofast -march=native" LDFLAGS="" \
|
||||
./configure --disable-ffms --disable-lavf --disable-swscale --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --disable-opencl --prefix=/usr
|
||||
CFLAGS="-Ofast -march=native" CPPFLAGS="-Ofast -march=native" CXXFLAGS="-Ofast -march=native" LDFLAGS="" \
|
||||
./configure \
|
||||
--disable-ffms \
|
||||
--disable-lavf \
|
||||
--disable-swscale \
|
||||
--enable-static \
|
||||
--bit-depth=all \
|
||||
--chroma-format=all \
|
||||
--enable-pic \
|
||||
--disable-opencl \
|
||||
--prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
Loading…
Reference in a new issue