[mythtv-users] [OT] PAL DVD to NTSC

Florin Andrei florin at andrei.myip.org
Sat Sep 13 01:32:47 UTC 2008


Brad Fuller wrote:
> Googlin I see that it's possible to use mencoder to copy a PAL DVD and
> convert it to play on NTSC systems.

"Possible" - yes. But it's going to look ugly. mencoder is good for 
quick and dirty conversions, not for a sophisticated translation between 
standards like this one.

If you don't care about quality, sure, use mencoder.

> anyone found an easy way to convert PAL to NTSC DVDs?  --- ok, "easy"
> is loaded ;-)

There is no easy way that provides good quality.

The only way to do it anywhere near acceptable quality is if you use a 
motion-compensated frame rate changer. The only open source one I'm 
aware of that works on Linux is yuvmotionfps, which can be used with 
mjpegtools and seems to work well with progressive video.

http://jcornet.free.fr/linux/yuvmotionfps.html

All the other framerate converters are interpolators or, arguably worse, 
plain frame droppers/multiplicators. Those filters are UGLY.

Now, if your video is interlaced, yuvmotionfps does not work. You may 
try to deinterlace and double the frame rate at the same time (it can be 
done with AviSynth and some version of a Bob filter), change the fps 
(it's double already, so it'll be 50 to 60001/1000), then convert it 
back to interlaced and half the frame rate.
Surprisingly and counter-intuitively, the image quality of the result is 
not as bad as you may be inclined to think, provided that your bobber 
(deinterlacer + frame rate doubler) is good. There are some suggestions 
on how to do it in the following thread on Doom9 (and you need to change 
the vertical resolution, which is also discussed in the same thread), 
and you will probably need to insert a motion-compensated fps change 
somewhere in the progressive portion of the chain:

http://forum.doom9.org/showthread.php?t=139102

You're looking for a script that looks similar to this (and perhaps you 
may have to use AssumeBFF() instead of TFF):

DirectShowSource("hd.m2ts", audio=false)
AssumeTFF()
# Choose one of these
#Bob()
#Yadif(mode=1)
LanczosResize(720,480)
AssumeTFF()
SeparateFields()
SelectEvery(4,0,3)
Weave()

The progressive portion begins with the bobber (right before the Resize 
filter). That's where you have to change the frame rate - immediately 
before or after the resize.
BTW, that's exactly the resize that you have to use - 720x480 is NTSC.

Note: I have never combined these two processes. I did both separately 
(motion-compensated fps change in progressive domain on Linux, and 
interlaced-to-interlaced resize with an intermediate progressive step on 
Windows). Combining them may not be trivial, but I'm pretty sure it's 
doable by someone with enough determination.

Note2: If the source is mixed interlaced/progressive, it's even more nasty.

However, this whole process resembles a gigantic Rube Goldberg machine. 
It's probably much easier if you just make sure your DVD player and your 
TV screen are multistandard. Most video gear in Europe is 
multi-standard. If you're in the US, you need to choose carefully.

-- 
Florin Andrei

http://florin.myip.org/


More information about the mythtv-users mailing list