From a105916ab58a230bc3fe30d794af4b60463a2229 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Mon, 7 Sep 2026 12:26:09 -0700 Subject: [PATCH] pv-test, add untested function. --- rc_shared.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/rc_shared.sh b/rc_shared.sh index fb4fbc3..2aa9dbc 100644 --- a/rc_shared.sh +++ b/rc_shared.sh @@ -771,6 +771,67 @@ alias vta="v2a" alias pull-audio="v2a" alias pa="v2a" +# Run all the different codecs, wrappers, bitrates, etc on a file. +function pv-test { + filename_in="$1" + while [[ -z "$filename_in" ]]; do + read -p "Please provide the filename: " filename_in + done + + normalize="" + typeset -u normalize_in + read -p "Would you like to normalize the audio? (Y/n) " normalize_in + if [[ $normalize_in != "N"* && $normalize_in != "F"* ]]; then + normalize='-filter:a "dynaudnorm=f=33:g=65:p=0.66:m=33.3"' + fi + + typeset -i size_in + size_in="$3" + if [[ -z $size_in ]]; then + echo "Size not set, assuming 720." + size_in=720 + fi + size="-filter:v scale=-1:$size_in" + + typeset -u okay + echo " Testing with '$filename_in'" + echo " Normalize set to '$normalize'" + echo " Size set to '$size'" + read -p "Look okay? (Y/n) " okay + if [[ "$okay" == "N" || "$okay" == "F"* ]]; then + echo "Not okay, aborting." + exit 1 + fi + + echo "libx264 libsvtav1 libx265" | while read vcodec; do + echo "3 4 5" | while read vpreset; do + echo "25 28 32" | while read crf; do + echo "aac opus" | while read acodec; do + echo "192k 128k" | while read abr; do + echo "mp4 mkv" | while read ext; do + newfile="_$vcodec-p$vpreset-$crf_$acodec-$abr.$ext" + start=$SECONDS + + ffmpeg -nostdin \ + -i "$filename_in" \ + $size \ + -c:v $vcodec -preset $vpreset -crf $crf \ + -c:a $audio -b:a $abr \ + $normalize \ + -movflags +faststart \ + "$newfile" + + finish=$SECONDS + minutes=$(( (finish - start) / 60 )) + printf -v padded_mins "%03d" "$minutes" + mv $newfile "`fn`_${minutes}m$newfile" + done + done + done + done + done +} + ### Web ###