View Full Version : Making the Dissolve effect with Overlay and Animate?
konstantin1
18th March 2017, 21:54
When I am using Dissolve filter in my script, I always get "Unhandled exception: page fault" (crashes) in Linux with Wine.
I have tried two versions of avisynth.dll / devil.dll (2.6 and avisynth+) and two different versions of FFMS2 (one of them is the latest).
So I decided to omit Dissolve or substitute it with a similar filter. I think it could be imitated by Overlay and Animate. How can I do that?
pinterf
18th March 2017, 22:07
Exception means bug in software (mostly), could you post your script, or shorten it until exception still occurs?
konstantin1
18th March 2017, 22:12
Of course, I can post my script, very simple:
loadplugin("ffms2.dll")
v=ffvideosource("video.wmv")
a=ffaudiosource("video.wmv")
c=audiodub(v,a)
c1=c.trim(7*30,24845-7*30).crop(0,0,-86,-0)
c2=dissolve(c.trim(24845-7*30+1,24845-7*30+1+60).crop(0,0,-86,-0),c.trim(24845+5*30,24845+5*30+60).crop(86,0,-0,-0),61)
c3=c.trim(24845+5*30+60+1,39170-7*30).crop(86,0,-0,-0)
c4=dissolve(c.trim(39170-70*30+1,39170-7*30+1+60).crop(86,0,-0,-0),c.trim(39170+7*30,39170+7*30+60).crop(0,0,-86,-0),61)
c5=c.trim(39170+7*30+60+1,42107).crop(0,0,-86,-0).fadeout(60)
c2++c4
#c1++c2++c3++c4++c5
Temporarily I redefined "dissolve" as
function dissolve(clip1,clip2,length)
{
clip1.fadeout(length/2)++clip2.fadein(length/2)
}
But not as good as a real dissolve...
I used avs2yuv.exe, avs2pipe_gcc.exe, makeavis.exe and an avisynth enabled version of ffmpeg.exe (zeranoe) to render the script. I think problem is with the audio part, as avs2yuv.exe doesn't make page fault exception, unlike the other three application. When I try to extract the audio or render the script with audio in that case I get the page fault exception.
wonkey_monkey
18th March 2017, 22:18
It doesn't look that simple! Does it work if you remove all the trims and crops? What if you replace the source(s) with c=blankclip()?
konstantin1
18th March 2017, 22:36
When I am using this another temporary - and more acceptable - workaround, then it works, no page fault exception:
function dissolve2(clip1,clip2,length)
{
v=dissolve(clip1.killaudio(),clip2.killaudio(),length)
a=clip1.fadeout(length/2)++clip2.fadein(length/2)
audiodub(v,a)
}
If I use "blankclip" for source, as you advised, then it works again, no page fault exception in this case too. So maybe the source has bogus audio track.
And one additional info: I used the ffmsindex.exe utility to index the video file: "wine ffmsindex -t -1"
to index all the audio tracks, and my source is not a real video file - in fact - but a video file from a http URL mounted into the filesystem with the "httpfs2" Linux utility, this also could be a source of the problem. Anyway, I am using Arch Linux, 32 bit.
Dissolving the video is also very very slow on that remote machine where I try to encode some videos: 60 frames of video encodes in more than 10 minutes.
wonkey_monkey
18th March 2017, 23:40
Perhaps, then, there is something about the audio that causes non-sequential access (as would be required in a dissolve) to break things. What codec is it?
I guess extracting the audio to a WAV is out of the question if the file is going to be fetched over HTTP (I assume this is some ongoing, automated thing you're trying to program?)
Dissolving the video is also very very slow on that remote machine where I try to encode some videos: 60 frames of video encodes in more than 10 minutes.
That is exceptionally slow! Just how far apart (what speed link) are the computers connected by HTTP? And how big are the files?
konstantin1
19th March 2017, 00:05
HTTP connection between the encoding machine and the another remote file storage is fast, 10 megabit/sec.
Maybe I can pre-fetch the audio and encode it as mp3, and then attach to the video again by the script.
I mount the video from HTTP link because I have low free space on VPS (1 GB), encoded output is also uploaded on the fly to FTP, due to low space. Video is not high resolution at all, SD (640x360) wmv3 file.
So I don't know, why filtering with dissolve takes that much time. Same low speed either with static ffmpeg.exe (zeranoe) or avs2yuv.exe output piped to Linux native ffmpeg.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.