Skip to content

Instantly share code, notes, and snippets.

@bunkbail
Created October 19, 2024 09:31
Show Gist options
  • Select an option

  • Save bunkbail/c573be00d4640779742511e8b1bbfacc to your computer and use it in GitHub Desktop.

Select an option

Save bunkbail/c573be00d4640779742511e8b1bbfacc to your computer and use it in GitHub Desktop.
#!/bin/bash
mkdir -p temp upscaled
for video in original/*.mkv; do
filename=$(basename "$video" .mkv)
mkdir -p temp/split
mkdir -p temp/processed
ffmpeg -analyzeduration 10000000 -probesize 10000000 -i "$video" -c copy -map 0:v:0 -f segment -segment_time 60 -reset_timestamps 1 -avoid_negative_ts make_zero "temp/split/${filename}_%03d.mkv"
for segment in temp/split/"${filename}"_*.mkv; do
if [ -f "$segment" ]; then
echo "Processing segment $(basename "$segment")..."
docker run --gpus all --privileged -it --rm \
-v "$PWD/temp/split:/split" \
-v "$PWD/temp/processed:/processed" \
ghcr.io/k4yt3x/video2x:6.0.0-beta.3 \
-i "/split/$(basename "$segment")" \
-o "/processed/$(basename "$segment")" \
-f libplacebo -s anime4k-mode-a -w 2560 -h 1440 -c libx265 -p medium -q 20
fi
done
ffmpeg -f concat -safe 0 -i <(for f in temp/processed/"${filename}"_*.mkv; do echo "file '$PWD/$f'"; done) -c copy "temp/${filename}_combined.mkv"
ffmpeg -i "$video" -i "temp/${filename}_combined.mkv" -map 0:a -map 0:s -map 1:v -c copy -y "upscaled/${filename}.mkv"
rm -rf temp/split
rm -rf temp/processed
rm -f "temp/${filename}_combined.mkv"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment