X-Git-Url: https://code.delx.au/transcoding/blobdiff_plain/2a1eb6d426529b0c91d47c6b3e775104a7b734b0..98fa85aa71088f8025d8f17366fe2a0468cb1fc3:/fix-pal-speedup diff --git a/fix-pal-speedup b/fix-pal-speedup index edac664..5e6f8d4 100755 --- a/fix-pal-speedup +++ b/fix-pal-speedup @@ -1,39 +1,36 @@ #!/bin/bash -e -# Many DVDs released in Australia are sped up from 23.976fps to 25fps. +# Many DVDs released in Australia are sped up from 24fps 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. +# volume normalised then re-encoded as mp3. if [ -z "$1" -o -z "$2" ]; then - echo "Usage: $0 destdir infile" + echo "Usage: $0 destdir infile [infile ...]" exit 1 fi -# FORCEFPS = 24000 / 1001 -# SLOWDOWN = FORCEFPS / 25 -FORCEFPS="23.976023976023978" -SLOWDOWN="0.9590409590409591" +FORCEFPS="24" +SLOWDOWN="0.96" 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 +shift + +for infile in "$@"; do + outfile="$destdir/$(basename "$infile")" + + if [ -f "$outfile" ]; then + echo "Not overwriting $outfile" + continue + 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" + set -x + tmpdir="$(mktemp -d "${TMPDIR:-/var/tmp}/pal-XXXXXXXX")" + mplayer -novideo -ao pcm:file="${tmpdir}/audio.wav" -vo null "$infile" + 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" + rm -rf "$tmpdir" +done