scherroman / mugen

A command-line music video generator based on rhythm
MIT License
220 stars 39 forks source link

Chronological order #10

Open sethcohn opened 7 years ago

sethcohn commented 7 years ago

Testing the create code and it looks good so far.

One thing I noticed is that you are only passing a desired duration in getting a clip, and not 'start location' (ie where the new segment will go in the new video). The time the clip is going in is valuable for some potential filters/options.

One obvious example (and looking at the code I realized to implement it now would require cloning/extending a lot of code, which is why I'm posting now, when you could easily change this): I have Music Video A (and matching audio for A as audio source), and a variety of Videos in directory B.... currently, I can weight A and B directory, so create a video that using as much of A as I like, and splices in clips from B... but the video clips of A will be random. I don't want random, I want sequential as in the original A. (so essentially, the new music video will be A+clips from B on the beat, weighted in as desired). There needs to be a way to say "for A, don't go random, get clip starting at time X (the current time in video generating), for duration, but for B/etc, random is fine."

Or perhaps, differently, I want to grab clips sequentially from all, so that early clips are early from the videos and later clips later... and not have a clip from an ending of one of these videos too early in my new generated video.

I see an argument along the lines of "chronological" or just "order", with options being similar to weighting, per source, where the choices are

so in my above example: with -video-sources A.mp4 OtherDirectory/B/ -vw 4 6 -order strict random, th resulting video would be like A 40% of the time, but 60% of the time, pull clips from some video from B

Or perhaps another good example, I have 2+ music videos for the same song, and I want to meld them together equally: -v A.mp4 B.mp4 -order strict strict

For the loose usage: imaginary B and C videos are all time lapse video (ala Timescape, your example), or other sequential events... We don't want to jump around randomly for those, we want to show clips in an orderly, but still randomish way.... telling a story visually, and showing items out of order (5,1,4,2 as random) isn't as good as some order (1,2,4,5) -v A.mp4 B.mp4 C.mp4 -order random loose loose.

scherroman commented 7 years ago

I'm liking this idea. I'll get back to you on this.

It really shouldn't be an issue to add in controls like this in though, sounds like it would come down to using an alternate sampling method which takes those extra parameters.