Reorganized Dockefile into multi-stage build
This commit is contained in:
parent
99efe345d1
commit
98e327e682
277
Dockerfile
277
Dockerfile
|
@ -1,40 +1,27 @@
|
|||
FROM debian:bullseye
|
||||
FROM debian:bullseye AS dep-base
|
||||
|
||||
COPY docker/x265-multilib.sh /x265-multilib.sh
|
||||
ENV PYTHON_VERSION=3.9
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y ca-certificates gpg curl
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
|
||||
libpython${PYTHON_VERSION} python3-pip python3-numpy python3-opencv git nscd curl xz-utils ca-certificates gpg gnupg \
|
||||
pkg-config \
|
||||
libnuma1 libavcodec58 libavformat58 libswscale5 libavresample4 libavutil56 libass9 libfftw3-3 && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
pip3 install Cython
|
||||
|
||||
FROM dep-base AS build-base
|
||||
|
||||
COPY docker/clang.list /etc/apt/sources.list.d/clang.list
|
||||
|
||||
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
|
||||
DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
python3-pip python3-numpy python3-opencv python3-dev git nscd \
|
||||
autoconf automake libtool pkg-config meson 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 && \
|
||||
pip3 install Cython && \
|
||||
pip3 install git+https://github.com/FichteFoll/Sushi.git@master
|
||||
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
|
||||
|
||||
|
||||
ARG ZIMG_TAG=release-3.0.4
|
||||
|
||||
ARG VS_TAG=R54
|
||||
|
||||
ARG X264_TAG=stable
|
||||
ARG X264_REPO=https://code.videolan.org/videolan/x264.git
|
||||
|
||||
ARG X265_TAG=3.5
|
||||
ARG X265_REPO=https://bitbucket.org/multicoreware/x265_git.git
|
||||
|
||||
ARG AOM_TAG=v3.3.0
|
||||
ARG AOM_REPO=https://aomedia.googlesource.com/aom.git
|
||||
|
||||
ARG SVT_TAG=v1.0.0
|
||||
ARG SVT_REPO=https://gitlab.com/AOMediaCodec/SVT-AV1.git
|
||||
|
||||
ARG MAGICK_TAG=7.1.0-31
|
||||
|
||||
ENV CC=clang
|
||||
ENV CXX=clang++
|
||||
ENV CFLAGS "-O3 -march=native -flto"
|
||||
|
@ -42,166 +29,110 @@ ENV CPPFLAGS "$CFLAGS"
|
|||
ENV CXXFLAGS "-O3 -march=native -flto"
|
||||
ENV LDFLAGS "-flto"
|
||||
|
||||
RUN git clone --branch "master" --depth 1 https://github.com/l-smash/l-smash /src/l-smash && cd /src/l-smash && \
|
||||
CFLAGS="-fPIC" ./configure --enable-shared --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/l-smash
|
||||
FROM build-base AS build-x265
|
||||
|
||||
RUN git clone --branch "${X264_TAG}" --depth 1 "${X264_REPO}" /src/x264 && cd /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 && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/x264
|
||||
ARG X265_TAG=3.5
|
||||
ARG X265_REPO=https://bitbucket.org/multicoreware/x265_git.git
|
||||
|
||||
RUN git clone --branch "${AOM_TAG}" --depth 1 "${AOM_REPO}" /src/aom && cd /src/aom && \
|
||||
sed -i 's/MAX_NUM_THREADS 64/MAX_NUM_THREADS 128/' aom_util/aom_thread.h && \
|
||||
mkdir b && cd b && \
|
||||
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DENABLE_CCACHE=ON -DCMAKE_BUILD_TYPE=Release -DCONFIG_AV1_ENCODER=1 -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=ON -DBUILD_SHARED_LIBS=ON -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/aom
|
||||
COPY docker/build/x265/multilib.sh /multilib.sh
|
||||
COPY docker/build/x265/build.sh /build.sh
|
||||
|
||||
RUN git clone --branch "${SVT_TAG}" --depth 1 "${SVT_REPO}" /src/svt-av1 && cd /src/svt-av1 && \
|
||||
mkdir b && cd b && \
|
||||
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DSVT_AV1_LTO=ON -DNATIVE=ON -DENABLE_AVX512=ON -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/svt-av1
|
||||
RUN /build.sh
|
||||
|
||||
RUN git clone --branch "${X265_TAG}" --depth 1 "${X265_REPO}" /src/x265 && cd /src/x265 && \
|
||||
cd build/linux && \
|
||||
MAKEFLAGS=-j$(nproc) /x265-multilib.sh && \
|
||||
cp 8bit/x265 /usr/bin/x265 && \
|
||||
cd / && rm -r /src/x265 /x265-multilib.sh
|
||||
|
||||
RUN git clone --branch "${ZIMG_TAG}" --depth 1 https://github.com/sekrit-twc/zimg.git /src/zimg && cd /src/zimg && \
|
||||
./autogen.sh && \
|
||||
./configure --enable-example --enable-simd --enable-shared --enable-static --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/zimg
|
||||
FROM build-base AS build-x264
|
||||
|
||||
RUN curl "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-$(dpkg --print-architecture)-static.tar.xz" > /src/ffmpeg.tar.xz && \
|
||||
cd /src && tar -xJf /src/ffmpeg.tar.xz && cd ffmpeg-* && \
|
||||
|
||||
ARG X264_TAG=stable
|
||||
ARG X264_REPO=https://code.videolan.org/videolan/x264.git
|
||||
|
||||
COPY docker/build/x264/build.sh /build.sh
|
||||
COPY docker/build/l-smash/build.sh /build-l-smash.sh
|
||||
|
||||
RUN /build-l-smash.sh && /build.sh
|
||||
|
||||
FROM build-base AS build-aom
|
||||
|
||||
ARG AOM_TAG=v3.3.0
|
||||
ARG AOM_REPO=https://aomedia.googlesource.com/aom.git
|
||||
|
||||
COPY docker/build/aom/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-svt-av1
|
||||
|
||||
ARG SVT_TAG=v1.0.0
|
||||
ARG SVT_REPO=https://gitlab.com/AOMediaCodec/SVT-AV1.git
|
||||
|
||||
COPY docker/build/svt-av1/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM rust:1.60-bullseye AS build-rav1e
|
||||
|
||||
ARG RAV1E_TAG=p20220426
|
||||
ARG RAV1E_REPO=https://github.com/xiph/rav1e.git
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
|
||||
nasm jq
|
||||
|
||||
COPY docker/build/rav1e/build.sh /build.sh
|
||||
|
||||
RUN /build.sh
|
||||
|
||||
FROM build-base AS build-vapoursynth
|
||||
|
||||
ARG MAGICK_TAG=7.1.0-31
|
||||
ARG ZIMG_TAG=release-3.0.4
|
||||
ARG VS_TAG=R54
|
||||
|
||||
COPY docker/build/magick/build.sh /build-magick.sh
|
||||
COPY docker/build/zimg/build.sh /build-zimg.sh
|
||||
COPY docker/build/l-smash/build.sh /build-l-smash.sh
|
||||
COPY docker/build/vapoursynth/build.sh /build-vapoursynth.sh
|
||||
COPY docker/build/vapoursynth-plugins/build.sh /build-vapoursynth-plugins.sh
|
||||
|
||||
|
||||
RUN /build-zimg.sh && \
|
||||
/build-magick.sh && \
|
||||
/build-l-smash.sh && \
|
||||
/build-vapoursynth.sh
|
||||
|
||||
ENV PYTHONPATH "/usr/lib/python${PYTHON_VERSION}/site-packages:/usr/lib/vapoursynth:$PYTHONPATH"
|
||||
|
||||
RUN /build-vapoursynth-plugins.sh
|
||||
|
||||
|
||||
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 /src/ffmpeg*
|
||||
|
||||
RUN git clone --branch "${MAGICK_TAG}" --depth 1 https://github.com/ImageMagick/ImageMagick /src/imagemagick && cd /src/imagemagick && \
|
||||
./configure --with-magick-plus-plus --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/imagemagick
|
||||
|
||||
RUN git clone --branch "${VS_TAG}" --depth 1 https://github.com/vapoursynth/vapoursynth /src/vapoursynth && cd /src/vapoursynth && \
|
||||
./autogen.sh && \
|
||||
mkdir /usr/lib/vapoursynth && \
|
||||
./configure --enable-plugins --disable-ocr --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/vapoursynth
|
||||
|
||||
ENV PYTHONPATH="/usr/lib/python3.9/site-packages:/usr/lib/vapoursynth:$PYTHONPATH"
|
||||
|
||||
RUN curl https://raw.githubusercontent.com/dubhater/vapoursynth-fieldhint/v3/src/fieldhint.c | gcc -x c -I /usr/include/vapoursynth \
|
||||
-shared -o /usr/lib/vapoursynth/fieldhint.so \
|
||||
-O3 -fPIC \
|
||||
-
|
||||
cd / && rm -r /tmp/ffmpeg*
|
||||
|
||||
|
||||
ENV PYTHONPATH "/usr/lib/python${PYTHON_VERSION}/site-packages:/usr/lib/vapoursynth:$PYTHONPATH"
|
||||
|
||||
RUN git clone --branch "master" --depth 1 https://github.com/VFR-maniac/L-SMASH-Works.git /src/L-SMASH-Works && cd /src/L-SMASH-Works && \
|
||||
cd VapourSynth && \
|
||||
./configure --vs-plugindir=/usr/lib/vapoursynth --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -r /src/L-SMASH-Works
|
||||
COPY --from=build-x265 /usr/bin/x265 /usr/bin/x265
|
||||
|
||||
RUN git clone --branch "v1.2" --depth 1 https://github.com/dwbuiten/d2vsource.git /src/d2vsource && cd /src/d2vsource && \
|
||||
./autogen.sh && \
|
||||
./configure --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
cp .libs/libd2vsource.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/d2vsource
|
||||
COPY --from=build-x264 /usr/bin/x264 /usr/bin/x264
|
||||
|
||||
RUN git clone --branch "r10.1" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod.git /src/VapourSynth-TDeintMod && cd /src/VapourSynth-TDeintMod && \
|
||||
./autogen.sh && \
|
||||
./configure && \
|
||||
make -j$(nproc) && \
|
||||
cp .libs/libtdeintmod.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/VapourSynth-TDeintMod
|
||||
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
|
||||
|
||||
RUN git clone --branch "r28" --depth 1 https://github.com/EleonoreMizo/fmtconv.git /src/fmtconv && cd /src/fmtconv && \
|
||||
cd build/unix && \
|
||||
./autogen.sh && \
|
||||
./configure --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
cp .libs/libfmtconv.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/fmtconv
|
||||
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/
|
||||
COPY --from=build-vapoursynth /usr/lib/vapoursynth /usr/lib/vapoursynth
|
||||
COPY --from=build-vapoursynth /usr/lib/libvs* /usr/lib/
|
||||
|
||||
RUN git clone --branch "v23" --depth 1 https://github.com/dubhater/vapoursynth-mvtools /src/vapoursynth-mvtools && cd /src/vapoursynth-mvtools && \
|
||||
./autogen.sh && \
|
||||
./configure --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
cp .libs/libmvtools.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/vapoursynth-mvtools
|
||||
|
||||
RUN git clone --branch "master" https://github.com/myrsloik/VapourSynth-FFT3DFilter /src/VapourSynth-FFT3DFilter && cd /src/VapourSynth-FFT3DFilter && git reset --hard 64323f0fdee4dd4fe429ee6287906dbae8e7571c && \
|
||||
mkdir b && cd b && \
|
||||
meson .. && \
|
||||
ninja && \
|
||||
cp libfft3dfilter.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/VapourSynth-FFT3DFilter
|
||||
|
||||
RUN git clone --branch "r2.1" --depth 1 --recursive https://github.com/sekrit-twc/znedi3 /src/znedi3 && cd /src/znedi3 && \
|
||||
make X86=1 -j$(nproc) && \
|
||||
cp vsznedi3.so /usr/lib/vapoursynth/ && \
|
||||
cp nnedi3_weights.bin /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/znedi3
|
||||
|
||||
RUN git clone --branch "r7" --depth 1 https://github.com/Irrational-Encoding-Wizardry/descale /src/descale && cd /src/descale && \
|
||||
mkdir b && cd b && \
|
||||
meson .. && \
|
||||
ninja && \
|
||||
cp libdescale.so /usr/lib/vapoursynth/ && \
|
||||
cp ../descale.py /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/descale
|
||||
|
||||
RUN git clone --branch "master" --depth 1 --recursive https://github.com/SAPikachu/flash3kyuu_deband.git /src/flash3kyuu_deband && cd /src/flash3kyuu_deband && \
|
||||
sed -i 's/env python/env python3/' ./waf && \
|
||||
./waf configure && \
|
||||
./waf build && \
|
||||
cp build/libf3kdb.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/flash3kyuu_deband
|
||||
|
||||
RUN git clone --branch "r9" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D.git /src/VapourSynth-BM3D && cd /src/VapourSynth-BM3D && \
|
||||
mkdir b && cd b && \
|
||||
LDFLAGS=-lfftw3f_threads meson .. && \
|
||||
ninja && \
|
||||
cp libbm3d.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/VapourSynth-BM3D
|
||||
|
||||
RUN git clone --branch "r7" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest.git /src/VapourSynth-DFTTest && cd /src/VapourSynth-DFTTest && \
|
||||
mkdir b && cd b && \
|
||||
LDFLAGS=-lfftw3f_threads meson .. && \
|
||||
ninja && \
|
||||
cp libdfttest.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/VapourSynth-DFTTest
|
||||
|
||||
RUN git clone --branch "r10.1" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod /src/VapourSynth-Yadifmod && cd /src/VapourSynth-Yadifmod && \
|
||||
./autogen.sh && \
|
||||
./configure --prefix=/usr && \
|
||||
make -j$(nproc) && \
|
||||
cp .libs/libyadifmod.so /usr/lib/vapoursynth/ && \
|
||||
cd / && rm -r /src/VapourSynth-Yadifmod
|
||||
|
||||
RUN curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/havsfunc/3b6a80ce502e6775c70df6bb2d19124de149073f/havsfunc.py > /usr/lib/vapoursynth/havsfunc.py && \
|
||||
curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/mvsfunc/90e185220901402b974d7364345e0f25e71ab8fe/mvsfunc.py > /usr/lib/vapoursynth/mvsfunc.py && \
|
||||
curl https://raw.githubusercontent.com/Irrational-Encoding-Wizardry/fvsfunc/29ced90a3f620844dea0efa8666542298f68f421/fvsfunc.py > /usr/lib/vapoursynth/fvsfunc.py && \
|
||||
curl https://raw.githubusercontent.com/WolframRhodium/muvsfunc/6158bf2af1cb85fd9ba44024c52ef3666a2834c1/muvsfunc.py > /usr/lib/vapoursynth/muvsfunc.py
|
||||
|
||||
|
||||
RUN sed -i 's/core.nnedi3/core.znedi3/' /usr/lib/vapoursynth/fvsfunc.py
|
||||
COPY --from=build-vapoursynth /usr/bin/magick /usr/bin/magick
|
||||
COPY --from=build-vapoursynth /usr/etc/ImageMagick-7 /usr/etc/ImageMagick-7
|
37
README.md
Normal file
37
README.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
A Dockerfile featuring several video encoding / processing / filtering utilities.
|
||||
|
||||
## Build and run
|
||||
```bash
|
||||
docker build -t encoder .
|
||||
docker run -it --rm -v /path/to/mount/on/container:/mnt encoder
|
||||
```
|
||||
|
||||
## Included tools
|
||||
|
||||
| Tool | Kind | Notes |
|
||||
| :-----------------------------------------: | :----------------------------------------------------------------------:| :--------------------------------------------------------------------------------------------------------: |
|
||||
| [ffmpeg](https://johnvansickle.com/ffmpeg/) | General | static build from git snapshot |
|
||||
| [Sushi](https://github.com/FichteFoll/Sushi) | Subtitle Syncing | Automatic shifter for SRT and ASS subtitle based on audio streams. |
|
||||
| [x264 stable](https://code.videolan.org/videolan/x264/-/tree/stable) | H.264 Encoder | x264, the best and fastest H.264 encoder |
|
||||
| [x264 master](https://code.videolan.org/videolan/x264/-/tree/master) | H.264 Encoder | Can be accessed via `$ x264_master` |
|
||||
| [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` |
|
||||
| [rav1e p20220426](https://github.com/xiph/rav1e/tree/p20220426) | AV1 Encoder | Can be accessed via `$ rav1e` |
|
||||
| [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 |
|
||||
| [VapourSynth-TDeintMod r10.1](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod/tree/r10.1) | VapourSynth Plugin | TDeint filter for VapourSynth |
|
||||
| [fmtconv r28](https://github.com/EleonoreMizo/fmtconv/tree/r28) | VapourSynth Plugin | Format conversion tools for Vapoursynth and Avisynth+ |
|
||||
| [vapoursynth-mvtools](https://github.com/dubhater/vapoursynth-mvtools/tree/v23) | VapourSynth Plugin | Motion compensation and stuff |
|
||||
| [VapourSynth-FFT3DFilter 64323f0](https://github.com/myrsloik/VapourSynth-FFT3DFilter/tree/64323f0fdee4dd4fe429ee6287906dbae8e7571c) | VapourSynth Plugin | VapourSynth port of FFT3DFilter |
|
||||
| [znedi3 r2.1](https://github.com/sekrit-twc/znedi3/tree/r2.1) | VapourSynth Plugin | nnedi3 filter |
|
||||
| [descale r7](https://github.com/Irrational-Encoding-Wizardry/descale/tree/r7) | VapourSynth Plugin | VapourSynth plugin to undo upscaling |
|
||||
| [flash3kyuu_deband](https://github.com/SAPikachu/flash3kyuu_deband) | VapourSynth Plugin | A deband library and filter for avisynth/vapoursynth |
|
||||
| [VapourSynth-BM3D r9](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D/tree/r9) | VapourSynth Plugin | BM3D denoising filter for VapourSynth |
|
||||
| [VapourSynth-DFTTest r7](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest/tree/r7) | VapourSynth Plugin | DFTTest filter for VapourSynth |
|
||||
| [VapourSynth-Yadifmod r10.1](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod/tree/r10.1) | VapourSynth Plugin | Yadifmod filter for VapourSynth |
|
||||
| [havsfunc 3b6a80](https://github.com/HomeOfVapourSynthEvolution/havsfunc) | VapourSynth Functions | Holy's ported AviSynth functions for VapourSynth |
|
||||
| [mvsfunc 90e185](https://github.com/HomeOfVapourSynthEvolution/mvsfunc) | VapourSynth Functions | mawen1250's VapourSynth functions |
|
||||
| [fvsfunc 29ced9](https://github.com/Irrational-Encoding-Wizardry/fvsfunc) | VapourSynth Functions | Small collection of VapourSynth functions |
|
||||
| [muvsfunc 6158bf](https://github.com/WolframRhodium/muvsfunc) | VapourSynth Functions | Muonium's VapourSynth functions |
|
12
docker/build/aom/build.sh
Executable file
12
docker/build/aom/build.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${AOM_TAG}" --depth 1 "${AOM_REPO}" /src/aom
|
||||
pushd /src/aom
|
||||
sed -i 's/MAX_NUM_THREADS 64/MAX_NUM_THREADS 128/' aom_util/aom_thread.h
|
||||
mkdir b
|
||||
pushd b
|
||||
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DENABLE_CCACHE=ON -DCMAKE_BUILD_TYPE=Release -DCONFIG_AV1_ENCODER=1 -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=ON -DBUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||
make -j$(nproc)
|
||||
make install
|
10
docker/build/l-smash/build.sh
Executable file
10
docker/build/l-smash/build.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
|
||||
git clone --branch "master" --depth 1 https://github.com/l-smash/l-smash /src/l-smash
|
||||
pushd /src/l-smash
|
||||
CFLAGS="-fPIC" ./configure --enable-shared --prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
10
docker/build/magick/build.sh
Executable file
10
docker/build/magick/build.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
|
||||
git clone --branch "${MAGICK_TAG}" --depth 1 https://github.com/ImageMagick/ImageMagick /src/imagemagick
|
||||
cd /src/imagemagick
|
||||
./configure --with-magick-plus-plus --prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
9
docker/build/rav1e/build.sh
Executable file
9
docker/build/rav1e/build.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${RAV1E_TAG}" --depth 1 "${RAV1E_REPO}" /src/rav1e
|
||||
pushd /src/rav1e
|
||||
RUSTFLAGS="-C target-cpu=native" cargo build --release --features asm,threading
|
||||
|
||||
cp "$(cargo metadata --format-version 1 | jq -r '.target_directory')/release/rav1e" /usr/bin/rav1e
|
7
docker/build/svt-av1/build.sh
Executable file
7
docker/build/svt-av1/build.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${SVT_TAG}" --depth 1 "${SVT_REPO}" /src/svt-av1
|
||||
pushd /src/svt-av1
|
||||
./Build/linux/build.sh --enable-avx512 --enable-lto --static --native --release --install --prefix /usr
|
107
docker/build/vapoursynth-plugins/build.sh
Executable file
107
docker/build/vapoursynth-plugins/build.sh
Executable file
|
@ -0,0 +1,107 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
curl https://raw.githubusercontent.com/dubhater/vapoursynth-fieldhint/v3/src/fieldhint.c | gcc -x c -I /usr/include/vapoursynth \
|
||||
-shared -o /usr/lib/vapoursynth/fieldhint.so \
|
||||
-O3 -fPIC \
|
||||
-
|
||||
|
||||
|
||||
git clone --branch "master" --depth 1 https://github.com/VFR-maniac/L-SMASH-Works.git /src/L-SMASH-Works
|
||||
pushd /src/L-SMASH-Works
|
||||
cd VapourSynth
|
||||
./configure --vs-plugindir=/usr/lib/vapoursynth --prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
git clone --branch "v1.2" --depth 1 https://github.com/dwbuiten/d2vsource.git /src/d2vsource
|
||||
pushd /src/d2vsource
|
||||
./autogen.sh
|
||||
./configure --prefix=/usr
|
||||
make -j$(nproc)
|
||||
cp .libs/libd2vsource.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r10.1" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod.git /src/VapourSynth-TDeintMod
|
||||
pushd /src/VapourSynth-TDeintMod
|
||||
./autogen.sh
|
||||
./configure
|
||||
make -j$(nproc)
|
||||
cp .libs/libtdeintmod.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r28" --depth 1 https://github.com/EleonoreMizo/fmtconv.git /src/fmtconv
|
||||
pushd /src/fmtconv
|
||||
cd build/unix
|
||||
./autogen.sh
|
||||
./configure --prefix=/usr
|
||||
make -j$(nproc)
|
||||
cp .libs/libfmtconv.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "v23" --depth 1 https://github.com/dubhater/vapoursynth-mvtools /src/vapoursynth-mvtools
|
||||
pushd /src/vapoursynth-mvtools
|
||||
./autogen.sh
|
||||
./configure --prefix=/usr
|
||||
make -j$(nproc)
|
||||
cp .libs/libmvtools.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "master" https://github.com/myrsloik/VapourSynth-FFT3DFilter /src/VapourSynth-FFT3DFilter
|
||||
pushd /src/VapourSynth-FFT3DFilter && git reset --hard 64323f0fdee4dd4fe429ee6287906dbae8e7571c
|
||||
mkdir b
|
||||
pushd b
|
||||
meson ..
|
||||
ninja
|
||||
cp libfft3dfilter.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r2.1" --depth 1 --recursive https://github.com/sekrit-twc/znedi3 /src/znedi3
|
||||
pushd /src/znedi3
|
||||
#TODO: remove X86 hardcode
|
||||
make X86=1 -j$(nproc)
|
||||
cp vsznedi3.so /usr/lib/vapoursynth/
|
||||
cp nnedi3_weights.bin /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r7" --depth 1 https://github.com/Irrational-Encoding-Wizardry/descale /src/descale
|
||||
pushd /src/descale
|
||||
mkdir b
|
||||
pushd b
|
||||
meson ..
|
||||
ninja
|
||||
cp libdescale.so /usr/lib/vapoursynth/
|
||||
cp ../descale.py /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "master" --depth 1 --recursive https://github.com/SAPikachu/flash3kyuu_deband.git /src/flash3kyuu_deband
|
||||
pushd /src/flash3kyuu_deband
|
||||
sed -i 's/env python/env python3/' ./waf
|
||||
./waf configure
|
||||
./waf build
|
||||
cp build/libf3kdb.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r9" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D.git /src/VapourSynth-BM3D
|
||||
pushd /src/VapourSynth-BM3D
|
||||
mkdir b
|
||||
pushd b
|
||||
LDFLAGS=-lfftw3f_threads meson ..
|
||||
ninja
|
||||
cp libbm3d.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r7" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest.git /src/VapourSynth-DFTTest
|
||||
pushd /src/VapourSynth-DFTTest
|
||||
mkdir b
|
||||
pushd b
|
||||
LDFLAGS=-lfftw3f_threads meson ..
|
||||
ninja
|
||||
cp libdfttest.so /usr/lib/vapoursynth/
|
||||
|
||||
git clone --branch "r10.1" --depth 1 https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod.git /src/VapourSynth-Yadifmod
|
||||
pushd /src/VapourSynth-Yadifmod
|
||||
./autogen.sh
|
||||
./configure --prefix=/usr
|
||||
make -j$(nproc)
|
||||
cp .libs/libyadifmod.so /usr/lib/vapoursynth/
|
||||
|
||||
curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/havsfunc/3b6a80ce502e6775c70df6bb2d19124de149073f/havsfunc.py > /usr/lib/vapoursynth/havsfunc.py
|
||||
curl https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/mvsfunc/90e185220901402b974d7364345e0f25e71ab8fe/mvsfunc.py > /usr/lib/vapoursynth/mvsfunc.py
|
||||
curl https://raw.githubusercontent.com/Irrational-Encoding-Wizardry/fvsfunc/29ced90a3f620844dea0efa8666542298f68f421/fvsfunc.py > /usr/lib/vapoursynth/fvsfunc.py
|
||||
curl https://raw.githubusercontent.com/WolframRhodium/muvsfunc/6158bf2af1cb85fd9ba44024c52ef3666a2834c1/muvsfunc.py > /usr/lib/vapoursynth/muvsfunc.py
|
||||
|
||||
|
||||
sed -i 's/core\.nnedi3/core\.znedi3/' /usr/lib/vapoursynth/fvsfunc.py
|
12
docker/build/vapoursynth/build.sh
Executable file
12
docker/build/vapoursynth/build.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
|
||||
git clone --branch "${VS_TAG}" --depth 1 https://github.com/vapoursynth/vapoursynth /src/vapoursynth
|
||||
pushd /src/vapoursynth
|
||||
./autogen.sh
|
||||
mkdir /usr/lib/vapoursynth
|
||||
./configure --enable-plugins --disable-ocr --prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
10
docker/build/x264/build.sh
Executable file
10
docker/build/x264/build.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${X264_TAG}" --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
|
||||
make -j$(nproc)
|
||||
make install
|
9
docker/build/x265/build.sh
Executable file
9
docker/build/x265/build.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
git clone --branch "${X265_TAG}" --depth 1 "${X265_REPO}" /src/x265
|
||||
pushd /src/x265
|
||||
pushd build/linux
|
||||
MAKEFLAGS=-j$(nproc) /multilib.sh
|
||||
cp 8bit/x265 /usr/bin/x265
|
|
@ -3,17 +3,17 @@
|
|||
mkdir -p 8bit 10bit 12bit
|
||||
|
||||
cd 12bit
|
||||
cmake ../../../source -DSTATIC_LINK_CRT=ON -DNATIVE_BUILD=ON -DENABLE_HDR10_PLUS=ON -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON
|
||||
cmake ../../../source -DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy -DSTATIC_LINK_CRT=ON -DNATIVE_BUILD=ON -DENABLE_HDR10_PLUS=ON -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON
|
||||
make ${MAKEFLAGS}
|
||||
|
||||
cd ../10bit
|
||||
cmake ../../../source -DSTATIC_LINK_CRT=ON -DNATIVE_BUILD=ON -DENABLE_HDR10_PLUS=ON -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF
|
||||
cmake ../../../source -DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy -DSTATIC_LINK_CRT=ON -DNATIVE_BUILD=ON -DENABLE_HDR10_PLUS=ON -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF
|
||||
make ${MAKEFLAGS}
|
||||
|
||||
cd ../8bit
|
||||
ln -sf ../10bit/libx265.a libx265_main10.a
|
||||
ln -sf ../12bit/libx265.a libx265_main12.a
|
||||
cmake ../../../source -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DSTATIC_LINK_CRT=ON -DNATIVE_BUILD=ON -DENABLE_HDR10_PLUS=ON -DENABLE_SHARED=OFF -DLINKED_10BIT=ON -DLINKED_12BIT=ON
|
||||
cmake ../../../source -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy -DEXTRA_LINK_FLAGS=-L. -DSTATIC_LINK_CRT=ON -DNATIVE_BUILD=ON -DENABLE_HDR10_PLUS=ON -DENABLE_SHARED=OFF -DLINKED_10BIT=ON -DLINKED_12BIT=ON
|
||||
make ${MAKEFLAGS}
|
||||
|
||||
# rename the 8bit library, then combine all three into libx265.a
|
11
docker/build/zimg/build.sh
Executable file
11
docker/build/zimg/build.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
|
||||
git clone --branch "${ZIMG_TAG}" --depth 1 https://github.com/sekrit-twc/zimg.git /src/zimg
|
||||
pushd /src/zimg
|
||||
./autogen.sh
|
||||
./configure --enable-example --enable-simd --enable-shared --enable-static --prefix=/usr
|
||||
make -j$(nproc)
|
||||
make install
|
Loading…
Reference in a new issue