-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadditional-encoders
138 lines (110 loc) · 3.71 KB
/
additional-encoders
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# TODO - further encoders, ideas and cmake optimizations taken from weebdatahoarder repo
# ALREADY PRESENT - x265
# https://bitbucket.org/multicoreware/x265_git.git
# ALREADY PRESENT - x264
# https://code.videolan.org/videolan/x264.git
# uvg266 + 10bit
# https://github.com/ultravideo/uvg266.git
RUN git clone https://github.com/ultravideo/uvg266.git && \
cd build && \
cmake .. \
-DGIT_SUBMODULE=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DCMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX:PATH=/usr/local \
# 10 bit - build twice!
-DUVG_BIT_DEPTH=10 && \
make -j$(nproc) && make install
# vvenc
# https://github.com/fraunhoferhhi/vvenc.git
RUN git clone https://github.com/fraunhoferhhi/vvenc.git && \
cd vvenc && mkdir build && cd build && \
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/local && \
#cmake --build
#make install-release
make -j$(nproc) && make install
# ALREADY PRESENT - aom
# https://aomedia.googlesource.com/aom.git
# ALREADY PRESENT - vmaf
# https://github.com/Netflix/vmaf.git
# brotli
# https://github.com/google/brotli.git
RUN git clone https://github.com/Microsoft/vcpkg.git && \
#cd vcpkg
#./bootstrap-vcpkg.sh
#./vcpkg integrate install
#./vcpkg install brotli
mkdir out && cd out && \
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
#-DCMAKE_INSTALL_PREFIX=./installed \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DBUILD_SHARED_LIBS=OFF \
-DBROTLI_DISABLE_TESTS=ON && \
#cmake --build . --config Release --target install
make -j$(nproc) && make install
# libjxl
# https://github.com/libjxl/libjxl.git
RUN apt install cmake pkg-config libbrotli-dev -y
# for other formats:
RUN apt install libgif-dev libjpeg-dev libopenexr-dev libpng-dev libwebp-dev -y
# compiler
RUN apt install clang -y && \
export CC=clang CXX=clang++
RUN git clone https://github.com/libjxl/libjxl.git --recursive --shallow-submodules && \
cd libjxl && mkdir build && cd build && \
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF #=0 \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local \
-DJPEGXL_ENABLE_FUZZERS=0 \
-DJPEGXL_ENABLE_TOOLS=0 \
-DJPEGXL_ENABLE_DOXYGEN=0 \
-DJPEGXL_ENABLE_MANPAGES=0 \
-DJPEGXL_ENABLE_BENCHMARK=0 \
-DJPEGXL_ENABLE_EXAMPLES=0 \
-DJPEGXL_BUNDLE_LIBPNG=1 \
-DJPEGXL_ENABLE_JNI=0 \
-DJPEGXL_ENABLE_SKCMS=1 \
-DJPEGXL_BUNDLE_SKCMS=1 \
-DJPEGXL_STATIC=1 && \
#cmake --build . -- -j$(nproc)
#cmake --install .
make -j$(nproc) && make install
# ALREADY PRESENT - svt-av1
https://gitlab.com/AOMediaCodec/SVT-AV1.git
# ALREADY PRESENT - rav1e
https://github.com/xiph/rav1e.git
# ALREADY PRESENT - fdk-aac
https://github.com/mstorsjo/fdk-aac.git
# xeve
# https://github.com/mpeg5/xeve.git
RUN git clone https://github.com/mpeg5/xeve.git && \
mkdir build && cd build && \
cmake .. \
#-DSET_PROF=BASE \
-DSET_PROF="${1}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DXEVE_APP_STATIC_BUILD=ON \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local && \
make -j$(nproc) && make install
# final image
COPY --from=base \
/usr/local/bin/XXX \
/usr/local/bin/XXX \
/usr/local/bin/XXX \
/usr/local/bin/XXX \
/usr/local/bin/XXX \
/usr/local/bin/