Log in

View Full Version : Merging together a frame range: how?


Chainmax
30th September 2006, 22:07
I have a clip in which the frame range [x,y] has two rows of text and frame range [z,t] has a third row of text. How can I merge those frames so that the frame range [x,t] shows all three rows of text?

Prettz
30th September 2006, 22:23
Can you isolate the text into a mask using MaskTools?

stickboy
30th September 2006, 22:48
Copy representative frames from [x, y] and [z, t] into Photoshop (or the image editor of your choice), isolate the text, combine them into a single still image, and use ImageSource + Overlay.

Chainmax
3rd October 2006, 21:34
Prettz: I don't think I can.

stickboy: I'll try that, thanks :).

Chainmax
3rd October 2006, 22:49
Here's what I have so far:

MPEG2Source("X:\wherever\myvideo.d2v")

Trim(0,1982)+Trim(2355,0)

a = ImageSource("X:\wherever\Frm3.bmp")
Overlay(clip,a)

Overlay's readme doesn't say anything about applying it to a frame range but to a whole clip. I'd rather not have to divide the video in three sections and encode them separately, is there an easier way?

Seed
4th October 2006, 03:59
MPEG2Source("X:\wherever\myvideo.d2v")
a = ImageSource("X:\wherever\Frm3.bmp")
ovl_range = trim(1983, 2354)
Trim(0,1982) ++ Overlay(ovl_range, a) ++ Trim(2355,0)


Not tested, might contains minor syntax errors, but you should get the idea.

stickboy
4th October 2006, 08:17
Overlay's readme doesn't say anything about applying it to a frame range but to a whole clip. I'd rather not have to divide the video in three sections and encode them separately, is there an easier way?Uh, ApplyRange? :)

Chainmax
5th October 2006, 00:30
I tried this

p=last

a = ImageSource("X:\wherever\Otrarr.bmp")
ApplyRange(2354,2357,"Overlay",p,a)

And got an error message saying that I gave invalid arguments to ApplyRange :confused:.

stickboy
5th October 2006, 02:49
The first argument is implicit; it assumes you're trying to apply the given function the clip you're using ApplyRange on. (It wouldn't make sense otherwise.)

Try:
ApplyRange(2354, 2357, "Overlay", a)

You also might find the syntax to my JDL_ApplyRange function (http://www.avisynth.org/stickboy/) easier.

Chainmax
5th October 2006, 17:06
I see, thanks. I remember JDL_ApplyRange, it was faster than Avisynth's version, right? I'll try it instead, thanks for remembering me of it :).


[edit]Using this line:

p = last
a = ImageSource("C:\MPEG-4\Bar Mitzvah Daniel\Otrarr.bmp")
JDL_ApplyRange(2354,2357,"Overlay(p,a)")

I get a I don't know what "p" means error message that points to this line in JDL_ApplyRange:

filtered = Eval(thunk)

foxyshadis
5th October 2006, 18:55
You need to make variables global to use them with JDL_ApplyRange.