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. |
28th August 2021, 01:24 | #1 | Link |
Registered User
Join Date: Mar 2014
Posts: 38
|
Fow can I force ImageWriter to write the frames?
I have a quite complex, and memory consuming script, in which I read images, and put them various layers, eg. arrows, text, etc.
I found out, that my script use much less memory, if at a point I write out the layered images to PNG files, and then read them back into variables, and then the following commands, filters use those PNG images in the script. A sample from my script: Code:
blank=blackness(text,$00000000).trim(0,-1).loop(k0) image1x1.trim(0,-1).ImageWriter("png\image1x1\", type="png")++k4x4.trim(0,-1).ImageWriter("png\k4x4\", type="png")++text.trim(0,-1).ImageWriter("png\text\", type="png") image1x1r=imagesource("png/image1x1/000000.png",pixel_type="RGB32",FPS=FPS).trim(0,-1).loop(k0) k4x4r=imagesource("png/k4x4/000000.png",pixel_type="RGB32",FPS=FPS).trim(0,-1).loop(k0) textr=imagesource("png/text/000000.png",pixel_type="RGB32",FPS=FPS).trim(0,-1).loop(k0) stack=output=="gif" ? StackHorizontal(image1x1,k4x4,text,blank) : StackHorizontal(image1x1r,k4x4r,textr,blank) How can I force imagewriter to write those 3 frames as images? |
28th August 2021, 01:53 | #2 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,018
|
Try insert RT_Stats, function RT_ForceProcess() on the blank line [EDIT #3].
It will force read every frame of Last clip [ie your Imagewriter stuff], and so force the images to be written. Then the remainder of script will execute. EDIT:You spell "How" with an 'H' EDIT: Below inserted where line 3 is should also work [I think, untested] Code:
for(n=0,FrameCount-1) { current_frame = n AverageLuma # force read of Last clip, frame n, will force writing to image. } OK, maybe it dont work, AverageLuma only for YUV, yours probably RGB, so try instead Code:
for(n=0,FrameCount-1) { current_frame = n (Last.IsRGB) ? AverageR : AverageLuma # force read of Last clip, frame n, will force writing to image. } EDIT: Or alternatively [Avs v2.58+] Code:
ForceClip = Last.crop(4,4).ConvertToYV12() for(n=0,FrameCount-1) { current_frame = n ForceClip.AverageLuma # force read of Last clip, frame n, will force writing to image. }
__________________
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; 28th August 2021 at 13:27. |
29th August 2021, 15:24 | #5 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,018
|
Oops, and the one for v2.58 of course would require GScript.
__________________
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 |
imagewriter, png |
Thread Tools | Search this Thread |
Display Modes | |
|
|