Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

 
Avisynth Dissolve Function
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
rjisinspired
Posted: Aug 27 2010, 06:31 PM


Advanced Member


Group: Members
Posts: 1256
Member No.: 20008
Joined: 12-October 06



I'm going by this:
http://avisynth.org/mediawiki/Dissolve

In my case I will be dissolving more than 2 clips. So far I had been trying with three and haven't succeeded in getting it right.

My script:
a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")
Dissolve(a, b, 30)
Dissolve(b, c, 30)

The first video ends up not showing, second video starts instead.

I've tried the "Last" parameter for the first video "A" but somehow the second video plays again.

Better yet, is there a script that will take say segmented video pieces and apply the dissolve at the joined parts?
 
       Top
dloneranger
Posted: Aug 27 2010, 07:10 PM


Moderator


Group: Moderators
Posts: 2366
Member No.: 22158
Joined: 26-September 07



If you read your script as
QUOTE
My script:
a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")
last=Dissolve(a, b, 30)
last=Dissolve(b, c, 30)
return(last)

You should see the problem
You're throwing away the first dissolve

(I hate that implicit 'last' and usually use variables instead)

How about
CODE

a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")

d=Dissolve(a, b, 30)
e=Dissolve(b, c, 30)

f=Dissolve(d, e, 30)

return(f)


--------------------
MultiAdjust JoinWav WavNormalize FFMPeg Input Plugin v1827 UnSharpMask
Windows7/8 Codec Chooser
All FccHandlers Stuff inc. Installers for acm codecs AAC, AC3, LameMp3
 
    Top
rjisinspired
Posted: Aug 27 2010, 07:59 PM


Advanced Member


Group: Members
Posts: 1256
Member No.: 20008
Joined: 12-October 06



Here is an example with 6 videos:

a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")
d = DirectShowSource("Vid.04.mp4")
e = DirectShowSource("Vid.05.mp4")
f = DirectShowSource("Vid.06.mp4")

g = Dissolve(a, b, 30)
h = Dissolve(b, c, 30)
i = Dissolve(c, d, 30)
j = Dissolve(d, e, 30)
k = Dissolve(e, f, 30)

Return(g + h + i + j + k)

Seems to work but the videos between the first and last repeat twice. Getting close.
though.

Once I get this down all I need are the fade parts on the start and ends which I can use the "fadeio" in avisynth for.
 
       Top
dloneranger
Posted: Aug 27 2010, 09:07 PM


Moderator


Group: Moderators
Posts: 2366
Member No.: 22158
Joined: 26-September 07



My mistake. The code I gave should have been
QUOTE

a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")

d=Dissolve(a, b, 30)
e=Dissolve(d, c, 30)

return(e)


Your second one should be
QUOTE

a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")
d = DirectShowSource("Vid.04.mp4")
e = DirectShowSource("Vid.05.mp4")
f = DirectShowSource("Vid.06.mp4")

g = Dissolve(a, b, 30)
h = Dissolve(c, d, 30)
i = Dissolve(e, f, 30)

j = Dissolve(g, h, 30)
k = Dissolve(j, i, 30)

Return( k)


or (same result, just a different way of writing it)

QUOTE

a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")
d = DirectShowSource("Vid.04.mp4")
e = DirectShowSource("Vid.05.mp4")
f = DirectShowSource("Vid.06.mp4")

g = Dissolve(a, b, 30)
h = Dissolve(g, c, 30)
i = Dissolve(h, d, 30)
j = Dissolve(i, e, 30)
k = Dissolve(j, f, 30)

Return(k)



This....
CODE
g = Dissolve(a, b, 30)
h = Dissolve(b, c, 30)
i = Dissolve(c, d, 30)
j = Dissolve(d, e, 30)
k = Dissolve(e, f, 30)
Return(g + h + i + j + k)

gives you doubled parts because...
g= a + b
h = b + c
put them together and its a+b+b+c
and so on
until you get
return a+b+b+c+c+d+d+e+e+f

--------------------
MultiAdjust JoinWav WavNormalize FFMPeg Input Plugin v1827 UnSharpMask
Windows7/8 Codec Chooser
All FccHandlers Stuff inc. Installers for acm codecs AAC, AC3, LameMp3
 
    Top
dloneranger
Posted: Aug 27 2010, 09:22 PM


Moderator


Group: Moderators
Posts: 2366
Member No.: 22158
Joined: 26-September 07



Just looking at the wiki page you gave

According to the specs
Dissolve(clip clip1, clip clip2 [,...], int overlap)
You should be able to

CODE

a = DirectShowSource("Vid.01.mp4")
b = DirectShowSource("Vid.02.mp4")
c = DirectShowSource("Vid.03.mp4")
d = DirectShowSource("Vid.04.mp4")
e = DirectShowSource("Vid.05.mp4")
f = DirectShowSource("Vid.06.mp4")

g = Dissolve(a, b,c,d,e,f, 30)

Return( g)


That's normally what the [,...] means "repeat as required"


--------------------
MultiAdjust JoinWav WavNormalize FFMPeg Input Plugin v1827 UnSharpMask
Windows7/8 Codec Chooser
All FccHandlers Stuff inc. Installers for acm codecs AAC, AC3, LameMp3
 
    Top
rjisinspired
Posted: Aug 27 2010, 10:37 PM


Advanced Member


Group: Members
Posts: 1256
Member No.: 20008
Joined: 12-October 06



Thanks! Both of those examples worked. I like the simpler one which was the last one though.

Now all I need to do is use the fade in to black and fade out to black which should be easy.

Before anything else, I will need to convert the MP4 segments to some other format. Loading 72 avc segments and you get an "out of memory" error, guess I don't have enough memory to load that many through avisynth, lol.
 
       Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
5 replies since Aug 27 2010, 06:31 PM Track this topic | Email this topic | Print this topic

<< Back to Advanced Video Processing