Started with just recording the canvas using MediaRecorder (https://devtails.xyz/@adam/how-to-record-html-canvas-using-m...). This was super simple and I wish could have left it at that...But unfortunately Chrome gives you a webm file back and IG doesn't let you upload webm.
So then I went the route of ffmpeg.wasm in the browser to convert the webm to mp4.
I've finally landed on an approach that uses the WebCodecs API and mp4-muxer library (https://devtails.xyz/adam/how-to-save-html-canvas-to-mp4-usi...).
I'm working on a similar tool https://kaizen.place/reel-generator . Moved the video rendering onto the client which helps keep rendering times quick and avoids the headache of managing an extra service.
+1 to the suggestion I saw for some kind of sound visual to make it even more clear there's audio.
I like the conversation about web performance, but you should make sure you practice what you preach