Coverting Pal to NTSC?

Discussion in 'Amateur Video Production' started by John DH, Nov 20, 2004.

  1. John DH

    John DH Guest

    hi

    I am working on a project that requires me to produce NTSC DVD's for some
    friends in the USA. Can someone advise on the best way to convert my avi
    files in pal to NTSC. I am using tpmg for coding and DVD authoring and
    editing with adobe prem 6.1.

    Many Thanks

    John D
     
    John DH, Nov 20, 2004
    #1
    1. Advertisements

  2. John DH

    McAllan Guest

    hi
    This site seems to be down, but here is the Google cache...

    http://216.239.59.104/search?q=cache:Pd7JAi_zE5MJ:www.geocities.com/xesdeeni
    2001/StandardsConversion/+avisynth+standards+conversion&hl=en&start=2
     
    McAllan, Nov 20, 2004
    #2
    1. Advertisements

  3. : hi

    : I am working on a project that requires me to produce NTSC DVD's for some
    : friends in the USA. Can someone advise on the best way to convert my avi
    : files in pal to NTSC. I am using tpmg for coding and DVD authoring and
    : editing with adobe prem 6.1.

    I use AVISynth script that I wrote for myself to convert from PAL to NTSC.
    You need to download AVISynth from AVISynth.org. The script itself is
    doing an ok job, but I'm not too happy with it when there're some fast
    motions. I have a similar script going from NTSC to PAL which works great.
    Anyway here it is PAL2NTSC.avs.You need to customize it for your application
    though. For example
    I use AVISource("secam.avi"), but you may want to use your file name. Also I
    use 704x480 rather than 720x480 so you will have to change it.

    AVISource("secam.avi")
    SeparateFields()
    Weave()
    # comment the below line if the field order of the source is wrong (DV source for instance)
    ComplementParity()
    SmoothDeinterlace(doublerate=true)
    LanczosResize(704,480)
    # ConvertFPS(59.94) gives a bit smoother transition whereas ChangeFPS(59.94)
    # gives a bit more natural transition. Play with both see what is better.
    ChangeFPS(59.94)
    SeparateFields()
    # for DV output use SelectEvery(4,1,2)
    SelectEvery(4,0,3)
    Weave()
    ConvertToRGB(interlaced=true)

    --Leonid

    PS. If some AVISynth experts are willing to comment, feel free.
     
    Leonid Makarovsky, Nov 20, 2004
    #3
  4. John DH

    erratic Guest

    SmoothDeinterlace is rather old. KernelDeint's KernelBob function is
    better: http://www.videohelp.com/forum/viewtopic.php?p=1032865#1032865
    In that thread I also mention a Doom9 thread in which Xesdeeni writes:
    "All that being said, I was recently pointed to KernelDeint/KernelBob by
    scharfis_brain. I've modified my conversion script to use this instead,
    and the results are at least as good as with SmoothDeinterlacer. Also,
    they appear to be faster with the older script-based KernelBob. The
    above-linked version should be faster still. So while it pains me to say
    this, I'd recommend using KernelDeint instead."
     
    erratic, Nov 20, 2004
    #4
  5. :>SmoothDeinterlace(doublerate=true)

    : SmoothDeinterlace is rather old. KernelDeint's KernelBob function is
    : better: http://www.videohelp.com/forum/viewtopic.php?p=1032865#1032865
    : In that thread I also mention a Doom9 thread in which Xesdeeni writes:
    : "All that being said, I was recently pointed to KernelDeint/KernelBob by
    : scharfis_brain. I've modified my conversion script to use this instead,
    : and the results are at least as good as with SmoothDeinterlacer. Also,
    : they appear to be faster with the older script-based KernelBob. The
    : above-linked version should be faster still. So while it pains me to say
    : this, I'd recommend using KernelDeint instead."

    So what the script should look like?

    --Leonid
     
    Leonid Makarovsky, Nov 20, 2004
    #5
  6. John DH

    erratic Guest

    Simplified version of your Avisynth script:

    AviSource("secam.avi")
    KernelBob(order=1) # for TFF source, order=0 for BFF (DV)
    Lanczos4Resize(704,480)
    ConvertFPS(59.94) # or ChangeFPS if you prefer
    SeparateFields()
    SelectEvery(4,0,3)
    Weave()

    The script requires Avisynth 2.5.5 and the KernelDeint 1.5.2 plugin.
    According to 'scharfis_brain' (Doom9 forums expert) TDeint is even
    better than KernelDeint, but TDeint was about 4 times slower when I
    tried it.

    Also, ChangeFPS creates duplicate fields. You can test this by omitting
    the Weave() command and watching the script with VirtualDub. ConvertFPS
    doesn't create duplicate fields but inserts new blended fields instead.
    You'll have to decide for yourself what you prefer.
     
    erratic, Nov 20, 2004
    #6
  7. John DH

    erratic Guest

    Or LanczosResize(720,480) if your source is 720x576 of course.
    It's a good idea to add ConvertToRGB(interlaced=true) if your encoder is
    TMPGEnc (you already added that in the script you posted).
    For CCE ConvertToYUY2(interlaced=true) is recommended.
     
    erratic, Nov 20, 2004
    #7
  8. :>So what the script should look like?

    : Simplified version of your Avisynth script:

    : AviSource("secam.avi")
    : KernelBob(order=1) # for TFF source, order=0 for BFF (DV)
    : Lanczos4Resize(704,480)
    : ConvertFPS(59.94) # or ChangeFPS if you prefer
    : SeparateFields()
    : SelectEvery(4,0,3)
    : Weave()

    : The script requires Avisynth 2.5.5 and the KernelDeint 1.5.2 plugin.
    : According to 'scharfis_brain' (Doom9 forums expert) TDeint is even
    : better than KernelDeint, but TDeint was about 4 times slower when I
    : tried it.

    : Also, ChangeFPS creates duplicate fields. You can test this by omitting
    : the Weave() command and watching the script with VirtualDub. ConvertFPS
    : doesn't create duplicate fields but inserts new blended fields instead.
    : You'll have to decide for yourself what you prefer.

    Where do you get the plugins without source code?

    --Leonid
     
    Leonid Makarovsky, Nov 20, 2004
    #8
  9. : According to 'scharfis_brain' (Doom9 forums expert) TDeint is even
    : better than KernelDeint, but TDeint was about 4 times slower when I
    : tried it.

    I wanna try TDeint. http://www.avisynth.org/warpenterprises/ doesn't have
    it. Any clue?

    : Also, ChangeFPS creates duplicate fields. You can test this by omitting
    : the Weave() command and watching the script with VirtualDub. ConvertFPS
    : doesn't create duplicate fields but inserts new blended fields instead.
    : You'll have to decide for yourself what you prefer.

    The above applies if you go from PAL to NTSC, right?

    --Leonid
     
    Leonid Makarovsky, Nov 20, 2004
    #9
  10. John DH

    erratic Guest

    erratic, Nov 20, 2004
    #10
  11. John DH

    erratic Guest

    erratic, Nov 20, 2004
    #11
  12. John DH

    erratic Guest

    To clarify my earlier answer:

    Yes, some fields are duplicated with changefps when you convert PAL to
    NTSC because new frames have to be created.

    I don't think fields are duplicated when you convert NTSC to PAL because
    in that case frames/fields have to be removed, but I've never tried NTSC
    to PAL.
     
    erratic, Nov 20, 2004
    #12
  13. John DH

    erratic Guest

    And by the way, if you have questions about KernelDeint (KernelBob)
    you should post them in the KernelDeint thread in Doom9's forum:
    http://forum.doom9.org/showthread.php?&threadid=81322
     
    erratic, Nov 20, 2004
    #13
  14. John DH

    erratic Guest

    If you find Avisynth too complicated, you could buy ProCoder Express for
    about $60. It converts PAL to NTSC very well.
    http://www.canopus.us/US/products/procoder_express/pt_procoder_express.asp
     
    erratic, Nov 20, 2004
    #14
  15. : I don't think fields are duplicated when you convert NTSC to PAL because
    : in that case frames/fields have to be removed, but I've never tried NTSC
    : to PAL.

    I did with this script:
    AVISource("any filename.avi or vd.vdr")
    ConvertToYUY2(interlaced=true)
    SeparateFields()
    Weave()
    # comment the below line if the field order of the source is wrong (DV source for instance)
    ComplementParity()
    SmoothDeinterlace(doublerate=true)
    ConvertFPS(50)
    LanczosResize(704,576)
    SeparateFields()
    # for DV output use SelectEvery(4,1,2)
    SelectEvery(4,0,3)
    Weave()
    ConvertToRGB(interlaced=true)

    and it looked great. I'm trying TDeint now. Very slow. I will post results. Thanks.


    --Leonid
     
    Leonid Makarovsky, Nov 20, 2004
    #15
  16. John DH

    erratic Guest

  17. John DH

    erratic Guest

    Only necessary if your source is YV12 (MPEG-2 for example) or RGB.
    ConvertFPS requires YUY2. ChangeFPS supports YV12 and RGB also.
    Doesn't really do anything: separating the field and then weaving then
    back together doesn't change anything. Definitely not necessary with
    KernelBob or TDeint.
    Not necessary if you set the field order correctly in TDeint or
    KernelBob.
    With KernelBob or TDeint SelectEvery(4,0,3) always maintains the field
    order of the source (if set correctly in the first place).
    SelectEvery(4,1,2) changes the field order.

    If you omit the field order in TDeint's parameters it will use the field
    order that avisynth reports. The avisynth default is BFF but you can
    change it with the AssumeTFF() command, for example:

    AVISource("capture.avi")
    AssumeTFF() # informs avisynth that field order of the source is TFF
     
    erratic, Nov 20, 2004
    #17
  18. John DH

    John DH Guest

    Thanks

    I had a look at AVISynth, I'm going to give it a try. It does look a little
    more complex than I thought, but then so did TMPGenc until I got to grips
    with it.

    Cheers

    John D
     
    John DH, Nov 20, 2004
    #18
  19. : and it looked great. I'm trying TDeint now. Very slow. I will post results.

    Well, it took me quite a while to view the results. So I compared just
    deinterlace, KernelDeint and TDeint with ConvertFPS, ChangeFPS each. I honestly
    didn't see much difference between these 3. The only difference was of course
    with ChangeFPS vs ConvertFPS.

    Fast motions look jerky on all the conversions and there's nothing you can do.

    Recently I came across a VHS tape that was made for North America. The original
    footage was filmed in London, UK (PAL film). I captured it and thought maybe I
    could construct the the NTSC film out of it. No way. I looked at each frame and
    noticed that when they converted it for US market, they were putting 2 PAL
    fields into 1 NTSC field (yes, field - not frame) one after another smoothing
    every next one. The motion was actually smoother than what we were trying
    with AVISynth! But it still looked blury and ugly.

    --Leondi
     
    Leonid Makarovsky, Nov 29, 2004
    #19
  20. John DH

    erratic Guest

    I didn't see a significant quality difference between KernelDeint and
    TDeint, but KernelDeint (KernelBob) is much faster. However, after
    SmoothDeinterlace(doublerate=true) there's a double frame at the
    beginning of the file. You can test this by watching this script in
    VirtualDub:

    AviSource("capture.avi")
    SmoothDeinterlace(tff=true,doublerate=true)

    You will see that the first and second frame of the video are the same.
    That shouldn't happen. KernelBob and TDeint don't duplicate the first
    frame.
    They often do weird things to video when converting PAL<->NTSC.
    If you read the TDeint thread in Doom9's forum you'll notice that some
    people are trying hard to restore that kind of video to something that
    looks acceptable. The TDeint programmer is working on a new Avisynth
    plugin (old name TFM, new name TIVTC).
    http://forum.doom9.org/showthread.php?&threadid=82264&perpage=20&pagenumber=4
     
    erratic, Nov 29, 2004
    #20
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.