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 > Capturing and Editing Video > Avisynth Development

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 12th August 2003, 08:24   #1  |  Link
zettai
Fascinated Lurker
 
zettai's Avatar
 
Join Date: Feb 2002
Location: Durham, UK
Posts: 243
New Function Request - Telecine()

Hi All,

Currently it is very simple to do a 23,976fps to 29.97fps conversion using seperatefields, selectevery and weave.

24 FPS with the field shuffle will make a 30 FPS video...
However, what if we want 29.97 but don't want to touch our audio stream and don't want a desynch?


every 100 seconds there is 2997 frames (29.97fps)
or every 100 seconds there is 3000 frames (30fps)
so... every 3000 frames, we have to remove 3... or in 1000 remove 1

so we have a 999 frame block of stuff... or a 995 + 4 block (this will be important in a second)

when we go from 24-30 we are going from 4-5 (995 is devisable by 5 ^_^)

so if we Telecine 796 frames, and leave 4 frames alone... 800 frames, which normally would translate to 1000 frames, instead translates to 999 frames... perfect....

now how to do this smoothly (the easy method would just to Telecine the first 796, then copy the last 4)

the longer than you can smooth over the frame transitions... the better the Telecine process is going to be
(which is why AA AB BC CD DD is better than AA BB BC CD DD )
So... what if the "solid" frames were 197, 398, 599, 800 out of every 800 frame block...?

So, in short the idea is to telecine every 196 frames, then copy one, then telecine 196, then copy one, then telecine 196, then copy one... etc...

the "solid" frames as i refered to them are the copied frames...

so technically this could be accomplished with

AssumeFrameBased()
SeparateFields()
a very long SelectEvery command ^_^ with 246 field settings
Weave()
AssumeFPS(29.97) [not sure if it would be required with selectevery]

However, a selectevery that big will get thrown out by avisynth.



A better option would be to have a plugin such as

Telecine(clip,fieldorder,outputframerate)

where possible output framerates are 25, 29.97 and 30 [and have a conditional telecine pattern for each common mapping]


Thoughts?
zettai is offline   Reply With Quote
 

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 01:34.


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