Add ugv266, vvcenc, FDK-AAC encoders
This commit is contained in:
parent
67832e650b
commit
1463299b71
47
Dockerfile
47
Dockerfile
|
@ -18,16 +18,19 @@ 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 \
|
||||
autoconf automake libtool pkg-config meson make cmake yasm nasm gcc g++ clang ccache \
|
||||
libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libass-dev libfftw3-3 libfftw3-dev
|
||||
|
||||
autoconf automake libtool pkg-config meson make cmake yasm nasm gcc g++ clang llvm lld ccache \
|
||||
libnuma-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libavutil-dev libass-dev libfftw3-3 libfftw3-dev && \
|
||||
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 && \
|
||||
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 && \
|
||||
update-alternatives --install /usr/bin/link link /usr/bin/ld.lld 100
|
||||
|
||||
ENV CC=clang
|
||||
ENV CXX=clang++
|
||||
ENV CFLAGS "-O3 -march=native -flto"
|
||||
ENV LD=ld.lld
|
||||
ENV CFLAGS "-Ofast -march=native -flto"
|
||||
ENV CPPFLAGS "$CFLAGS"
|
||||
ENV CXXFLAGS "-O3 -march=native -flto"
|
||||
ENV LDFLAGS "-flto"
|
||||
ENV CXXFLAGS "-Ofast -march=native -flto"
|
||||
ENV LDFLAGS "-flto -fuse-ld=lld"
|
||||
|
||||
FROM build-base AS build-x265
|
||||
|
||||
|
@ -62,6 +65,24 @@ COPY docker/build/x264/build.sh /build.sh
|
|||
|
||||
RUN /build.sh master
|
||||
|
||||
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=v1.4.0
|
||||
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-aom
|
||||
|
||||
ARG AOM_TAG=v3.3.0
|
||||
|
@ -93,6 +114,15 @@ COPY docker/build/rav1e/build.sh /build.sh
|
|||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-fdk-aac
|
||||
|
||||
ARG FDKAAC_TAG=master
|
||||
ARG FDKAAC_REPO=https://github.com/mstorsjo/fdk-aac.git
|
||||
|
||||
COPY docker/build/fdk-aac/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-lsmash AS build-vapoursynth
|
||||
|
||||
ARG MAGICK_TAG=7.1.0-31
|
||||
|
@ -138,6 +168,11 @@ COPY --from=build-aom /usr/bin/aom* /usr/bin/
|
|||
COPY --from=build-svt-av1 /usr/bin/SvtAv1* /usr/bin/
|
||||
COPY --from=build-rav1e /usr/bin/rav1e /usr/bin/rav1e
|
||||
|
||||
COPY --from=build-uvg266 /usr/bin/uvg266 /usr/bin/uvg266
|
||||
COPY --from=build-vvenc /usr/bin/vvenc* /usr/bin/
|
||||
|
||||
COPY --from=build-fdk-aac /usr/bin/aac-enc /usr/bin/aac-enc
|
||||
|
||||
COPY --from=build-vapoursynth /usr/bin/vspipe /usr/bin/vspipe
|
||||
COPY --from=build-vapoursynth /usr/lib/python${PYTHON_VERSION}/site-packages/vapoursynth.* /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=build-vapoursynth /usr/lib/libvapoursynth* /usr/lib/
|
||||
|
|
|
@ -16,8 +16,11 @@ docker run -it --rm -v /path/to/mount/on/container:/mnt encoder
|
|||
| [x264 master](https://code.videolan.org/videolan/x264/-/tree/master) | H.264 Encoder | Can be accessed via `$ x264-dev` |
|
||||
| [x265 3.5](https://bitbucket.org/multicoreware/x265_git/src/3.5/) | H.265/HEVC Encoder | |
|
||||
| [aom v3.3.0](https://aomedia.googlesource.com/aom/+/refs/tags/v3.3.0/) | AV1 Encoder/Decoder | Can be accessed via `$ aomenc` or `$ aomdec` |
|
||||
| [SVT-AV1 v1.0.0](https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases/v1.0.0) | AV1 Encoder/Decoder | Can be accessed via `$ SvtAv1Enc` or `$ SvtAv1Dec` |
|
||||
| [SVT-AV1 v1.0.0](https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases/v1.0.0) | AV1 Encoder/Decoder | Can be accessed via `$ SvtAv1EncApp` or `$ SvtAv1DecApp` |
|
||||
| [rav1e p20220426](https://github.com/xiph/rav1e/tree/p20220426) | AV1 Encoder | Can be accessed via `$ rav1e` |
|
||||
| [uvg266 v0.2.3](https://github.com/ultravideo/uvg266/tree/v0.2.3) | H.266/VVC Encoder | Can be accessed via `$ uvg266` |
|
||||
| [vvenc v1.4.0](https://github.com/fraunhoferhhi/vvenc/tree/v1.4.0) | H.266/VVC Encoder | Fraunhofer Versatile Video Encoder (VVenC). Can be accessed via `$ vvencapp` or `$ vvencFFapp` |
|
||||
| [FDK-AAC master](https://github.com/mstorsjo/fdk-aac) | AAC-LC/HE/HEv2 Encoder | Fraunhofer FDK AAC code from Android. Can be accessed via `$ aac-enc` |
|
||||
| [VapourSynth R54](https://github.com/vapoursynth/vapoursynth/tree/R54) | Processing | Can be accessed via `$ vspipe` |
|
||||
| [L-SMASH-Works](https://github.com/VFR-maniac/L-SMASH-Works) | VapourSynth Plugin | |
|
||||
| [d2vsource v1.2](https://github.com/dwbuiten/d2vsource/tree/v1.2) | VapourSynth Plugin | D2V parser and decoder for VapourSynth |
|
||||
|
|
11
docker/build/fdk-aac/build.sh
Executable file
11
docker/build/fdk-aac/build.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${FDKAAC_TAG}" --depth 1 "${FDKAAC_REPO}" /src/fdk-aac
|
||||
pushd /src/fdk-aac
|
||||
mkdir b
|
||||
pushd b
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_PROGRAMS=ON -DBUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc)
|
||||
make install
|
11
docker/build/uvg266/build.sh
Executable file
11
docker/build/uvg266/build.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${UVG266_TAG}" --depth 1 --recursive "${UVG266_REPO}" /src/uvg266
|
||||
pushd /src/uvg266
|
||||
mkdir b
|
||||
pushd b
|
||||
cmake .. -DGIT_SUBMODULE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc)
|
||||
make install
|
13
docker/build/vvenc/build.sh
Executable file
13
docker/build/vvenc/build.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${VVENC_TAG}" --depth 1 "${VVENC_REPO}" /src/vvenc
|
||||
pushd /src/vvenc
|
||||
#TODO: remove this once new version is released
|
||||
curl https://github.com/fraunhoferhhi/vvenc/commit/4137dfe29005c480154aa7287d92ce9dc8146617.diff | git apply
|
||||
mkdir b
|
||||
pushd b
|
||||
cmake .. -DVVENC_ENABLE_X86_SIMD=ON -DBUILD_SHARED_LIBS=OFF -DVVENC_ENABLE_LINK_TIME_OPT=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc)
|
||||
make install
|
|
@ -4,7 +4,7 @@ set -o pipefail
|
|||
|
||||
git clone --branch "${1}" --depth 1 "${X264_REPO}" /src/x264
|
||||
pushd /src/x264
|
||||
CC=gcc CXX=g++ CFLAGS="-O3 -march=native" CPPFLAGS="-O3 -march=native" CXXFLAGS="-O3 -march=native" LDFLAGS="" \
|
||||
./configure --enable-shared --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --prefix=/usr
|
||||
CC=gcc CXX=g++ CFLAGS="-Ofast -march=native" CPPFLAGS="-Ofast -march=native" CXXFLAGS="-Ofast -march=native" LDFLAGS="" \
|
||||
./configure --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
Loading…
Reference in a new issue