Output is 1080p (1920×1080 for 16:9). Captures render at full output resolution via dom-to-image-more, with high-quality canvas downsampling. For maximum sharpness pick a higher bitrate — for crisp UI graphics, Very High or Ultra works well. Higher bitrates produce larger files.
About FPS: the FPS setting controls both capture pacing and the output video's declared framerate. 24 is a good default (film standard) and most machines can hit it. If the machine can't keep up, frames are duplicated to maintain correct video timing — the animation plays at the right speed and length, just with some frame repeats. For high-motion content, try 30 fps; for slower machines or complex DOM, try 18-20 fps.
Best results: CSS keyframe animations, transitions, and requestAnimationFrame-driven JS animations all capture correctly because we read the live computed style. Cross-origin images and fonts may not render — use system fonts or inline assets as data URIs.
For MP4 output: browsers disable SharedArrayBuffer when this page is opened from file://, and ffmpeg.wasm needs it. To enable MP4, serve from a local server: python3 -m http.server 8000, then visit http://localhost:8000/html-to-video-converter.html. WebM works either way.
Tip: press Ctrl+Enter in the editor to reload preview.