From 2a1eb6d426529b0c91d47c6b3e775104a7b734b0 Mon Sep 17 00:00:00 2001 From: James Bunton Date: Sun, 11 Aug 2013 13:10:52 +1000 Subject: [PATCH] Script to fix videos from PAL DVDs which have been sped up by 4% --- fix-pal-speedup | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 fix-pal-speedup diff --git a/fix-pal-speedup b/fix-pal-speedup new file mode 100755 index 0000000..edac664 --- /dev/null +++ b/fix-pal-speedup @@ -0,0 +1,39 @@ +#!/bin/bash -e + +# Many DVDs released in Australia are sped up from 23.976fps to 25fps. +# This script reverses the procedure, correcting the audio pitch. +# Input files are assumed to be mkv files with track 2 audio. +# The video framerate is adjusted without re-encoding. The audio is slowed and +# normalised then re-encoded as mp3. + +if [ -z "$1" -o -z "$2" ]; then + echo "Usage: $0 destdir infile" + exit 1 +fi + +# FORCEFPS = 24000 / 1001 +# SLOWDOWN = FORCEFPS / 25 +FORCEFPS="23.976023976023978" +SLOWDOWN="0.9590409590409591" + +destdir="$1" +infile="$2" +outfile="$destdir/$(basename "$infile")" +tmpdir="$(tempfile -p 'pal-')" +rm "$tmpdir" + +if [ -f "$outfile" ]; then + echo "Not overwriting $outfile" + exit 0 +fi + +set -x +mkdir "$tmpdir" +mkvextract tracks "$infile" 2:"${tmpdir}/audio" +mplayer -ao pcm:file="${tmpdir}/audio.wav" -vo null "${tmpdir}/audio" +sox "${tmpdir}/audio.wav" "${tmpdir}/audio-fixed.wav" speed "${SLOWDOWN}" gain -n +lame --preset standard "${tmpdir}/audio-fixed.wav" "${tmpdir}/audio.mp3" +mkvmerge -o "${outfile}" --default-duration "1:${FORCEFPS}fps" --no-audio "$infile" "${tmpdir}/audio.mp3" + +rm -rf "$tmpdir" + -- 2.39.2