mirror of
https://github.com/levogevo/ffmpeg-av1-builder.git
synced 2026-01-15 16:56:18 +00:00
add x264/65/vpx
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -9,4 +9,7 @@ benchmark
|
|||||||
graphs
|
graphs
|
||||||
rkmpp
|
rkmpp
|
||||||
rkrga
|
rkrga
|
||||||
|
x264
|
||||||
|
x265
|
||||||
|
vpx
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ DAV1D_DIR="$BASE_DIR/dav1d"
|
|||||||
OPUS_DIR="$BASE_DIR/opus"
|
OPUS_DIR="$BASE_DIR/opus"
|
||||||
RKMPP_DIR="$BASE_DIR/rkmpp"
|
RKMPP_DIR="$BASE_DIR/rkmpp"
|
||||||
RKRGA_DIR="$BASE_DIR/rkrga"
|
RKRGA_DIR="$BASE_DIR/rkrga"
|
||||||
|
X264_DIR="$BASE_DIR/x264"
|
||||||
|
X265_DIR="$BASE_DIR/x265"
|
||||||
|
VPX_DIR="$BASE_DIR/vpx"
|
||||||
|
|
||||||
# clone
|
# clone
|
||||||
git clone --depth 1 https://gitlab.com/AOMediaCodec/SVT-AV1.git "$SVT_DIR"
|
git clone --depth 1 https://gitlab.com/AOMediaCodec/SVT-AV1.git "$SVT_DIR"
|
||||||
@@ -19,6 +22,9 @@ git clone --depth 1 https://github.com/Netflix/vmaf "$VMAF_DIR"
|
|||||||
git clone --depth 1 https://code.videolan.org/videolan/dav1d.git "$DAV1D_DIR"
|
git clone --depth 1 https://code.videolan.org/videolan/dav1d.git "$DAV1D_DIR"
|
||||||
git clone --depth 1 https://github.com/xiph/opus.git "$OPUS_DIR"
|
git clone --depth 1 https://github.com/xiph/opus.git "$OPUS_DIR"
|
||||||
git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git "$FFMPEG_DIR"
|
git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git "$FFMPEG_DIR"
|
||||||
|
git clone --depth 1 https://code.videolan.org/videolan/x264.git "$X264_DIR"
|
||||||
|
git clone --depth 1 https://github.com/videolan/x265.git "$X265_DIR"
|
||||||
|
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git "$VPX_DIR"
|
||||||
|
|
||||||
export ARCH=$(uname -m)
|
export ARCH=$(uname -m)
|
||||||
export COMP_FLAGS=""
|
export COMP_FLAGS=""
|
||||||
@@ -31,6 +37,9 @@ then
|
|||||||
fi
|
fi
|
||||||
echo "COMP_FLAGS: $COMP_FLAGS"
|
echo "COMP_FLAGS: $COMP_FLAGS"
|
||||||
|
|
||||||
|
# set optimization level
|
||||||
|
OPT_LVL="3"
|
||||||
|
|
||||||
# for ccache
|
# for ccache
|
||||||
export PATH="/usr/lib/ccache/:$PATH"
|
export PATH="/usr/lib/ccache/:$PATH"
|
||||||
|
|
||||||
@@ -60,8 +69,8 @@ then
|
|||||||
cmake .. -DCMAKE_BUILD_TYPE=Release \
|
cmake .. -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DBUILD_SHARED_LIBS=ON \
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
-DBUILD_TEST=OFF \
|
-DBUILD_TEST=OFF \
|
||||||
-DCMAKE_C_FLAGS="-O3 $COMP_FLAGS" \
|
-DCMAKE_C_FLAGS="-O${OPT_LVL} $COMP_FLAGS" \
|
||||||
-DCMAKE_CXX_FLAGS="-O3 $COMP_FLAGS" || exit
|
-DCMAKE_CXX_FLAGS="-O${OPT_LVL} $COMP_FLAGS" || exit
|
||||||
make -j "$(nproc)" || exit
|
make -j "$(nproc)" || exit
|
||||||
sudo make install || exit
|
sudo make install || exit
|
||||||
|
|
||||||
@@ -87,8 +96,8 @@ mkdir build_svt.user
|
|||||||
cd build_svt.user || exit
|
cd build_svt.user || exit
|
||||||
make clean
|
make clean
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DSVT_AV1_LTO=ON \
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DSVT_AV1_LTO=ON \
|
||||||
-DCMAKE_C_FLAGS="-O3 $COMP_FLAGS" \
|
-DCMAKE_C_FLAGS="-O${OPT_LVL} $COMP_FLAGS" \
|
||||||
-DCMAKE_CXX_FLAGS="-O3 $COMP_FLAGS" || exit
|
-DCMAKE_CXX_FLAGS="-O${OPT_LVL} $COMP_FLAGS" || exit
|
||||||
make -j "$(nproc)" || exit
|
make -j "$(nproc)" || exit
|
||||||
sudo make install || exit
|
sudo make install || exit
|
||||||
|
|
||||||
@@ -117,8 +126,8 @@ cd build_aom.user || exit
|
|||||||
make clean
|
make clean
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON \
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON \
|
||||||
-DENABLE_TESTS=OFF \
|
-DENABLE_TESTS=OFF \
|
||||||
-DCMAKE_C_FLAGS="-flto -O3 $COMP_FLAGS" \
|
-DCMAKE_C_FLAGS="-flto -O${OPT_LVL} $COMP_FLAGS" \
|
||||||
-DCMAKE_CXX_FLAGS="-flto -O3 $COMP_FLAGS" || exit
|
-DCMAKE_CXX_FLAGS="-flto -O${OPT_LVL} $COMP_FLAGS" || exit
|
||||||
make -j "$(nproc)" || exit
|
make -j "$(nproc)" || exit
|
||||||
sudo make install || exit
|
sudo make install || exit
|
||||||
|
|
||||||
@@ -133,7 +142,7 @@ mkdir build.user
|
|||||||
cd build.user || exit
|
cd build.user || exit
|
||||||
pip install meson
|
pip install meson
|
||||||
meson setup ../ build.user --buildtype release -Denable_float=true -Db_lto=true \
|
meson setup ../ build.user --buildtype release -Denable_float=true -Db_lto=true \
|
||||||
--optimization=3 -Dc_args="$COMP_FLAGS" -Dcpp_args="$COMP_FLAGS" || exit
|
--optimization="$OPT_LVL" -Dc_args="$COMP_FLAGS" -Dcpp_args="$COMP_FLAGS" || exit
|
||||||
ninja -vC build.user || exit
|
ninja -vC build.user || exit
|
||||||
sudo ninja -vC build.user install || exit
|
sudo ninja -vC build.user install || exit
|
||||||
|
|
||||||
@@ -154,12 +163,49 @@ cd "$OPUS_DIR" || exit
|
|||||||
git stash && git stash drop
|
git stash && git stash drop
|
||||||
git pull
|
git pull
|
||||||
./autogen.sh || exit
|
./autogen.sh || exit
|
||||||
export CFLAGS="-O3 -flto $COMP_FLAGS"
|
export CFLAGS="-O${OPT_LVL} -flto $COMP_FLAGS"
|
||||||
./configure || exit
|
./configure || exit
|
||||||
make -j "$(nproc)" || exit
|
make -j "$(nproc)" || exit
|
||||||
sudo make install || exit
|
sudo make install || exit
|
||||||
unset CFLAGS
|
unset CFLAGS
|
||||||
|
|
||||||
|
# build x264
|
||||||
|
cd "$X264_DIR" || exit
|
||||||
|
git stash && git stash drop
|
||||||
|
git pull
|
||||||
|
./configure --enable-static --enable-pic \
|
||||||
|
--enable-shared --enable-lto \
|
||||||
|
--extra-cflags="-O${OPT_LVL} $COMP_FLAGS" || exit
|
||||||
|
make -j "$(nproc)" || exit
|
||||||
|
sudo make install || exit
|
||||||
|
|
||||||
|
# build x265
|
||||||
|
cd "$X265_DIR" || exit
|
||||||
|
git stash && git stash drop
|
||||||
|
git pull
|
||||||
|
rm -rf build.user
|
||||||
|
mkdir build.user
|
||||||
|
cd build.user || exit
|
||||||
|
cmake ../source -DCMAKE_BUILD_TYPE=Release -DNATIVE_BUILD=ON \
|
||||||
|
-DCMAKE_C_FLAGS="-flto -O${OPT_LVL} $COMP_FLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS="-flto -O${OPT_LVL} $COMP_FLAGS" || exit
|
||||||
|
make -j "$(nproc)" || exit
|
||||||
|
sudo make install || exit
|
||||||
|
|
||||||
|
# build vpx
|
||||||
|
cd "$VPX_DIR" || exit
|
||||||
|
git stash && git stash drop
|
||||||
|
git pull
|
||||||
|
./configure --enable-pic --as=yasm \
|
||||||
|
--extra-cflags="-O${OPT_LVL} $COMP_FLAGS" \
|
||||||
|
--extra-cxxflags="-O${OPT_LVL} $COMP_FLAGS" \
|
||||||
|
--disable-examples --disable-docs \
|
||||||
|
--enable-better-hw-compatibility \
|
||||||
|
--enable-vp9-highbitdepth \
|
||||||
|
--enable-shared
|
||||||
|
make -j "$(nproc)" || exit
|
||||||
|
sudo make install || exit
|
||||||
|
|
||||||
# ldconfig for shared libs
|
# ldconfig for shared libs
|
||||||
sudo mkdir /etc/ld.so.conf.d/
|
sudo mkdir /etc/ld.so.conf.d/
|
||||||
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf || exit 1
|
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf || exit 1
|
||||||
@@ -174,10 +220,12 @@ make clean
|
|||||||
./configure --enable-libsvtav1 --enable-librav1e \
|
./configure --enable-libsvtav1 --enable-librav1e \
|
||||||
--enable-libaom --enable-libvmaf \
|
--enable-libaom --enable-libvmaf \
|
||||||
--enable-libdav1d --enable-libopus \
|
--enable-libdav1d --enable-libopus \
|
||||||
|
--enable-gpl --enable-libx264 \
|
||||||
|
--enable-libx265 --enable-libvpx \
|
||||||
--arch="$ARCH" --cpu=native \
|
--arch="$ARCH" --cpu=native \
|
||||||
--enable-lto $FFMPEG_ROCKCHIP \
|
--enable-lto $FFMPEG_ROCKCHIP \
|
||||||
--extra-cflags="-O3 $COMP_FLAGS" \
|
--extra-cflags="-O${OPT_LVL} $COMP_FLAGS" \
|
||||||
--extra-cxxflags="-O3 $COMP_FLAGS" \
|
--extra-cxxflags="-O${OPT_LVL} $COMP_FLAGS" \
|
||||||
--disable-doc --disable-htmlpages \
|
--disable-doc --disable-htmlpages \
|
||||||
--disable-podpages --disable-txtpages || exit
|
--disable-podpages --disable-txtpages || exit
|
||||||
make -j "$(nproc)" || exit
|
make -j "$(nproc)" || exit
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ sudo "$PKG_MNG" upgrade -qy
|
|||||||
|
|
||||||
sudo "$PKG_MNG" install autoconf automake build-essential cmake git-core g++-12 \
|
sudo "$PKG_MNG" install autoconf automake build-essential cmake git-core g++-12 \
|
||||||
libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev gcc-12 \
|
libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev gcc-12 \
|
||||||
libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config bc \
|
libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config bc libnuma-dev \
|
||||||
texinfo wget zlib1g-dev nasm yasm libssl-dev time python3 meson ninja-build gobjc++ \
|
texinfo wget zlib1g-dev nasm yasm libssl-dev time python3 meson ninja-build gobjc++ \
|
||||||
doxygen xxd jq lshw gnuplot python3-pip curl clang valgrind ccache gawk mawk -y || exit 1
|
doxygen xxd jq lshw gnuplot python3-pip curl clang valgrind ccache gawk mawk -y || exit 1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user