2) Video export configuration options (e.g., FPS, bitrate key-in).
5) Possibility to support plug-in open-source HPE models
Thanks for posting (or reposting) these.
It led me to consider a technical solution that I hadn't fully considered before that could address both.
It is possible to send binary data to external programs through "STDIN". FFmpeg readily accepts this for example. So I could start the external process, go in a loop to feed it the images, and retrieve the result at the end.
This is quite appealing to me because it's very open ended and avoids having to write a C++ wrapper or having to export a temporary video file first. I already have functions to "enumerate" the video frames with or without the user's drawings painted on, so it should just be a matter of feeding that to the external program and hiding this technical aspect under the UI.
Not all external programs will support that out of the box but it should be easier and more maintainable to implement the wrapper externally.
As an experiment I could hook the ffmpeg executable to the video export function and expose H.264 encoding as a "profile". (I don't really want the export dialog to turn into Handbrake user interface with a million options, if this approach works we can have custom profiles defined elsewhere and hidden from view).

