Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Announcements and Chat > General Discussion

Reply
 
Thread Tools Search this Thread Display Modes
Old 13th January 2020, 23:25   #1  |  Link
sonic41592
Registered User
 
Join Date: Jun 2019
Posts: 36
Mix of progressive, telecine, and interlace

I have an NTSC DVD source which has a mix of 29.97fps telecine, 29.97fps interlace, and 23.976fps progressive. Each episode is mainly telecine, but has some scenes sprinkled through it that are fully interlace and some that are fully progressive. I've searched for months for a method to analyze the video to isolate the three different formats and perform the proper decombing. I've looked into AnimeIVTC, but it doesn't recognize the source since the overall frame rate is 28.5fps. I've tried using handbrake with both deinterlace an detelecine on at the same time with ok results, but still not that great. The only other way I've seen, you have to manually enter the frame numbers for each section, but there's no way I can do that for every episode. Any help would be greatly appreciated.
sonic41592 is offline   Reply With Quote
Old 16th January 2020, 23:04   #2  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,829
You shouldn't get anything but 29.97fps from an NTSC DVD, except if you force decoding as "film", in which case it'd be 23.976fps. Are you encoding a DVD after ripping it with MakeMKV by any chance?

I haven't used AnimeIVTC much but it has a hybrid mode capable of a variable frame rate output. It uses the TIVTC plugin for that. I don't know how much better than doing it with TIVTC on it's own it'd be.

For the TIVTC plugin you'd run two passes for a VFR output, The first pass to write the metrics files would look something like this:
TFM(Output="D:\TFM.txt").TDecimate(Mode=4, Output="D:\TDec.txt", Hybrid=2)
and the second pass is something like this:
TFM(Input="D:\TFM.txt").TDecimate(Mode=5, Input="D:\TDec.txt", tfmin="D:\TFM.txt", mkvout="D:\Times.txt", Hybrid=2)
As soon as you open the second pass script, the timecodes file is created, and you can add it to the command line for x264 VFR encoding like this:
--tcfile-in "D:\Times.txt"

If done correctly, the interlaced sections will be de-interlaced to 29.97fps and the progressive/telecined sections will be 23.976, but that's just the basic idea. The plugins have numerous options, and they probably won't work properly until you're decoding at the correct frame rate to begin with.

If you're decoding with LSmash, you need to tell it to obey repeat flags or it ignores them and outputs the average frame rate. This should give you 29.97fps:
LWLibavVideoSource("D:\Video.mkv", Repeat=true)
for FFMS2 it's this:
FFVideoSource("D:\Video.mkv", RFFMode=1)
DGIndex obeys repeat flags by default.

The above are just suggestions to get you started, mainly if you're okay with a VFR encode, but for anyone to give you decent advice you really need to upload a sample somewhere.

Last edited by hello_hello; 25th January 2020 at 07:46.
hello_hello is offline   Reply With Quote
Old 17th January 2020, 02:43   #3  |  Link
sonic41592
Registered User
 
Join Date: Jun 2019
Posts: 36
Thank you for the advice. What you're describing is exactly what I'm looking for. You're right that I have ripped the DVD with MakeMKV in order to separate out the episodes for easier file management. Would it be better to work with the VOB file? I'm also using FFVideoSource as the decoder, so I'll add that RFFMode=1. Would this work for a sample?
https://mega.nz/#!7jRVwADT!QTFPK5oLI...XkTciv9MeSoiA4
So if I understand correctly, I would make a firstpass.avs file that looks like

FFVideoSource("Sample.mkv", RFFMode=1)
TFM(Output="TFM.txt").TDecimate(Mode=4, Output="TDec.txt", Hybrid=2)

then encode it with FFMpeg, then create a secondpass.avs file which uses the encode of the first pass as a source:

FFVideoSource("Sampleencode.mkv", RFFMode=1)
TFM(Input="TFM.txt").TDecimate(Mode=5, Input="TDec.txt", tfmin="TFM.txt", mkvout="Times.txt", Hybrid=2)

and encode that with FFMpeg using the --tcfile-in Times.txt in the command line?

Sorry I don't fully understand the two pass encoding steps, but thanks again for your help! This is very informative
sonic41592 is offline   Reply With Quote
Old 17th January 2020, 12:37   #4  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,829
I've never used ffmpeg for encoding, only the command line version of x264, so I don't know if it has all the same options. You can always encode at a constant frame rate (don't use the timecodes file when encoding) and add it to the output MKV instead.

It's probably better to work with vob files if you can as you can index with DGIndex. I remuxed your sample as a TS file with TSMuxer to play with it.

For the first pass you don't need to encode. You run the script so TIVTC can create the metrics files. That is, you just run an analysis pass. Some GUI's have that feature. AvsPMod & VirtualDub2 probably do. I use MeGUI. Once it's run be very careful not to open the first pass script again otherwise it'll overwrite the metrics files and you'll have to run the analysis again.

Mind you I'm not convinced the sample isn't pure telecine, or mostly telecined. There seems to be baked in aliasing in the individual fields in places, and that probably confuses TIVTC. By lowering TFM's threshold though, it seems to find most of it so it can use QTGMC to clean it up (you'll need to use QTGMC as an external de-interlacer as I don't think TFM's de-interlacing will cut it).

I haven't had a chance to play around a great deal, but here's some sample encodes. Someone else may have a way to clean the occasional frame on a scene change that looks like bad editing. One sample is straight decimation to a constant 23.976 frame rate. I threw some filtering at them I copied from another script so I'm not claiming any cleverness there, but the scripts I used and the metrics files etc are included in the zip file. Animation really isn't my thing. It'd be more accurate to say I hate it.

Samples.zip

PS. You should stick to a single thread, otherwise it gets confusing.

Last edited by hello_hello; 17th January 2020 at 12:46.
hello_hello is offline   Reply With Quote
Old 17th January 2020, 19:49   #5  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by sonic41592 View Post
You're right that I have ripped the DVD with MakeMKV
Mistake number one. Decrypt using a real decrypter and use MPEG2Source on the D2V file that results from indexing the VOBs in DGIndex.

DVDDecrypter (if this thing doesn't have modern encryption in it) can separate the episodes while decrypting. PGCDemux can separate the episodes once you have the DVD files decrypted to the computer.

Since you don't seem to be making another DVD, then just bob the whole thing to 59.94fps and save yourself all the headaches.
manono is offline   Reply With Quote
Old 31st August 2021, 17:03   #6  |  Link
Balling
Registered User
 
Join Date: Feb 2020
Posts: 541
Ffmpeg can do it... https://trac.ffmpeg.org/ticket/3968
Balling is offline   Reply With Quote
Old 1st September 2021, 05:24   #7  |  Link
Katie Boundary
Registered User
 
Katie Boundary's Avatar
 
Join Date: Jan 2015
Posts: 1,056
Quote:
Originally Posted by manono View Post
Mistake number one. Decrypt using a real decrypter and use MPEG2Source on the D2V file that results from indexing the VOBs in DGIndex.
Translation:

1) Use Smartripper to copy .VOB files from the disc to your hard drive

2) Index the .VOB files using GDindex. This will produce a .d2v file.

3) Load the .d2v file into AVIsynth using mpeg2source().
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers.
Katie Boundary is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 06:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.