Copy link to clipboard
Copied
Hi all,
I have 16 clips I want to put together in all their unique combinations. This will obviously take some time as there is thousands of outcomes. Is it possible to use a script to do all the processing and render out all the videos?
Copy link to clipboard
Copied
Actually, it's just 256, I think. 16x16.
As far as I know, there isn't a script that will automatically:
... but then maybe someone else does.
Copy link to clipboard
Copied
Actually, it's not 256 because it's not 16 x 16; it's 16 factorial. Thus it's 20,922,789,888,000. I don't think it's really what he wants to do, but that's what he is asking for.
It would definitely require some sort of programming or a whole lot of interns. (And a lot of hard drive space.)
(Technically correct - the best kind of correct.)
Copy link to clipboard
Copied
Thanks for correcting the arithmetic, sir.
However, the original poster now curses you, I think. Or else he/she needs to describe what's needed in greater detail.
Copy link to clipboard
Copied
Thanks for your replys guys.
Sorry I should have explained better. It will be limited to 3 clips from the 16 to make one video so it will be 16x16x16.
Thanks
J
Copy link to clipboard
Copied
Ah. 4096. Despite the number of comps to be made, I still am at a loss to recommend a script for the task.
I hope another individual can offer a solution.
Copy link to clipboard
Copied
I think it would actually be 16x15x14 if you don't want the same clip used twice in one comp.
This is the basic structure of how I would set it up. It works for me, but it needs some additional work, such as making sure it renders to the proper folder and uses the correct Render and Output Module Templates. It could also use some error checking. It assumes that all the participating clips are selected in the Project panel and that they all have the same width, height, pixelAspect ratio and framerate.
{
var myClips = app.project.selection;
var w = myClips[0].width;
var h = myClips[0].height;
var pA = myClips[0].pixelAspect;
var fR = myClips[0].frameRate;
var compDur;
var myComp;
for (var i = 0; i < myClips.length; i++){
for (var j = 0; j < myClips.length; j++){
for (var k = 0; k < myClips.length; k++){
if (i == j || i == k || j == k) continue;
compDur = myClips.duration + myClips
myComp = app.project.items.addComp("comp_"+i+"_"+j+"_"+k,w,h,pA,compDur,fR);
myComp.layers.add(myClips
myComp.layers.add(myClips
myComp.layers.add(myClips);
myComp.layer(2).startTime = myComp.layer(1).outPoint;
myComp.layer(3).startTime = myComp.layer(2).outPoint;
app.project.renderQueue.items.add(myComp);
app.project.renderQueue.render();
myComp.remove();
}
}
}
}
By the way, this should work for any number of clips, not just 16.
Dan
Copy link to clipboard
Copied
Many thanks for this Dan. I haven't tested as of yet, but I will let you know my results.
Thanks again