AfterDawn.com
Convert PAL to NTSCViewing Page 4 of 5 -- Go To


Overview

DifficultyAdvanced
Progressive PAL to NTSC (23.976fps)Very Good
Progressive PAL to NTSC (29.97fps)Good
Interlaced PAL to NTSC (29.97fps)Good

PAL to NTSC using AviSynth



Unlike the other programs covered so far, AviSynth isn't an all-in-one type solution. It doesn't handle video or audio encoding. It can't author DVDs. It doesn't even have a standard GUI for an interface. What it does have is one of the biggest feature sets of any video editing program, including many built-in filters and a number of plugins written to work with it.

Although scripting with AviSynth can get as complex as you're prepared to make it, basic operations, like converting PAL to NTSC, are very straight forward. More importantly, your approach can be tailored to suit your source and destination. This allows you to stick with a single program for all your conversions.






Required Software

AviSynth

AviSynth is a powerful open source video editor, commonly used to provide input for encoders such as Cinemacraft Encoder for MPEG-2 and x264 for AVC. You can find more information on AviSynth in our guide on Using AviSynth 2.5. It includes not only basic instructions for AviSynth, but also descriptions of a number of built-in filters, as well as third party plugins.

AvsP

AvsP is an editor for AviSynth files. In addtion to automating the process of script creation, it provides syntax highlighting to make AviSynth scripts more readable. It also includes a tool called Avs2Avi for creating actual AVI files from scripts.

Optional Software

DGIndex

DGIndex is the latest update to the classic DVD2AVI program and can be used to help AviSynth read MPEG-2 sources.

SBDeint

SBDeint is a smart bobber plugin for AviSynth. Smart bobbing is a form of deinterlacing that's particularly well suited for interlaced video.

Yadif

Yadif is a smart bobber plugin for AviSynth. Smart bobbing is a form of deinterlacing that's particularly well suited for interlaced video.



Progressive PAL to NTSC film


When dealing with progressive PAL video you have a couple of options to consider. The first, and most important, is whether to slow it down to 23.976fps. When film sources are encoded for PAL it's common for them to simply be sped up a little to produce the desired framerate (film is 24fps - PAL is 25fps). You can use AviSynth to reverse this process, but you need to remember that this will require altering the audio speed as well. If the audio has more than two channels this can be a major undertaking so you should consider it carefully.

Rather than slowing the video down, you may prefer to simply resize it to the proper NTSC resolution and add Pulldown to make it play at 29.97fps. You can find instructions for that later in this guide. Read Page 5 for pulldown of MPEG-2 files or Page 6 for Pulldown of MPEG-4 (AVC) video.


PAL to NTSC film Conversion - No Slow Down


Even if you choose to use Pulldown flags to change the framerate, you'll probably want to resize the video to match one of NTSC's standard resolutions. Depending on what your final format will be that could be 720x480, 704x480, 640x480, 540x480, or even 480x480. A script to do that would look something like the following (the bolded parts are the resize operation):
MPEG2Source("MyVideo.d2v")
LanczosResize(720,480)



PAL to NTSC film Conversion - With Slow Down


Maybe returning your film content to (nearly) it's original framerate is important to you. That's where you want to use AviSynth's AssumeFPS filter. AssumeFPS will simply change the video's playback speed without creating or destroying any frames. When you use AssumeFPS for this you'll also need to slow the audio to keep it in sync. If you have a surround sound audio stream this may be prohibitively difficult. For two channels or fewer it's as simple as telling AssumeFPS to keep the audio in sync, and then resampling afterward, like what follows. Once again the bolded part of the script is what you should be looking at:
#Load Video/Audio file
DirectShowSource("Video-Audio-File.MPG")

#Resize to NTSC resolution
Spline36Resize(720,480)

#Slow video to 23.976fps
AssumeFPS(24,1001, sync_audio=true)


#Resample Audio to 48000Hz
SSRC(48000)

The second filter, SSRC() resamples the audio to 48000Hz, which is standard for DVD and most other digital video applications.



Progressive PAL to NTSC


If for some reason Pulldown isn't an option, you can emulate the pulldown pattern with AviSynth. Doing this will mean encoding your video interlaced, which will increase the size of your final encode or lower the quality.

The pulldown pattern you'll need to emulate is 2:2:3:2:3, which means the first frame is displayed, followed by the second, then the third, and then half the third again and half the fourth. After that the other half of the fourth plus half the fifth become one frame, followed by the entire fifth frame. Just like Pulldown, this will introduce judder to the video, but if you're used to watching NTSC video you probably won't even notice.

Here's an example script:
#Load Video and Audio Sources
Video = MPEG2Source("C:\Wherever\MyMpegFile.d2v")
Audio = DirectShowSource("Wherever\DGIndex_demuxed_audio.ac3")

#Join Video and Audio together
AudioDub(Video,Audio)

#Split frames into fields
SeparateFields()

#Put frames in correct order, including duplicates
SelectEvery(10, 0,1,2,3,4,5,4,7,6,9,8,9)

#Slow down from 60fps to 59.94fps
AssumeFPS(60000,1001,sync_audio=true).SSRC(48000)

#Resize fields to NTSC-compatible size
Spline36Resize(720,240)

#Interlace video frames
Weave()

Here's an example of that script in action.





Learn about using AviSynth to encode video
Encoding From DVD to AVC with AutoMKVUsing AviSynth 2.5Convert DVD to XviD with meGUI
DVD Rebuilder Free Basic OperationsAvsP - AviSynth Made Easy




Interlaced PAL to NTSC


There are many ways to convert between PAL and NTSC, and it's fair to say AviSynth can probably be used to accomplish most of them. For interlaced video it's especially nice to use because you can keep as much information as possible by using a process called Bobbing.


Bobbing


Bobbing is a special kind of deinterlacing that involves every frame being separated into individual fields, and each field being turned into a full size frame. It gives you twice as many frames as the original video source. By using a smart bobber like Yadif or SBDeint you can get very good results using this method.

#Load video source
MPEG2Source("C:\MyFolder\MyVideo.d2v")

#Smart bob to get 50fps video
sbdeint()


#ChangeFPS duplicates frames to reach the desired framerate
ChangeFPS(59.94)

#Separate new frames into fields
Separatefields()

#Alternate keeping the top field from one frame and bottom field from the next
SelectEvery(4,0,3)

#Resize fields to NTSC-compatible size
Spline36Resize(720,240)

#Weave fields back into interlaced video
Weave()








Continued On Page 5



The last section will get back to an easier method. Instead of actually changing the video's framerate, we'll look at using pulldown flags to make it play at the speed we want.


Next: MPEG-2 PAL to NTSC using Pulldown


Convert PAL to NTSCViewing Page 4 of 5 -- Go To
Written by: Rich Fiscus
Last updated: