This commit is contained in:
2024-01-12 18:46:00 -06:00
parent ae71f1bd9c
commit 5bf1bb0c17
3 changed files with 33 additions and 8 deletions

View File

@@ -18,9 +18,13 @@ test -f "$INPUT_DIR/${INPUT[2]}" || wget -O "$INPUT_DIR/${INPUT[2]}" 'https://ww
rm -rf "$OUTPUT_DIR" && mkdir -p "$OUTPUT_DIR" rm -rf "$OUTPUT_DIR" && mkdir -p "$OUTPUT_DIR"
# Different variables to test # Different variables to test
CRF=(25 30) CRF=(40)
ENCODER=('libaom-av1' 'libsvtav1' 'librav1e') ENCODER=('libsvtav1' 'librav1e' 'libaom-av1')
PRESET=(4 8) ENCODER=('libsvtav1')
PRESET=(13)
# Log for results
LOG="$OUTPUT_DIR/results.txt"
for input in "${INPUT[@]}" for input in "${INPUT[@]}"
do do
@@ -32,8 +36,13 @@ do
for crf in "${CRF[@]}" for crf in "${CRF[@]}"
do do
OUTPUT="$OUTPUT_DIR/${encoder}_preset${preset}_crf${crf}_$input" OUTPUT="$OUTPUT_DIR/${encoder}_preset${preset}_crf${crf}_$input"
echo "output: $OUTPUT" echo "output: $OUTPUT" >> "$LOG"
ffmpeg -i "$INPUT_DIR/$input" -c:a copy -c:v "$encoder" -preset "$preset" -crf "$crf" "$OUTPUT" TIME_BEFORE=$(date +%s)
ffmpeg -i "$INPUT_DIR/$input" -c:a copy -c:v "$encoder" -preset "$preset" -crf "$crf" "$OUTPUT" 2> /dev/null || exit 1
TIME_AFTER=$(date +%s)
TIME_DIFF=$((TIME_AFTER - TIME_BEFORE))
echo -e "\t time taken: $TIME_DIFF" >> "$LOG"
ffmpeg -i "$OUTPUT" -i "$INPUT_DIR/$input" -lavfi libvmaf=n_threads="$(nproc)" -f 'null' - | grep "VMAF score:" >> "$LOG" || exit 1
done done
done done
done done

View File

@@ -5,12 +5,14 @@ SVT_DIR="$BASE_DIR/svt"
RAV1E_DIR="$BASE_DIR/rav1e" RAV1E_DIR="$BASE_DIR/rav1e"
FFMPEG_DIR="$BASE_DIR/ffmpeg" FFMPEG_DIR="$BASE_DIR/ffmpeg"
AOM_DIR="$BASE_DIR/aom" AOM_DIR="$BASE_DIR/aom"
VMAF_DIR="$BASE_DIR/vmaf"
# clone # clone
git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git "$SVT_DIR" --depth 1 git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git "$SVT_DIR" --depth 1
git clone https://github.com/xiph/rav1e "$RAV1E_DIR" --depth 1 git clone https://github.com/xiph/rav1e "$RAV1E_DIR" --depth 1
git clone https://git.ffmpeg.org/ffmpeg.git "$FFMPEG_DIR" --depth 1 git clone https://git.ffmpeg.org/ffmpeg.git "$FFMPEG_DIR" --depth 1
git clone https://aomedia.googlesource.com/aom "$AOM_DIR" --depth 1 git clone https://aomedia.googlesource.com/aom "$AOM_DIR" --depth 1
git clone https://github.com/Netflix/vmaf "$VMAF_DIR" --depth 1
# build svt-av1 # build svt-av1
cd "$SVT_DIR/" || exit cd "$SVT_DIR/" || exit
@@ -46,6 +48,16 @@ cmake .. -DCMAKE_BUILD_TYPE=Release
make -j "$(nproc)" make -j "$(nproc)"
sudo make install sudo make install
# build libvmaf
cd "$VMAF_DIR/libvmaf" || exit
git pull
python3 -m virtualenv .venv
source .venv/bin/activate
pip install meson
meson setup build --buildtype release
ninja -vC build
sudo ninja -vC build install
# ldconfig for shared libs # ldconfig for shared libs
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/ffmpeg.conf
sudo ldconfig sudo ldconfig
@@ -55,7 +67,8 @@ cd "$FFMPEG_DIR/" || exit
git pull git pull
export PKG_CONFIG_PATH+=":/usr/local/lib/pkgconfig" export PKG_CONFIG_PATH+=":/usr/local/lib/pkgconfig"
make clean make clean
./configure --enable-libsvtav1 --enable-librav1e --enable-libaom ./configure --enable-libsvtav1 --enable-librav1e \
--enable-libaom --enable-libvmaf || exit
make -j "$(nproc)" make -j "$(nproc)"
sudo make install sudo make install

View File

@@ -5,8 +5,11 @@ sudo apt-get update
sudo apt-get install autoconf automake build-essential cmake git-core \ sudo apt-get install autoconf automake build-essential cmake git-core \
libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev \ libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev \
libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config \ libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config \
texinfo wget zlib1g-dev nasm yasm libssl-dev -y texinfo wget zlib1g-dev nasm yasm libssl-dev time python3 meson ninja-build\
doxygen xxd -y || exit 1
curl https://sh.rustup.rs -sSf | sh -s -- -y curl https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env" source "$HOME/.cargo/env"
cargo install cargo-c cargo install cargo-c
python3 -m pip install virtualenv