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 October 2022, 16:23 | #1 | Link |
Registered User
Join Date: May 2022
Location: Brazil
Posts: 38
|
Replicating Telecine on AviSynth
I have a question about replacing old media (like i've been doing with DotCrawl++):
How i can properly redo an telecine of an 23.976fps film, into 60i, on AviSynth? As for anyone who doesn't know, Telecine was an old way to transferring video into film using interlacing and duplicated frames together. The most common technique is 2:3 pull-down. |
21st October 2022, 16:39 | #2 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,718
|
1. You generate the additional frames needed to go from 24 events per second to 60 events per second, but do this using the 1000/1001 conversion that is needed for NTSC video.
2. You convert frames to fields. 3. You remove every other field and then weave the remaining fields back together. This code assumes your video has been assigned to the variable "source" and returns the result in the variable "final." MFlowFPS is a function in the MVTools2 DLL. Code:
MFlowFps(source,super, backward_vec, forward_vec, num=60000,den=1001,ml=600) SeparateFields() SelectEvery(4, 0, 3) final=Weave() |
21st October 2022, 16:42 | #3 | Link | |
Registered User
Join Date: May 2022
Location: Brazil
Posts: 38
|
Quote:
|
|
21st October 2022, 17:27 | #4 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,718
|
Sorry. I just grabbed the key parts from a larger script and figured you would know how to do the rest. Here is a larger segment of that script and it should work as shown. You probably don't need the killaudio() statement. I included it because I used multi-threading (I deleted all those statements in the post below) to dramatically increase the script's speed, and MVTools2 didn't used to work well with multi-threading unless you eliminated the audio.
Code:
loadplugin("C:\Program Files\AviSynth 2.5\plugins\MVTools\mvtools2.dll") source=AVISource("e:\frameserver.avi").killaudio() super = MSuper(source,pel=2) backward_vec = MAnalyse(super, blksize=16, overlap=4, isb = true, search=3) forward_vec = MAnalyse(super, blksize=16, overlap=4, isb = false, search=3) MFlowFps(source,super, backward_vec, forward_vec, num=60000,den=1001,ml=600) SeparateFields() SelectEvery(4, 0, 3) final=Weave() return final |
21st October 2022, 18:47 | #5 | Link | |
Registered User
Join Date: Aug 2017
Location: Italy
Posts: 124
|
Quote:
Code:
AVISource("24fps.avi") SelectEvery(2,0,0,0,1,1).SeparateFields().SelectEvery(4,1,2).Weave()
__________________
A channel on S-VHS / VHS capture and AviSynth restoration https://www.youtube.com/channel/UCMs...h1MmNAs7I8nu4g |
|
21st October 2022, 18:55 | #6 | Link |
Registered User
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,597
|
Code:
ColorBars().ChangeFPS(24) #the 24fps source AssumeFPS("ntsc_film",true) #for 1000/1001 thing, it change the audio too ChangeFPS("ntsc_double") interlaced60or50(bff=false)
__________________
See My Avisynth Stuff |
21st October 2022, 20:25 | #8 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,718
|
reel.finder's solution is better than mine because it does what you asked and does the telecine by duplicating fields. I grabbed the wrong script because I was in a hurry. Mine will work, and it will match up with your other footage, but you won't get quite the same "feel" to the video as you do when fields are duplicated.
The one additional thing to add is that, depending on the field dominance in your other footage, you need to pay attention to the bff or tff flag in the "interlaced" line. Otherwise you will end up with some pretty nasty artifacts. Last edited by johnmeyer; 21st October 2022 at 20:30. |
22nd October 2022, 04:16 | #9 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,023
|
NOTE, in real.finder script,
Quote:
but will result in odd-non/std samplerate, you would normally follow it with ResampleAudio(OriginalAudioRate). or ResampleAudio(OriginalClip.AudioRate). AssumeFPS:- https://forum.doom9.org/showthread.php?t=184500
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
|
Tags |
avisynth, interlacing, telecine |
Thread Tools | Search this Thread |
Display Modes | |
|
|