NTSC is not your PAL
(simple NTSC to/from PAL video conversion scripts)



The title of this page is a little tongue-in-cheek on purpose, if you're here then you know that conversion between NTSC and PAL can be a messy process.


I have discovered that the freeware software AviSynth is highly capable of producing decent conversions of video footage (progressive and interlaced source) between NTSC and PAL for ultimately burning to DVD.

AviSynth has a simple explanation page which explains it's ConvertFPS() command, which this page will be extensively using, from there I used the example code and devised my own for converting NTSC video to/from PAL video. It does so by frame blending to produce smoother playback rather than using a pulldown technique that repeats frames/fields to achieve a new framerate.



Progressive PAL to interlaced NTSC

This short script code is primarily for converting 25fps progressive (non-interlaced) PAL footage to interlaced NTSC. Your input video doesn't have to be at full 720x576 PAL resolution, you can use smaller sized video, such as an mpeg-1 or avi source so long as it's 25fps.

If you wish to use other close framerates such as 23.976fps as your source then change the AssumeFPS() and ChangeFPS() settings appropriately, the ChangeFPS() setting is 2x the AssumeFPS() setting to double the framerate before procesing, ie AssumeFPS(23.976),ChangeFPS(47.952)


BicubicResize(720,480)
AssumeFPS(25)
ChangeFPS(50)
ConvertToYUY2
ConvertFPS(59.94)
SeparateFields.SelectEvery(4,0,3)
Weave
ConvertToRGB



Interlaced PAL to interlaced NTSC

This short script code is primarily for converting 25fps interlaced PAL footage to interlaced NTSC. The input video must be full interlaced PAL footage, such as captured video from a DV camcorder.
Because the source is interlaced and the two fields of the frame are being duplicated to increase the playback to 50fps progressive before conversion, the output video can 'shimmer' slightly but it still looks good.


Assumefps(25)
Bob()
BicubicResize(720,480)
ConvertToYUY2
ConvertFPS(59.94)
SeparateFields.SelectEvery(4,0,3)
Weave
ConvertToRGB



Progressive NTSC to interlaced PAL

This short script code is primarily for converting 29.97fps progressive (non-interlaced) NTSC footage to interlaced NTSC. Your input video doesn't have to be at full 720x576 PAL resolution, you can use smaller sized video, such as an mpeg-1 or avi source so long as it's 29.97fps.

If you wish to use other close framerates such as 23.976fps as your source then change the AssumeFPS() and ChangeFPS() settings appropriately, the ChangeFPS() setting is 2x the AssumeFPS() setting to double the framerate before procesing, ie AssumeFPS(23.976),ChangeFPS(47.952)


BicubicResize(720,576)
AssumeFPS(29.97)
ChangeFPS(59.94)
ConvertToYUY2
ConvertFPS(50)
SeparateFields.SelectEvery(4,0,3)
Weave
ConvertToRGB



Interlaced NTSC to interlaced PAL

This short script code is primarily for converting 29.97fps interlaced NTSC footage to interlaced PAL. The input video must be full interlaced NTSC footage, such as captured video from a DV camcorder.
Because the source is interlaced and the two fields of the frame are being duplicated to increase the playback to 59.94fps progressive before conversion, the output video can 'shimmer' slightly but it still looks good.


AssumeFPS(29.97)
Bob()
BicubicResize(720,576)
ConvertToYUY2
ConvertFPS(50)
SeparateFields.SelectEvery(4,0,3)
Weave
ConvertToRGB



How do I use these scripts?

These scripts are the 'core' pieces for your own script creations, just the PAL/NTSC conversion process.

Firstly you should hopefully know a little about framerates, interlace, fields etc., have AviSynth installed and know how to use it's scripts, not forgetting how to create/burn DVDs (as that is your destination for the video).

Real world situations; if you go to my Flight of the Navigator, download the .mpg clip there you can try this script for converting the 25fps video into interlaced NTSC:


DirectShowSource("FlightOfTheNavigator-VCD.mpg",25)
BicubicResize(720,480)
AssumeFPS(25)
ChangeFPS(50)
ConvertToYUY2
ConvertFPS(59.94)
SeparateFields.SelectEvery(4,0,3)
Weave
ConvertToRGB

The only addition to the above progressive PAL to interlaced NTSC script is the inclusion of the DirectShowSource() command which allows you to open any video file you can play with Windows Media Player, the requried number after the filename is the framerate of the video clip, any audio is automatically decoded and passed out as uncompressed PCM, how you deal with the audio for DVD creation is your job, this page just deals with the PAL/NTSC scripts.

Either copy/paste the text into a .avs AviSynth script file, or save this link, then with the .mpg and .avs in the same directory, open up the .avs with your mpeg2 encoder program and encode it in interlace not progressive.
You should end up with a .m2v or .mpg clip in full NTSC, which you can then either burn to DVD (best to use a rewritable as it's just a test), or if like me you have a Sigma RealMagic Hollywood+ hardware mpeg decoder card you can try the clip on a real tv without burning to disc.

It's not advisable to test the outputted files of these scripts on a software DVD player on your monitor or outputted through your graphics card to a tv because it's interlaced footage and gfx cards with tv-out don't always work well with interlaced sourse footage.
If you do a lot of DVD creation or video conversion for DVD work then get a Sigma RealMagic Hollywood+ card cheap off eBay (I got my 2nd one for 9, including postage!) because you can test true PAL and true NTSC mpeg2 video and compiled DVDs on a proper tv so you can instantly see if your conversion went well or you need to go back to the drawing board.



fox@ridhughz.demon.co.uk

back...