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. Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se |
|
|
#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? |
|
|
|
|
|
#2 | Link |
|
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,411
|
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. |
|
|
|
|
|
#5 | Link |
|
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,411
|
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 | |
|
|