123
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|590|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> On Topic -> Music Video Doohickey

Wed, 15 Jun 2016, 09:16
Jayenkai
Yes, it needs a better title.

Yesterday I started thinking about how I could do this.

Today, I started doing it!

View on YouTube
Which, I think we can all agree, looks might fine!

The effect is currently still hand-coded in Blitz, but I have the crazy idealogical mindset of making it scriptable.
Not sure I can achieve that, but it's worth a shot, right?!

Meanwhile, it's rendering video at about 1.5fps.

It's not terrible, given what it is that it's doing, and the fact that I'm doing it in BlitzMax.
.. I think...
Maybe..

The methodology is currently.
1. Render frame
2. SavePixmapPNG
3. Exec ffmpeg to turn .png into .mp4
4. Every 10 frames, append the last 10 frames to the output video.
Rinse, repeat!

If anyone knows of a faster way to render 1920x1080 videos, be sure to let me know.

But it's working, and that's made a HUGE difference.
Previously I had to render to thousands of png files, then run through re-rendering those to a video. Took up a lot of space on the drive, and Windows didn't like having that many files to handle all of a sudden.
This way, it's rewriting over the same 10 images, and Windows seems to prefer that sort of thing, so everything's going at a slightly better rate.

Next up is trying to decide how to include the audio with the video.
Hmm..

And once that's done, it'll be time to figure out how to do spectroscopes and beat detection and stuff like that...
Aaaargh!!

-=-=-
''Load, Next List!''
Wed, 15 Jun 2016, 11:33
rockford
May not be real-time, but it's pretty
Fri, 17 Jun 2016, 05:32
Jayenkai
Hmm.. Hitting a bit of a roadblock, today.

What I'd like to do...
LoadSound() : Play snippet of sound depending on the frame

PlaySound in BMax doesn't allow for starting audio at "X frame", and seeking around within the track.

So, instead, I tried using ffmpeg to strip the .wav into x-frame snippets, and loading them..
As you can probably guess, this is incredibly time consuming, and terrible for the poor little harddrive.
Hmmm...

-=-=-
''Load, Next List!''
Fri, 17 Jun 2016, 08:49
Jayenkai


Bloody hell, that took all smegging day!!!

It's still not quite right, but at least it can play snippets without needing twelve hours for an external tool to load cut everything up!

-=-=-
''Load, Next List!''
Fri, 17 Jun 2016, 09:17
rockford
Sounds like you're on the right track (geddit?!)
Fri, 17 Jun 2016, 14:12
Jayenkai

View on YouTube
Fri, 17 Jun 2016, 16:06
cyangames
That is mighty pretty!
Tue, 21 Jun 2016, 01:21
Jayenkai
Shitty 80's style GUI In Progress!



Next up, adding layer scripts, and switches!

-=-=-
''Load, Next List!''
Tue, 21 Jun 2016, 03:22
Jayenkai
Bloody 'ell, this stuff's complicated!

OK, got the most important bits of the timeline built.. By which I mean, you can toggle individual frames on and off for each layered effect. (Drag to enable lots of frames)
I've also (currently hardcoded) got layers to fade in and out, too.
Thinking ahead, I've got fade speeds per-layer, and other such niceties.

Now to delete "DemoRender()" and see if I can get scripted effects to work..
...

...AARRGGHH!!!

-=-=-
''Load, Next List!''