Convert PAL 25 to NTSC 23.976

This script will convert PAL MKVs to NTSC 23.976 MP4s. You can play around with the container format (MKV instead) or audio codec.

It appears to work by slowing down the video/audio so the duration ends up being a little longer and the audio pitch is lower. Some frames are still dropped and I’m not quite sure why. The duration of the file is longer though. I’ve tested it with 42 episodes of a PAL DVD TV series. They all appear to be correct without any problems showing up.

DVD ISO VOBs -> Handbrake (0 CRF for max quality & copy audio) -> ffmpeg script

1
2
3
4
5
6
7
#!/bin/bash
for f in *.mkv
do
echo "Converting $f"
ffmpeg -loglevel panic -y -i "$f" -vcodec libx264 -preset veryslow -tune film -x264opts crf=16:videoformat=undef:force-cfr -acodec aac -strict -2 -ab 448k -filter:v setpts='25025/24000*(PTS-STARTPTS)' -filter:a asetpts='25025/24000*(PTS-STARTPTS)',aresample=48000:async=1:min_comp=0.01:comp_duration=1:max_soft_comp=100000000:min_hard_comp=0.3 -r 24000/1001 "${f%.mkv}.mp4"
done