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 Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 25th December 2014, 23:43   #701  |  Link
Music Fan
Registered User
 
Join Date: May 2009
Location: Belgium
Posts: 1,743
Yes I know (I wrote With 2,5 multiplication, you can't keep all original frames), that was another reflexion about quality (fluidity and artifacts), admitting multiply by 5 then divide by 2 is easier than x 2,5, but Interframe maybe does it internally when making x 2,5.
Music Fan is offline   Reply With Quote
Old 3rd January 2015, 08:01   #702  |  Link
SubJunk
Registered User
 
Join Date: Jun 2010
Posts: 443
InterFrame 2.7.0 is released! This releases adds a "Fastest" preset, for faster processing but lower quality.
SubJunk is offline   Reply With Quote
Old 13th January 2015, 23:11   #703  |  Link
mixmasterarne
Registered User
 
Join Date: Dec 2014
Posts: 3
Are there plans to add support for 4K content?
mixmasterarne is offline   Reply With Quote
Old 15th January 2015, 00:13   #704  |  Link
SubJunk
Registered User
 
Join Date: Jun 2010
Posts: 443
Quote:
Originally Posted by mixmasterarne View Post
Are there plans to add support for 4K content?
4k should work already, if AviSynth can handle it without running out of memory
SubJunk is offline   Reply With Quote
Old 25th January 2015, 03:13   #705  |  Link
aegisofrime
Registered User
 
Join Date: Apr 2009
Posts: 478
Hi SubJunk!

I routinely use QTGMC followed by InterFrame. I was wondering, is it possible to use the motion vectors generated by QTGMC for InterFrame to speed up performance?

Thanks!
aegisofrime is offline   Reply With Quote
Old 25th January 2015, 03:40   #706  |  Link
SubJunk
Registered User
 
Join Date: Jun 2010
Posts: 443
That would be really cool! I don't think so though, since InterFrame no longer uses MVTools2 like QTGMC does
SubJunk is offline   Reply With Quote
Old 18th February 2015, 07:30   #707  |  Link
TCmullet
Registered User
 
Join Date: Nov 2003
Posts: 365
Wow, I can't believe I survived reading/skimming this whole thread! I think I see "the light" better. The forum at SVP is not the place to discuss InterFrame; this thread is, even though it's merely a thread. I kinda thought there would be a whole forum section on it. And I now perceive that you, Subjunk are the author and not to be confused with Mag79 and the others at the SVP-Team, though you are on good terms and work "together".

So may I raise a question that's not been addressed? I was under the impression that I could do all my Avisynth processing in one script. But if I include "loop" commands to chop out footage before doing InterFrame, Virtualdub hangs. Then I observe that I have not seen anyone here using Interframe along with other actions such as "loop". Is it true that I must separate all other actions of certain types and keep the call to InterFrame all by itself? (Including with it ONLY things directly related to it, like SetMT stuff.) This makes for 2 processing runs, when I would have preferred one. Also, I observe that for many things, I must switch back to AS 2.5.8, then switch forward to 2.6 for InterFrame.
TCmullet is offline   Reply With Quote
Old 19th February 2015, 00:29   #708  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Can you check, should you be using Trim() rather than Loop(). [Loop repeats a section a number of times, default being 'almost endlessly'].

EDIT: Posting a small script exhibiting the problem is always a good idea (leaving out all unnecessary stuff which does not contribute to the problem).
__________________
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 ???

Last edited by StainlessS; 19th February 2015 at 00:46.
StainlessS is offline   Reply With Quote
Old 19th February 2015, 01:33   #709  |  Link
SubJunk
Registered User
 
Join Date: Jun 2010
Posts: 443
Quote:
Originally Posted by TCmullet View Post
Wow, I can't believe I survived reading/skimming this whole thread! I think I see "the light" better. The forum at SVP is not the place to discuss InterFrame; this thread is, even though it's merely a thread. I kinda thought there would be a whole forum section on it. And I now perceive that you, Subjunk are the author and not to be confused with Mag79 and the others at the SVP-Team, though you are on good terms and work "together".
I guess that can be a bit confusing since it has been a collaborative effort. I don't think any of us are really the sole author of anything since we have all iterated the work of others. I should probably add a polished version of something like the following to the first post:

This script started as some text being thrown around another forum by lots of people, and eventually I, along with some others like Widezu69, started doing extensive tests on the script trying to squeeze out all the quality we could. At the time, it used the AviSynth plugin called MVTools2 which has had various authors and contributors like Manao, Fizick, Tsp, TSchniede and SEt. We kept having lots of requests by people to tweak the script for their processor and so we established some good ways to reduce or increase CPU load without killing quality too much, and to make it easier I wrote a guide (in my signature) and developed InterFrame so people could modify those things themselves in a more readable way. Then SVP got released based on MVTools2 and it was faster than MVTools2, so I rewrote InterFrame to use SVP instead, and again collaborated with Widezu69 and some others along the way, and I'm on the SVP beta testing team so I get to communicate with Chainik and Mag79 about it there too.

Quote:
Originally Posted by TCmullet View Post
So may I raise a question that's not been addressed? I was under the impression that I could do all my Avisynth processing in one script. But if I include "loop" commands to chop out footage before doing InterFrame, Virtualdub hangs. Then I observe that I have not seen anyone here using Interframe along with other actions such as "loop". Is it true that I must separate all other actions of certain types and keep the call to InterFrame all by itself? (Including with it ONLY things directly related to it, like SetMT stuff.) This makes for 2 processing runs, when I would have preferred one. Also, I observe that for many things, I must switch back to AS 2.5.8, then switch forward to 2.6 for InterFrame.
StainlessS' response goes for me too
SubJunk is offline   Reply With Quote
Old 19th February 2015, 02:00   #710  |  Link
foxyshadis
ангел смерти
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Lost
Posts: 9,558
Quote:
Originally Posted by TCmullet View Post
Also, I observe that for many things, I must switch back to AS 2.5.8, then switch forward to 2.6 for InterFrame.
Unless you're using Deen or Dust, I can't imagine why you'd still need Avisynth 2.5.8. All of the plugins I use are compatible with 2.6.
foxyshadis is offline   Reply With Quote
Old 19th February 2015, 02:08   #711  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,664
Quote:
Originally Posted by foxyshadis View Post
Unless you're using Deen or Dust, I can't imagine why you'd still need Avisynth 2.5.8. All of the plugins I use are compatible with 2.6.
Deen works with 2.6. Dust is a 2.0 plugin (IIRC) and does not work with either 2.5.8 or 2.6. But yeah, there's not many good reasons to use Avisynth 2.5.8.
Reel.Deel is offline   Reply With Quote
Old 19th February 2015, 11:14   #712  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Quote:
Originally Posted by Reel.Deel View Post
Dust is a 2.0 plugin (IIRC) and does not work with either 2.5.8 or 2.6.
RD, So far as I'm aware, DustV5 should load with Kevin Atkinson
v2 C plugs loader (but it dont), are you aware of a reason for this ?
EDIT: Above is nonsense, is v2.0 CPP dll.

Is there any source (you seem to know where everything is )
__________________
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 ???

Last edited by StainlessS; 19th February 2015 at 16:24. Reason: edited
StainlessS is offline   Reply With Quote
Old 20th February 2015, 02:35   #713  |  Link
TCmullet
Registered User
 
Join Date: Nov 2003
Posts: 365
Thanks for all said. Turns out there were missing pieces of the puzzle and I have it working now. Let me answer each item relevant, after I post my script, which DOES work. (Actually, this is another video, but just like the prior one.)
Code:
# Uses AS 2.6.0.5
SetMemoryMax(512)
SetMTMode(3,4)
main=AviSource("D:/Video-Work/myVideoFile.504p.lag.pcm.avi")
main
DelayAudio(0.140)
#
# delete comm brks
loop(0,0,5)
loop(0,3972,5847)
loop(0,29260,32108)
loop(0,35660,37575)
loop(0,50447,53256)
loop(0,74336,77161)
loop(0,77352,79283)
loop(0,93587,97319)
loop(0,97604,101393)
loop(0,114267,116187)
loop(0,119848,121710)
loop(0,144678,144727)
ConvertToYV12()
SetMTMode(2)
InterFrame(Cores=2,Tuning="Film")
#InterFrame(Cores=2,Tuning="Film",FrameDouble=true)
Re: Using loop vs trim: I like the loop option that has 0 as the first of three operands. See my 2nd instance:
Code:
loop(0,3972,5847)
This deletes frames 3972 thru 5847, exactly what I want. Trim didn't seem to be as easy to code. (However, the AviSynth docs are often obtuse, at least to me.)

As far as VD hanging or crashing (yes, there were quasi-random crashes), that is solved via 2 changes:

1. I posted the crash dump at Virtualdub forum:
http://forums.virtualdub.org/index.p...&f=15&t=23198&
Learned I was still using a buggy version of FFInputDriver.vdplugin. Upon installing the current version, all problems go away, except one.

2. The one problem was that at same time I was experimenting with various InterFrame options. Bad idea to hastily change multiple items in a new dev environment. In the script above, the last line is a comment. If you swap-comment those last two lines such that you DO execute the one with FrameDouble, the script fails in one of two ways. If you have no file open in VD, it weirdly opens with no frames but VD says you have "Frame 18446744073709551276 (0:00:4294967291.4294" (This is in the window at the bottom). The other way was with the script the other way, the script open, and I try to F2 with the FrameDouble line activated. VD gave a hairy message about frame numbers being wrong, but I have not been able to recreate the condition, in order to report the text that VD gave.

So, adding the FrameDouble option, at least in this circumstance causes failure of the script to open properly. I guess this is a bug report for you, Subjunk.
TCmullet is offline   Reply With Quote
Old 21st February 2015, 16:05   #714  |  Link
TCmullet
Registered User
 
Join Date: Nov 2003
Posts: 365
FrameDouble error

Maybe I wrote too big a post. Subjunk, near the end, I reported to you a bug with FrameDouble.
TCmullet is offline   Reply With Quote
Old 21st February 2015, 17:15   #715  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
@TCMullet,
If you have a lot of ranges to trim out (especially if list is auto generated), then you might like to try a script provided in FrameSel plug, also has a
1 millisecond fade (default) between splices to avoid 'cracks' in audio (where trim occurs during loud-ish noise).

Script from FrameSel() : http://forum.doom9.org/showthread.ph...light=framesel
Code:
Function RejectRanges(clip c,String "SCmd",String "Cmd",Bool "TrimAudio",Float "FadeMS") {
    # RejectRanges() by StainlessS. Required:- FrameSel, Prune, RT_Stats
    # Wrapper to delete frames/ranges along with audio, can supply frames/ranges in SCmd string And/Or Cmd file.
    #   The wrapper makes for easier usage of Prune() which supports up to 256 input clips, but requires a clip index,
    #   eg '3, 100,200' would specify clip 3, range 100 to 200. The wrapper does away with the necessity for the clip index as we
    #   are only using a single clip here. Prune also does not have a 'reject' arg to delete specified frames rather than select them,
    #   this wrapper also converts a list of frames to delete into a list of frames to select so that we can use Prune and its audio
    #   capability.
    #
    # SCmd: Frames/Ranges specified in String (Frames/Ranges either Chr(10) or ';' separated, infix ',' specifies range, eg 'start,end').
    # Cmd:  Frames/Ranges specified in file (one frame/range per line, comments also allowed, see FrameSel for Further info).
    # TrimAudio:
    #   True(default), deletes audio belonging to deleted frames
    #   False, returns original audio, probably out of sync.
    # FadeMS: (default 1.0 millisec). Linear Audio Fade duration at splices when TrimAudio==true, 0 = dont fade (might result in audio 'clicks/cracks').
    c
    TrimAudio=Default(TrimAudio,True)   # default true trims audio, false returns original audio (audiodubbed, as Framesel returns no audio)
    FadeMS=Float(Default(FadeMS,1.0))   # 1 millisecond linear fadeout/fadein at splices
    PruneCmd = (TrimAudio) ? "~Prune_"+RT_LocalTimeString+".txt" : ""
    (!TrimAudio)
        \ ? FrameSel(scmd=SCmd,cmd=Cmd,reject=true)
        \ : FrameSel_CmdReWrite(PruneCmd,scmd=SCmd,cmd=Cmd,reject=true,Prune=True,range=true)
    (TrimAudio) ? Prune(Cmd=PruneCmd,FadeIn=True,FadeSplice=True,FadeOut=True,Fade=FadeMS) : NOP
    # If TrimAudio==true then delete Prune temp file, Else restore original Audio to the now audio-less clip
    (TrimAudio)
        \ ? RT_FileDelete(PruneCmd)
        \ : (c.HasAudio) ? AudioDub(c) : NOP
    Return Last
}

Function SelectRanges(clip c,String "SCmd",String "Cmd",Bool "TrimAudio",Float "FadeMS",Bool "Ordered") {
    # SelectRanges() by StainlessS. Required:- FrameSel, Prune, RT_Stats
    # Wrapper to Select frames/ranges along with audio, can supply frames/ranges in SCmd string And/Or Cmd file.
    #   The wrapper makes for easier usage of Prune() which supports up to 256 input clips, but requires a clip index,
    #   eg '3, 100,200' would specify clip 3, range 100 to 200. The wrapper does away with the necessity for the clip index as we
    #   are only using a single clip here.
    #
    # SCmd: Frames/Ranges specified in String (Frames/Ranges either Chr(10) or ';' separated, infix ',' specifies range, eg 'start,end').
    # Cmd:  Frames/Ranges specified in file (one frame/range per line, comments allowed, see FrameSel for Further info).
    #  *** NOTE ***, If both Cmd and SCmd supplied AND Ordered == False, then will process Cmd file and then SCmd string afterwards, ie
    #    Will select ranges in Cmd file and in order specified (rather than auto ordering ranges) and then append ranges specified in
    #    SCmd string (and in order specified).
    # TrimAudio:
    #   True(default), selects audio belonging to selected frames/ranges
    #   False, returns original audio, probably out of sync (maybe totally out of whack if Ordered == false and selected ranges out of order).
    # FadeMS: (default 1.0 millisec). Linear Audio Fade duration at splices when TrimAudio==true, 0 = dont fade (might result in audio 'clicks/cracks').
    # Ordered:
    #   True(default), all frames/ranges are returned in sequencial order. Any frame specified more than once will return only 1 instance.
    #   False, All frames/Ranges are returned in specified order, Cmd processed first and then SCmd. Frames/ranges specified more than once
    #     will return multiple instances. Allows out-of-order trimming of clip, eg re-sequencing of scenes in movie.
    #
    # Does not make much sense to select individual frames with audio, best used with ranges.
    # Will coalesce individually selected adjacent frames/ranges before any Fade, ie only audio fade where sensible to do so.
    # TrimAudio==false with non Ordered selection will result in completely out of sync audio.
    c
    TrimAudio=Default(TrimAudio,True)   # default true trims audio, false returns original audio (audiodubbed, as Framesel returns no audio)
    FadeMS=Float(Default(FadeMS,1.0))   # 1 millisecond linear fadeout/fadein at splices
    Ordered=Default(Ordered,True)       # True (default) frames/ranges will be Ordered and selected only once even if specified more than once.
                                        # False, frames/ranges returned in specified order, Cmd processed 1st and then SCmd.
    PruneCmd = (TrimAudio) ? "~Prune_"+RT_LocalTimeString+".txt" : ""
    (!TrimAudio)
        \ ? FrameSel(scmd=SCmd,cmd=Cmd,Ordered=Ordered)
        \ : FrameSel_CmdReWrite(PruneCmd,scmd=SCmd,cmd=Cmd,Ordered=Ordered,Prune=True,range=true)
    (TrimAudio) ? Prune(Cmd=PruneCmd,FadeIn=True,FadeSplice=True,FadeOut=True,Fade=FadeMS) : NOP
    # If TrimAudio==true then delete Prune temp file, Else restore original Audio to the now audio-less clip
    (TrimAudio)
        \ ? RT_FileDelete(PruneCmd)
        \ : (c.HasAudio) ? AudioDub(c) : NOP
    Return Last
}
The post limit is 16KB in user forum and 20KB in developer.
__________________
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 ???
StainlessS is offline   Reply With Quote
Old 21st February 2015, 18:07   #716  |  Link
TCmullet
Registered User
 
Join Date: Nov 2003
Posts: 365
Thanks, Stainless. Will keep this on file for possible future use. But for now the loop0 method of chopping out things is working perfectly. I generate it by hand, with a bit of copy/paste help in conjunction with Vdub's ctrl-g feature. So while I didn't type any numbers, I picked the start and end chop points manually in Vdub. It's working perfectly, and audio is fine.

The only thing that remained outstanding for me in this thread (at least right now) was to get into SubJunk's hands the bug report about FrameDouble's presence causing the script to bomb.
TCmullet is offline   Reply With Quote
Old 21st February 2015, 21:21   #717  |  Link
SubJunk
Registered User
 
Join Date: Jun 2010
Posts: 443
@TCMullet thanks for the bug report, but I don't think it's a bug in InterFrame. It may be a bug in Vdub.
FrameDouble only does one simple thing and that is toggle the framedoubling functionality in SVP, which InterFrame already uses by default for some content like PAL.

Do you get the error if you use a 25FPS input clip and don't use FrameDouble?
SubJunk is offline   Reply With Quote
Old 21st February 2015, 21:29   #718  |  Link
TCmullet
Registered User
 
Join Date: Nov 2003
Posts: 365
Quote:
Originally Posted by StainlessS
The post limit is 16KB in user forum and 20KB in developer.
Thanks for the numbers. But I only meant "too long" in the sense of having it full of stuff so that the small item at the end of it about FrameDouble might not have been noticed.
TCmullet is offline   Reply With Quote
Old 21st February 2015, 21:36   #719  |  Link
TCmullet
Registered User
 
Join Date: Nov 2003
Posts: 365
Quote:
Originally Posted by SubJunk View Post
@TCMullet thanks for the bug report, but I don't think it's a bug in InterFrame. It may be a bug in Vdub.
FrameDouble only does one simple thing and that is toggle the framedoubling functionality in SVP, which InterFrame already uses by default for some content like PAL.

Do you get the error if you use a 25FPS input clip and don't use FrameDouble?
I don't have any 25fps clips. But if you meant 'what happens if you don't use FrameDouble', I thought i answered that by saying that if you swap the '#' between these two lines, to choose which one will execute, the one without FrameDouble works and the one WITH it does not.

Code:
InterFrame(Cores=2,Tuning="Film")
#InterFrame(Cores=2,Tuning="Film",FrameDouble=true)
That is, I'm showing you both versions of the code. (I often keep code fragments around in comments.) The fact that taking FrameDouble out made it work, tells me that it's presence is a bug. I don't see how VDub could have any bearing. Oh, if it's not obvious, I DO realize it's usage was superflous as the default under the circumstances would be to convert from 29.97 to 59.94 anyway. I merely had preferred to include "FrameDouble=true" in the code so it would be more self-documenting.
TCmullet is offline   Reply With Quote
Old 21st February 2015, 23:15   #720  |  Link
SubJunk
Registered User
 
Join Date: Jun 2010
Posts: 443
Quote:
Originally Posted by TCmullet View Post
I don't have any 25fps clips. But if you meant 'what happens if you don't use FrameDouble', I thought i answered that by saying that if you swap the '#' between these two lines, to choose which one will execute, the one without FrameDouble works and the one WITH it does not.

Code:
InterFrame(Cores=2,Tuning="Film")
#InterFrame(Cores=2,Tuning="Film",FrameDouble=true)
That is, I'm showing you both versions of the code. (I often keep code fragments around in comments.) The fact that taking FrameDouble out made it work, tells me that it's presence is a bug. I don't see how VDub could have any bearing. Oh, if it's not obvious, I DO realize it's usage was superflous as the default under the circumstances would be to convert from 29.97 to 59.94 anyway. I merely had preferred to include "FrameDouble=true" in the code so it would be more self-documenting.
I understand you were showing both versions of the code. Using FrameDouble triggers a different part of the InterFrame code than not using it, if your input file is 29.97FPS, but it will use the same part of the code if your input file is 25FPS. So while you're right that your use of FrameDouble was superfluous, since it should result in the same FPS in the output, it does not use the same part of InterFrame and therefore does not pass the SVP DLLs the same instructions.

I can make a 25FPS test clip so we can narrow down the issue some more if you want.
SubJunk is offline   Reply With Quote
Reply

Tags
48fps, 60fps, framedoubling, interframe, smooth motion

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 09:20.


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