Files
ffmpeg-av1-builder/scripts/benchmark.sh
2024-01-12 08:46:50 -06:00

40 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
BASE_DIR=$(pwd)
BENCHMARK_DIR="$BASE_DIR/benchmark"
INPUT_DIR="$BENCHMARK_DIR/input"
OUTPUT_DIR="$BENCHMARK_DIR/output"
mkdir -p "$INPUT_DIR"
# input names
INPUT=('waves_crashing.mp4' 'burning_wood.mp4' 'mountain_scenery.mp4')
# standard 4k 24fps stock video
test -f "$INPUT_DIR/${INPUT[0]}" || wget -O "$INPUT_DIR/${INPUT[0]}" 'https://www.pexels.com/download/video/1390942/?fps=23.98&h=2160&w=4096'
test -f "$INPUT_DIR/${INPUT[1]}" || wget -O "$INPUT_DIR/${INPUT[1]}" 'https://www.pexels.com/download/video/2908575/?fps=23.976&h=2160&w=4096'
test -f "$INPUT_DIR/${INPUT[2]}" || wget -O "$INPUT_DIR/${INPUT[2]}" 'https://www.pexels.com/download/video/5598970/?fps=23.976&h=2160&w=3840'
rm -rf "$OUTPUT_DIR" && mkdir -p "$OUTPUT_DIR"
# Different variables to test
CRF=(25 30)
ENCODER=('libaom-av1' 'libsvtav1' 'librav1e')
PRESET=(4 8)
for input in "${INPUT[@]}"
do
# echo "$input"
for encoder in "${ENCODER[@]}"
do
for preset in "${PRESET[@]}"
do
for crf in "${CRF[@]}"
do
OUTPUT="$OUTPUT_DIR/${encoder}_preset${preset}_crf${crf}_$input"
echo "output: $OUTPUT"
ffmpeg -i "$INPUT_DIR/$input" -c:a copy -c:v "$encoder" -preset "$preset" -crf "$crf" "$OUTPUT"
done
done
done
done