Files
custom_scripts/deinterlacing_gpu.sh
2025-11-17 00:41:24 +01:00

33 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
INPUT="$HOME/mount/Ripping/Lutz/noch zu rendern/Brücke nach Terabithia/A1_t00.mkv"
OTPUT="${INPUT%.*}_deinterlaced_vaapi.mp4"
TEMP_STATS=$(mktemp)
ffmpeg -filter:v idet -frames:v 5000 -an -f rawvideo -y /dev/null -i "$INPUT" 2> "$TEMP_STATS"
SUMMARY_LINE=$(grep "Multi frame detection" "$TEMP_STATS")
# Extract counts allowing for leading spaces
TFF_COUNT=$(echo "$SUMMARY_LINE" | grep -oP 'TFF:\s*\K[0-9]+' || echo 0)
BFF_COUNT=$(echo "$SUMMARY_LINE" | grep -oP 'BFF:\s*\K[0-9]+' || echo 0)
PROG_COUNT=$(echo "$SUMMARY_LINE" | grep -oP 'Progressive:\s*\K[0-9]+' || echo 0)
rm "$TEMP_STATS"
echo "Detected: TFF=$TFF_COUNT, BFF=$BFF_COUNT, Progressive=$PROG_COUNT"
TOTAL_INTERLACED=$((TFF_COUNT + BFF_COUNT))
if [ "$TOTAL_INTERLACED" -lt 100 ]; then
echo "Video is mostly progressive. No deinterlacing needed."
exit 0
fi
echo "Deinterlacing required."
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi \
-i "$INPUT" \
-vf 'format=nv12,hwupload,deinterlace_vaapi' \U
-c:v h264_vaapi -b:v 5M -c:a copy "$OUTPUT"