VideoHelp Forum
+ Reply to Thread
Results 1 to 13 of 13
Thread
  1. Hello and thanks in advance for any help . I posted here because none of the threads mentioned AviSynth; please move this thread to it's proper place, if necessary (and thank you). My question is about AviSynth's internal parity value with regards to TIVTC, specifically the field order options for TFM: is there any reason--speed, quality, anything--to not simply choose "Order=-1" ("auto (use avisynth's internal parity value)", according to the TFM html file), as opposed to selecting bottom field first ("Order=0") or top field first ("Order=1)? That is, does AviSynth's internal parity value do a proper job of field selection or is it better to actually define the field? I ask because I've some episodic sources that seem to change field order with neither rhyme nor reason, and it would save me much effort if "Order=-1" resulted in the same quality, at the same speed, as actually choosing a field order. Thanks again for any help.
    Last edited by LouieChuckyMerry; 8th Jun 2015 at 23:28. Reason: Clarity
    Quote Quote  
  2. If the source filter doesn't tell AviSynth what the field order is AviSynth will assume BFF. So if your source is switching between BFF and TFF and the source filter isn't flagging it you're out of luck.
    Quote Quote  
  3. Originally Posted by jagabo View Post
    If the source filter doesn't tell AviSynth what the field order is AviSynth will assume BFF. So if your source is switching between BFF and TFF and the source filter isn't flagging it you're out of luck.
    So, for all intents and purposes, "TFM(Order=-1)" is always the same as "TFM(Order=0)"?
    Quote Quote  
  4. Formerly 'vaporeon800' Brad's Avatar
    Join Date
    Apr 2001
    Location
    Vancouver, Canada
    Search PM
    No. If your source is MPEG-2 and you use MPEG2Source, the field order is flagged based on the input and can change frame-by-frame. What TFM uses for order=-1 is the same as what you see if you check with Info().

    Jagabo is talking about other filters like AVISource that can't determine field order by themselves.
    Quote Quote  
  5. Thank you both for your replies and my apologies, I think that I was unclear in my original post. The situation:

    1) I'm encoding individual episodes from ripped DVD's that are interlaced MPEG-2 video, using FFMS2 and FFVideoSource.

    2) The field order, according to MediaInfo and and MPC-BE, is inconsistent episode to episode, even on the same disc; for example, five episodes on a single DVD might be BFF, BFF, TFF, BFF, TFF.

    3) To save time, can I use the following TIVTC script for every episode, achieving correct results, or do I need to specify BFF or TFF for every episode:

    Code:
    TFM(Field=0,Mode=5,PP=1,Slow=2,CThresh=4)
    TFM(Field=1,Mode=5,PP=1,Slow=2,CThresh=4)
    TFM(Order=-1,Slow=2,CThresh=4)
    TDecimate(Mode=1,Cycle=15,CycleR=3)
    4) If I do need to specify field order for each episode, then is there a foolproof () method to determine field order that doesn't involve creating an "Info()" script for each episode?


    Sorry for the confusion, thanks for your time .
    Last edited by LouieChuckyMerry; 9th Jun 2015 at 06:57. Reason: Clarity
    Quote Quote  
  6. The ffmpeg source filter flags the correct field order when used to open MPG files.

    The easiest way to determine the field order for yourself is to use the Bob() filter:

    Code:
    AviSource("filename.avi)
    AssumeTFF()
    Bob()
    Step through the result frame by frame, especially a panning shot where the motion is very obvious. If the you see back-and-forth motions the video is BFF.
    Quote Quote  
  7. Originally Posted by jagabo View Post
    The ffmpeg source filter flags the correct field order when used to open MPG files.
    So this means that with an FFMPEG source, using TFM(Order=-1) will always choose the correct field? Sorry if I'm a bit obtuse, but I want to be certain (and I'm not paranoid ).


    Originally Posted by jagabo View Post
    The easiest way to determine the field order for yourself is to use the Bob() filter:

    Code:
    AviSource("filename.avi)
    AssumeTFF()
    Bob()
    Step through the result frame by frame, especially a panning shot where the motion is very obvious. If the you see back-and-forth motions the video is BFF.
    Awesome, thanks jagabo; another new trick for my bag! I don't deal in avi's, but:

    Code:
    LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\ffms\ffms2.dll")
    FFVideoSource("SourcePath.mkv")
    AssumeTFF()
    Bob()
    and

    Code:
    LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\lsmash\LSMASHSource.dll")
    LWLibavVideoSource("SourcePath.mkv")
    AssumeTFF()
    Bob()
    both work. For anyone bumping into this thread, it's quite obvious in MeGUI's preview window: if either of the above is opened and the source is BFF, then the play back stutters terribly; if either of the above is opened and the source is TFF, then the playback is normal (albeit possibly slow, depending on the script).
    Last edited by LouieChuckyMerry; 10th Jun 2015 at 02:56. Reason: Clarity
    Quote Quote  
  8. Originally Posted by LouieChuckyMerry View Post
    So this means that with an FFMPEG source, using TFM(Order=-1) will always choose the correct field?
    I wouldn't say always. It's possible a video was encoded with the wrong field order, for example. And some file types don't flag the field order or even indicate the source is interlaced -- like AVI.
    Quote Quote  
  9. Originally Posted by jagabo View Post
    I wouldn't say always. It's possible a video was encoded with the wrong field order, for example. And some file types don't flag the field order or even indicate the source is interlaced -- like AVI.
    Ahhh, OK, so AviSynth's internal parity value determines how to attack the entire source based on information at the beginning of the source. I was thinking (hoping, ha ha) that AviSynth's internal parity value was checking every individual frame it processed, and was thus very handy for those cases where the source wasn't strictly BFF or TFF. Actually, as I type that I wonder: is that even possible, a source that fluctuates between BFF and TFF? And the question: if I stick with FFMS, FFMPEGSource, and mkv's, then will "TCM(Order=-1)" serve me well (provided the source isn't corrupted)? Now to bed and dreams about AviSynth...
    Quote Quote  
  10. Again, it's the source filter that sets the field order flag (or not). In the absence of any field order information from the source filter AviSynth assumes BFF.

    Yes, it's possible for a video to switch back and forth between TFF and BFF. I don't know if the ffmpeg source filter detects that properly, of if it just looks at the field order at the start and assumes the entire video is that way.
    Quote Quote  
  11. DGIndex for MPEG2 sources will detect and attempt to correct the field order transition

    TFM can read the information from the d2v file

    e.g

    TFM(d2v="myd2v.d2v")
    Quote Quote  
  12. Yes, I always use DgIndex and Mpeg2Source() for MPEG 2 files. Note that it doesn't always handle MPEG 2 in MKV correctly. In those cases I demux the MPEG 2 to an elementary stream first.
    Quote Quote  
  13. Yes, it's very buggy with MPEG2 in MKV. But you can improve FFMS2 handling of MPEG2 in MKV by honoring the rff flags, rffmode=1

    (But I would still use DGIndex on elementary .m2v, it's just more consistent)
    Quote Quote  



Similar Threads

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