Converting an SVG animation to a video with the MediaRecorder API and a hidden canvas.
Drawing frames from img elements can introduce an extra delay, so this version generates all the frames upfront and then renders them in a loop with requestAnimationFrame().
See also: Canvas animation to video