nununoisy / nsf-presenter-rs

NSF visualizer used for my YouTube videos based on RusticNES and FFmpeg
MIT License
30 stars 0 forks source link

Option to render all tracks in a file #11

Open TakuikaNinja opened 11 months ago

TakuikaNinja commented 11 months ago

It would be nice if there was an option to render all of the NSF tracks into a single video, or to individual videos, at once. This would be useful for soundtrack/album videos where visuals (like the background) are typically shared. I'm aware of the command-line interface allowing batch processing but having an equivalent in the GUI would be handy.

nununoisy commented 11 months ago

I think there are a lot of benefits to making the renderer framework capable of batch rendering. The current system works to automate batch rendering, but it's not the most usable. For example, there's no way for a script to tell how many tracks are in an NSF without relying on some other utility/some freak hack to read the header, or prompting the user for input. It's also a bit silly to render out a bunch of individual files and then have to stitch them together later (which can also be annoying if using FFmpeg since you also need to generate an index file for the concat demuxer).

Here's a random list of things that might be nice to have when doing batch renders:

The first feature is a pretty easy addition considering the value it adds for scripting/utility capabilities, so I think it'd make sense for the next release. The others will require a handful of GUI changes and refactoring on the render pipeline, so those will probably have to wait a bit.

nununoisy commented 11 months ago

Do note that switching tracks in the current version shouldn't reset any customization settings (channel colors, background, etc.) so after customizing the render, you can just select every track individually and render them out without needing to go back and fix the settings every time. NSF2 modules are better since NSFPresenter can use the time extfield for the render duration, which means you won't need to update the duration in between tracks.