[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