Log in

View Full Version : We need better versions of deleteframe and duplicateframe


Katie Boundary
11th February 2019, 01:25
Let's assume that you need to duplicate the 294th frame out of every 1001 frames, in a video that is long enough that simply chaining a whole bunch of individual duplicateframe() commands together is impractical.

Or, let's say that you need to delete the 8th, 576th, and 902nd frames out of every 1001 frames, in a video that is long enough that simply chaining a whole bunch of individual deleteframe() commands together is impractical.

Selectevery() is not suitable for either task.

StainlessS
11th February 2019, 02:44
Maybe have a look at StickBoy stuff:- http://www.avisynth.nl/users/stickboy/
I think he has a DeleteEvery() type thing, maybe of some use, dont know.

EDIT: He has a selection of plugs to investigate.

poisondeathray
11th February 2019, 02:45
Let's assume that you need to duplicate the 294th frame out of every 1001 frames, in a video that is long enough that simply chaining a whole bunch of individual duplicateframe() commands together is impractical.

Or, let's say that you need to delete the 8th, 576th, and 902nd frames out of every 1001 frames, in a video that is long enough that simply chaining a whole bunch of individual deleteframe() commands together is impractical.

Selectevery() is not suitable for either task.

You can use stickboy's ApplyEvery

For the first one, SelectEvery with InterleaveEvery . For the 2nd one DeleteEvery

wonkey_monkey
11th February 2019, 10:54
We need

I think you meant to say "I would like". A "please" wouldn't have gone amiss either.

Katie Boundary
15th February 2019, 03:37
Thanks for the suggestion, though I find the lack of documentation disturbing.

poisondeathray
15th February 2019, 04:20
Thanks for the suggestion, though I find the lack of documentation disturbing.

Did you look at the html file in the zip ?

The documentation has description, syntax, usage examples.

ajp_anton
18th February 2019, 14:59
Will SelectRangeEvery() not do what you want?

Richard1485
18th February 2019, 21:49
Let's assume that you need to duplicate the 294th frame out of every 1001 frames, in a video that is long enough that simply chaining a whole bunch of individual duplicateframe() commands together is impractical.

Try:


WhateverSource()
ApplyEvery(1001,"DuplicateFrame(293)")

As you know, AviSynth calls the first frame 0. Change 293 to 294 if that's what you want. As PDR mentioned, documentation is provided in the zip.