Posts: 24
Threads: 4
Joined: Nov 2021
First of all, I want to make a compliment on this fantastic software.
Many times I tried to get QTGMC deinterlacing with Avisynth working.... Hours of youtube video's I spent, but it simply was to difficult....
But then somebody pointed me to Hybrid, being able to do QTGMC de-interlacing, and it works easily and perfectly! Great job !
Now my 2 questions:
When selecting QTGMC, there is the possibility to first analyze the content regarding interlacing.
I have done this, but this analysis process takes some time (having to wait for 5 minutes before being able to add the job to the queue), and I wonder if this extra step should be taken or not? In other words: If I do not analyze the video beforehand, and simply start the de-interlacing job (preset slow), will Hybrid do the analysis itself (good) when starting the job?
Or is there the possibility to have Hybrid do the analysis at the start of the job?
Specifically Hybrid says:
If the normal headers indicate a wrong input scan type and the interlace detection of Hybrid also fails you, you can use this option to overwrite the current input scan type.
But what does this mean in practice? I just want to de-interlace DVD material... Will the normal Hybrid interlace detection always work well in those cases?
And what happens if Hybrid chooses the wrong type of de-interlacing?
My second question is actually more a remark...
The de-interlacing always is done in 2 passes.... But in the job status, it is not shown with which pass Hybrid currently is busy with, atleast I could not find this.
Maybe this should be added?
Anyway, Hybrid is great and works perfectly... I really love the possibility to add jobs to the batch, and OMG how beautiful is QTGMC de-interlacing.
It makes the result more beautiful than the original!
Posts: 10.928
Threads: 56
Joined: May 2017
Hybrid will only deinterlace is the scan order indicated by the headers of the input indicate that the input is inderlaced or you overwrite the the scan order to bff or tff.
Deinterlacing progressive content can cause artifacts.
Aside from analysising the input you can manually look at the content and decide whether deinterlacing is necessary or not.
Quote:The de-interlacing always is done in 2 passes.... But in the job status, it is not shown with which pass Hybrid currently is busy with, atleast I could not find this.
Maybe this should be added?
What makes you think de-interlacing is done in 2 passes ?
Yes, there are methods that use 2pass deinterlacing, but usually deinterlacing is a 1pass method. All the deinterlacing methods Hybrid offers are 1pass deinterlacing methods.
Cu Selur
Posts: 24
Threads: 4
Joined: Nov 2021
Selur, thank you for the answer, but I still do not know whether I should analyze the source material or not....
So let me ask it in a different way:
If I want to de-interlace DVD's (bought 10 years ago), should I always first analyze the material?
Maybe I should also mention that I always first use DVDfab to rip the DVD's to mkv files. (lossless)
As far as I understand now, Hybrid will use a de-interlacing method according to the information that Hybrid finds in the header of the source material.
I reckon that VOB files always have this header where this information is stored... But do MKV files also have this header?
So, assuming that VOB files from DVD always have this header (where the interlacing info is stored), then analysis of VOB files should never be needed?
Posts: 10.928
Threads: 56
Joined: May 2017
24.11.2021, 16:58
(This post was last modified: 24.11.2021, 17:00 by Selur.)
If you remuxed your content and DVDFab does a decent job for the remuxing it should properly set the flags of the video stream.
You can simply open one of your mkv files in Hybrid and look at what scan type is shown on the Base-Tab.
Assuming the output is not set to be encoded interlaced:
If the scan type is 'progressive' then Hybrid will not deinterlace.
If the scan type is 'hybrid', 'top field first','bottom field first' or 'interlaced' Hybrid will deinterlace.
If the scan type is 'telecine' or '(soft) telecine' Hybrid will apply IVTC.
If the content is it the scan type is 'hybrid', 'top field first','bottom field first' or 'interlaced' and 29.97fps Hybrid will warn that the content might be wrongly flagged since most commercial 29.97 content usually is telecined and not interlaced.
The analysis is a heuristic and it can be wrong, the only reliable way is to look at the content yourself. (The analysis is based on some old code I wrote years ago see: https://github.com/Selur/MPlayerInterlaceDetection)
Here's a short overview how to figure out whether the content is progressive/interlaced/telecined/mixed:
Quote:If you overwrite the scanorder to 'progressive' and the Vapoursynth Preview shows no combing the content is progressive.
If you leave the scan order (tff or bff) and bob deinterlace the content (in example using QTGMC + Bob) and look a the frames:
If each frame is different then the content is interlaced.
If you see a 3 different and 2 identical frames the content is telecined.
If you see another pattern of different and identical frames the content is mixed.
Typical interlace patterns:
- content is progressive:
- applying AssumeTFF().Bob()* you will see: stop -> forward_movment -> stop -> forward_movement **
- applying AssumeBFF().Bob()* you will see: stop -> forward_movment -> stop -> forward_movement **
- content is field shifted:
- applying AssumeTFF().Bob()* you will see: backwards_movment -> forward_movment -> backwards_movment -> forward_movment **, ***
- applying AssumeBFF().Bob()* you will see: forward_movment -> stop -> forward_movement -> stop **, ***
- content is interlaced TFF:
- applying AssumeTFF().Bob()* you will see: forward_movment -> forward_movment -> forward_movment -> forward_movement **
- applying AssumeBFF().Bob()* you will see: forward_movment -> backwards_movment -> forward_movement -> backwards_movment **
- content is interlaced BFF:
- applying AssumeTFF().Bob()* you will see: forward_movment -> backwards_movment -> forward_movement -> backwards_movment **
- applying AssumeVFF().Bob()* you will see: forward_movment -> forward_movment -> forward_movment -> forward_movement **
- content is interlaced XFF with blending:
- same as the corresponding interlaced pattern, but you will also see some blended (= ghosted) frames in-between
- content is telecine:
- applying AssumeVFF().Bob()* you will see 3 times forward_movement 2 still frames
- content is mixed:
- applying AssumeVFF().Bob()* you will see a mix of any of the above -> Muahaha, time to kick whoever produced the content
* in Hybrid you would use QTGMC+Bob
** then moving through the content
*** or vice versa
There are still some other possible outcomes but those will require more knowledge and ususally can't be dealt with a generalized automated way.
Cu Selur
Posts: 24
Threads: 4
Joined: Nov 2021
Thanks Selur,
At the Base-tab in the video box, there indeed is shown what kind of interlacing has been used in the source video. This is very useful information provided by Hybrid
So, as long as Hybrid detects some type of interlacing there, I will not analyze the video. Of course, I will check the result whether the de-interlacing worked out well.
Concerning my remark about the 2-pass job of de-interlacing.....
I actually meant the 2-pass job of the x264 encoding
The encoding process is done in 2-passes... And in the job status, there is no indication of which pass Hybrid is currently busy with..
A job exists of 2 passes, and if each pass takes 2 hours then this job will run for 4 hours, without indicating whether it is the first or the second run (Hybrid only displays the remaining time of the current run). This makes it difficult to see what is the total remaining time of that job.
Posts: 10.928
Threads: 56
Joined: May 2017
24.11.2021, 19:37
(This post was last modified: 24.11.2021, 19:38 by Selur.)
Since 1st pass and 2nd pass of encoding methods often differ a lot in their speed there is no may to predict how long it would take to run 2passes,...
You can clearly see which subjobs are processed and at which percentage of the processing they are in the Jobs-tab.
I don't see any way to predict how long the processing of a job (with all it's subjobs) would take.
-> nothing I can change about it.
Cu Selur
Posts: 24
Threads: 4
Joined: Nov 2021
Ahh, in the Jobs tab, clicking on the arrow before the job (or double-clicking on the job), the different sub-jobs will be opened.
Then one can see all the different sub jobs...
OK, if it is not possible to give an indication of the progress of all the jobs, I understand.
Thank you for your great support and your fabulous integration of QTGMC !
Posts: 1
Threads: 0
Joined: Feb 2022
Selur,
I saw this great info about detecting interlace DVDs and went to the link for your script ( https://github.com/Selur/MPlayerInterlaceDetection), but am a Windows user and not sure what to do with this. Can you inform me how to use this? Currently, I have VapourSynth Editor r19 & Python installed, that's about it. I am amazed that as long as DVDs have been out, there isn't a 1-click detection to analyze a DVD. I just bought the remastered DVD collection of Gunsmoke (20 seasons, 163 DVDs, over 250 episodes. I want to make sure I get this correct the first time Any assistance you provide is greatly appreciated
Posts: 10.928
Threads: 56
Joined: May 2017
23.02.2022, 15:27
(This post was last modified: 23.02.2022, 15:46 by Selur.)
Okay, doesn't really belong to this thread, but I'm to lazy to move it to a speparate thread atm.
MPlayerInterlaceDetection can only analyse only files not a dvd so you could analyse a singe vob with it.
Also note that MPlayerInterlaceDetection uses a heuristic. (and is 10+ years old)
FFmpeg nowadays also has idet as filter, see:
http://www.aktau.be/2013/09/22/detecting...th-ffmpeg/
and
https://www.ffmpeg.org/ffmpeg-all.html#idet
but that also only works on files.
Sadly mplayer isn't developed any more.
MPV should be able to open DVDs and run idet, see: https://github.com/mpv-player/mpv/blob/m...LS/idet.sh
=> The only reliable way is to look at the fields or the bobbed content with your own eyes. (How I would do it is described in the earlier posts of this thread)
Especially if it's not a decision between progressive and 'not progressive'.
Cu Selur
|