VideoHelp Forum




+ Reply to Thread
Results 1 to 5 of 5
  1. Hi,

    I have a Treo 650 (Palm OS 5) and am in the process of converting a number of video files to play on it using MMPlayer. After trying various settings, I have determined that the limitiations on this device have more to do with the frame rate than the bitrate.

    The screen on the 650 is 320x320, so I am resizing 4:3 material to 320x240 and 16:9 material to 320x180. I can play back 320x180 pretty well at 24 fps, but 320x240 plays much better at 20 fps.

    I have tried the "decimate by 2" setting in VD, but this gives a framerate of 12-15 fps, depending on my source. I was not happy with the results. I have also tried specifying a framerate of 20 fps in VD, but playback was kind of jerky, especially on scenes where the camera pans across a landscape (like at the beginning of nearly every episode of CSI).

    Given all of this, I have started testing with AviSynth and the ConvertFPS function. This is where I need some help.

    I have tried a few AVI files using the follow script:

    Code:
    AviSource("i:\test.avi") # Source is 640x480, 23.98 FPS
    ConvertToYUY2()          # This is required by ConvertFPS
    ConvertFPS(20)   
    ConvertToRGB             # Is this really necessary?
    ReduceBy2                # My source file is 640x480, 
                             # so this gets me to 320x240 for the Treo

    Does this look correct? It seems to be working but I want to ensure I am doing this the best possible way.

    My second issue is with some captured MPEG2 files that I also want to convert for the Treo. These were captured using a Hauppauge PVR 250 from a DirecTV (S-Video) source. Most of them are 720x480 and are interlaced, according to DGIndex. Here is a rough draft for my script:

    Code:
    DirectShowSource("NTSC_clip.mpg") # Clip is 720x480, 29.97 FPS
    Bob(height=480)                   # Separate fields and interpolate them 
                                      # to full height.
    BicubicResize(640,480)            # In other conversions, I read it was better 
                                      # to do this followed by the ReduceBy2 below 
                                      # rather than resize in one step.  True?
    ConvertFPS(40)                    # I want the end result to be 20 FPS 
                                      # for the Treo
    SeparateFields.SelectEvery(4,0,3) # Undo Bob, even field first. 
                                      # Would SelectEvery(4,1,2) for odd fields 
                                      # be better?
    Weave                             # Finish undoing Bob
    ReduceBy2                         # I want the result to be 320x240
    Do I really need the Bob, Weave, and SeparateFields commands? Thanks for any advice. I am pretty new to AviSynth.
    Quote Quote  
  2. The first script looks OK to me.
    The second script can be improved.
    Run mpeg file from PVR250 (I assume it is an mpeg2, right?) through DGIndex and save d2v project. Then change in the script Directshow source(bla-bla.mpg) with Mpeg2source(bla-bla.d2v)
    With this script you try to keep the interlace input as interlaced output. The problem is that Reduce by 2 will throw away one of the fields - then all the attempt to keep interlacing is void. If you want really to keep it interlaced you should keep also the full vertical resolution. As it is not suitable for your device for playback then it is better (maybe! not sure) to separate fields and selecteven or odd. Then resize to 320x240.
    Should look something like
    Code:
    Mpeg2source("NTSC_clip.d2v") # Clip is 720x480, 29.97 FPS
    SeparateFields()                   # Separate fields 
    Selecteven()                           # Here you can Selectodd() also
    BicubicResize(320,240)            #It is beter to resize so here as the clip is already x240
    ConvertFPS(20)                    # I want the end result to be 20 FPS
                                      # for the Treo
    Also get sure that the source is not telecined. If so you may found Decomb filter usefull - look at doom9 for guides how to proceed with it.
    Quote Quote  
  3. Thanks for the reply. I'll try your script later.

    I know the original source is interlaced, since I am using S-video to connect to my capture card. The card, a Hauppauge PVR-250 does hardware MPEG-2 encoding. I can set my encoding parameters to be interlaced or not interlaced, but this is where I am getting lost.

    The machine doing the capturing is an HTPC in my living room connected directly to my SDTV using the S-video out on my Radeon video card. This is the primary job for this machine.

    Should I allow the encoder to de-interlace at capture time? Most playback will be interlaced anyway, since this will be on an SDTV, so I am not sure what the pros/cons are.
    Quote Quote  
  4. This is not hint that the source is interlaced (I mean realy interlaced NTSC video) or telecined. You can check this loading the source in VDubMod and advanced frame by frame. If you have patern of 3 progressive frames followed by 2 interlaced then it is telecined 23.976 to 29.97 (3:2 pulldown, eh). If every frame show interlacing artefacts (combs) then it is true interlaced 29.97. Now if it is telecined with Decomb filter for avisynth you can get back 23.976 progressive frames - and directly resize them. If it is true interlaced - simpy use separatefield().selecteven() and resize.
    I have the same card and use it quite often but I am in pal area - so here is not so complicated But from my experience it is not bad to use also some denoising routines in avisynth for the captures. Very promising is LRemovedust.avsi function. You may want to search at doom9 for it. Think that if the source is progressive even if the card set to interlaced encoding the both fields of the frame will match and there are no artefacts visible.
    Deinterlacing especially when is not proper done will lead to blur, lack of some details. Anyway, 320x240 will lead also to lack of details.
    Quote Quote  
  5. Originally Posted by Abond
    This is not hint that the source is interlaced (I mean realy interlaced NTSC video) or telecined.
    Thanks for your help. I was (mistakenly) under the impression that since the output from the DirecTV receiver is analog, that the only possiblity was for pure interlaced output. You helped me to learn otherwise!

    I look at two different captures, both interlaced, and both recorded from DirecTV using identical Hauppauge PVR 250 settings. One of them, a commercial from the Superbowl, was telecined. It was restored perfectly using Telecide(). The other capture, a clip from a live basketball game, was pure interlaced.

    I also found that if I used DirectShowSource the FPS was wrong (30.00 vs. 29.97) and that Telecide() would not work. Using DGIndex and mpeg2source everything was fine.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!