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. |
21st January 2011, 19:30 | #1 | Link |
ekTOMBE STUDIOS
Join Date: Dec 2005
Location: Cuba
Posts: 254
|
create 120 fps video -> dealing with vfr + interlaced
Let's say i have a vfr video with 29fps progressive sections, 29.97fps interlaced sections and 23.97fps pulldown sections.
Usually on animes i have interlaced credits, spliting the episode from the credits and procesing each part with tivtc and a good bober and merging again on mkv with edited time codes is not a big deal. But sometimes i find sources with many interlaced parts like 29.97i fades, pans, or wierd fx like smoke or particles or light that was created with CG and overlayed on the static scenes of the episode. Those sections look more fluid with a bob filter. Using a solution like this one is not possible becase of the many interlaced sections ramdonly placed on the clip: http://forum.doom9.org/showthread.ph...create+120+fps Any solution to automatize the process? My goal is to create a 120fps clip with the all the sections using frame duplication (since 24/30/60 are mults of 120) and after that use dedup with a timecode to delete the duplicated frames. My las resource is analyze the source using TFM and create an override file for tdeint based on the output of TFM (the progressive sections passed, and the interlaced frames touched by tdeint) split each section on and AVS script, duplicate frames up to 120, merge the segments and encode. The TFM output stats have all the information a need but maybe there is more automatized way to do this. thanks.
__________________
So, it works or not??? |
23rd January 2011, 10:06 | #2 | Link |
warpsharpened
Join Date: Feb 2007
Posts: 787
|
Why can't you just use tfm/tdecimate in the hybrid modes (2 pass I would guess would be preferable) and supply the timecodes file when muxing?
Seems pretty automated to me although it may not give ideal output in some cases (I don't think it can bob either) Last edited by TheRyuu; 23rd January 2011 at 10:10. |
24th January 2011, 19:13 | #3 | Link |
Registered User
Join Date: Feb 2009
Location: USA
Posts: 676
|
You can use tfm/tdecimate and lets it handle that for you. But personally I don't like the timecodes format it spits out (I prefer timecode V1) because its not always compatible with external players, such as my WDTV Live. But V1's run fine.
You -could- manually write an overrides file, or you could just use YATTA. It lets you do the same thing but with a GUI and lets you also mark frames for post processing, etc. It will also calculate and spit out V1 Timecodes for your project file and generate the Avisynth script to get your deinterlaced/decimated video stream. I wrote a Python script a while ago to speed that process up, but it has its drawbacks. It marks all your 30FPS sections for you in advance, although the process of getting the data moved around is somewhat manual. And re-opening your project can sometimes take a few minutes (i.e go eat a sandwich) http://forum.doom9.org/showthread.php?t=153102 Getting YATTA and specific filters can sometimes be a pain. If you are interested in giving this a go let me know and I'll just setup a working install for you and give you a download link. |
25th January 2011, 05:38 | #5 | Link | ||
Registered User
Join Date: Feb 2009
Location: USA
Posts: 676
|
Quote:
See this thread Matroska VFR Proof of Concept Quote:
In any case. I've given him a solution that is just as valid all the same, and IMHO more compatible if he has concerns about set-top media players. Last edited by osgZach; 25th January 2011 at 05:45. |
||
25th January 2011, 09:48 | #6 | Link | |
もこたんインしたお!
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
|
Quote:
Also, it could of course be a bug in the player's matroska parsing code in case of a non-standard timescale, f.ex., but that wouldn't be a case of "V2 timecodes is the problem!", to be honest, since you'd have to set that one by yourself. Also, you might just want to use mkvinfo and compare the internal timecodes of the video track in the final cases (mkvinfo -s filename.mkv outputs the timecodes of every frame for the given matroska file's tracks [yes, audio included]). Also, old mkvmerge versions had problems with timecode files (old bugs). Bringing this to a conclusion: You problem is most probably:
All I am asking is that before you start spouting out things that might stick as a "user myth" even if they are not true, please make sure you understand the things at hand and know the exact cause of the problem. Thank you.
__________________
[I'm human, no debug]
|
|
25th January 2011, 23:00 | #7 | Link |
Registered User
Join Date: Feb 2009
Location: USA
Posts: 676
|
Where can I specifically look to verify header compression on or off? Though chances are its probably not the issue as I don't recall ever using it... Be that as it may. A particular file I looked at was made back in 2004 with mkvmerge 0.9.2, IIRC.
I will do the following when I have some proper free time. (I have just done a case transfer and things are a mess). I still have some old files that give me specific problems, so I will take one, re-rip and make a VFR with TFM's auto method, mux it in with the latest release and see if it plays correctly or not. I'll also try and do some kind of thorough compare between the old and new mkvs. So we'll see what happens, or if any problems are resolved. Other than that, I don't see the need to be so dismissive. I outlined a specific problem that may be a special case; or may not. Time will tell Last edited by osgZach; 25th January 2011 at 23:03. |
26th January 2011, 20:48 | #8 | Link |
Registered User
Join Date: Feb 2009
Location: USA
Posts: 676
|
Alright. I ran a 2-pass mkv create (mode 4/ mode 5) with TFM/TDec and muxed two mkvs from it.
One with no header compression, and one with. The one with header compression would not even play (it would start the play screen, then exit immediately). And from what I could gleen from brief Googling, the issue with the WDTV and header compression is people complaining about audio files not playing (I'm guessing compression was not used on the video tracks). So in either case I think we can rule out header compression as the culprit. The one I made without compression enabled, played pretty much flawlessly from what I could tell. However I did not compare different timecode format ouputs, so I won't make any accusations either way about that, as I don't think its all that important anyway. I can stick with V1 if I want to be superstitious. I guess the problem with some of my older files, was the age of the tools? In either case now I'm at a different crossroads of sorts. I can't decide whether to continue my current programming project (very early testing, but assuming I don't lack the skill, it would be a tool like YATTA only much easier to use and with a half decent documentation), or to scrap that and instead focus on writing a simple GUI to ease the manual script creation process (I will be doing lots of batch encodes) of a 2-pass VFR MKV using TIVTC...lol I guess its a more preferable problem to files that won't play right. Last edited by osgZach; 26th January 2011 at 20:51. |
26th January 2011, 21:56 | #9 | Link | ||||
もこたんインしたお!
Join Date: Jan 2008
Location: Finland / Japan
Posts: 512
|
Quote:
Quote:
V2 timecodes usually come up when there can be a lot of different frame rates and the output is usually meant only to be handled by the computer (hence per-frame timecodes format). Albeit conversion applications do exist to convert between v1 and v2 timecode formats. Different tools for different usage scenarios. Quote:
Quote:
Although nowadays it is indeed true that we mostly have content that doesn't need as much detail and manual work with the process of IVTC itself. On the other hand YATTA's pattern guidance as well as area-based filtering features etc. would be spectacularly useful in a more user-friendly package (or at least with more "user-friendly" documentation).
__________________
[I'm human, no debug]
|
||||
26th January 2011, 22:55 | #10 | Link |
Registered User
Join Date: Feb 2009
Location: USA
Posts: 676
|
Yeah I was just thinking about that myself. Most days I work directly off DVD sources from more modern Anime, although I also own old and notorious (Lodoss War) or just troublesome (Gall Force, Dirty Pair Flash in particular) sets too. I really don't know a lot of stuff I am gonna have to try any understand at some point.. In terms of properly implementing/cloning some of YATTA's features (I never really used nor understood pattern guidance I guess. I did play around with switching patterns on a per scene basis though but I usually did more harm than good). Like for handling frame cutting and being able to cut accompanying audio files in the proper place without screwing it up - much less how to cut the files. Although in a lot of cases with stuff I don't know about, I am hoping I can find pre-existing tools that I could integrate into the program in some way. It will involve a lot of research for sure..
I think for basic goals... Basic VFR creation for non-troublesome sources will be a major step for this novice programmer. Having an "automatic mode" that just lets you setup some files, setup options for TFM/Tdecimate, setup a Clip2 external deinterlacer if you want, etc.. But then let you review it manually if you want to, so you can mark specific frames for decimation or keeping, deinterlacing, maybe even let you compare different field matching combinations and write those out to an OVR if you want, etc. The biggest feature I would hope to implement if it all comes together, would be a "Project Database System". I'm likely not going the text file route YATTA went, but will use an integrated SQLite database engine, and have all the data saved there, pretty much everything to do with file edits and other processing settings.. That way users could distribute project databases among each other, be it a single file or maybe a set of files from a series.. So if one person does all the hard work and wants to save everyone else the trouble, as long as they are working from the same source file/DVD/whatever all they have to do is load the project, run it, and hopefully the results will be identical! If I could get that paltry amount done, I would be very proud of myself.. Just getting an AVI to open and allow frame-based navigation has already involved heavy trial and error on my part, that is a long ways from finished.. I'm actually going against common practice and not manipulating frames with Avisynth directly - because I lack the skill to write a wrapper, much less understand the PureBasic Wrapper that Inc. wrote - on top of learning the Avisynth API. Since this will be a Windows only deal in the end (tied down to Windows by Avisynth obviously) I have been taking baby steps with the AVIFIL32.DLL and API. So far I can at least open an AVI file, get a frame count and the resolution. But I've yet to implement displaying it or working with a stream / frames directly. It does seem to load AVS scripts too, though! Wish me luck...lol. I'm sorely in need of it Last edited by osgZach; 26th January 2011 at 23:08. |
4th February 2011, 06:04 | #11 | Link |
ekTOMBE STUDIOS
Join Date: Dec 2005
Location: Cuba
Posts: 254
|
sorry for the delay:
osgZach: If Yatta can detect->mark->bob()->write correct timecode for interlaced sections (and of course ivtc the film sections and not-touch the 29.97 sections can you give me a quick tutorial? Thanks in advance (actually never found a comprensible tutorial about how to do certain tasks in yatta) PD: in fact im making a multi-use tool for compression , and im going to include a IVTC asistant and something like a comprensible YATTA. I have a working code that can open and seek AVS scripts on vb.net (and present the frame), if you want it, ill give it to you. I think StaxRip does the same (but more well written that mine of course). The tool will be like VisualStudio but with X264/Xvid and Avisynth + a wierd AVS editor If i can get it to work i will release it (maybe someone find it usefull) Rigt now im with the audio encoding tools. I think that you will end quickly if you write your own wrapper for avisynth using managed C++ cli. ............maybe someone here can write a .net windows forms control in c++ cli that can load and present AVS frames, it will be usefull for tools like megui or for VisualBasic users (like me). .........please wish you luck Megui has an avisynth wrapper but i cant get it to work
__________________
So, it works or not??? |
7th February 2011, 18:00 | #12 | Link |
Registered User
Join Date: Feb 2009
Location: USA
Posts: 676
|
Well it's not so much that YATTA can detect Interlaced vs Progressive and all that. It collects metrics from TFM or Telecide (or both) and the big part about YATTA is that it can be a very intensive manual process.. Although it does have tools for trying to match patterns, etc I think most people tend to work it manually and make the needed changes to frames individually, or by marking frame ranges (0 - 100, 150 - 300, etc).
I'm probably not the best person to teach you how to use YATTA though That and I haven't done any work with it for close to a year now. The big thing is learning to spot pattern changes and mark them accordingly. If you want to be extremely thorough, this means checking every frame in the source file with your own eyes. There really isn't anything that YATTA does that you couldn't do with Avisynth + Virtualdub as a visual aid for writing your script. YATTA just makes it a heck of a lot easier by automating some really boring repetitive tasks The problem with YATTA is that it has poor /possibly out of date documentation and does not appear to be actively developed. One of the reasons I decided to try writing my own tool. If you are already working on a tool as well, you may do just as well to continue doing that and program the functionality that you specifically want/need. That's what I intend to do at any rate, and why I haven't really used YATTA since. For what its worth, you can head over to Tritical's web site at http://web.missouri.edu/~kes25c/ and download his TIVTC package. It comes with example files on how to do a 2-pass VFR encode with Timecodes output and the results are usually pretty good. There are also other examples, such as how to call your own deinterlacer of choice, and a few other things. I have never worked with true interlaced sources, so I can't offer any advice on that. But if you are just IVTC'ing some Anime, assuming it hasn't been butchered by edits after Telecining, etc. Than the 2-pass VFR method will likely get you good results. It's dead simple as well, and goes quite fast as long as you are doing heavy filtering. I usually save to a lossless file using the hacked HuffYUV codec that supports YV12 color space. Then do my filtering, then final encode which gets muxed to MKV with the Timecodes TIVTC yields. Last edited by osgZach; 7th February 2011 at 18:03. |
Tags |
120 fps, tivtc, vfr |
|
|