mirror of
https://github.com/levogevo/ffmpeg-av1-builder.git
synced 2026-01-15 16:56:18 +00:00
vmaf wip
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user