packages/docs/docs/client-side-rendering/index.mdx
Client-side rendering is a Remotion capability that allows you to render videos, images, and audio directly in the browser, without requiring server-side infrastructure.
It is available through the @remotion/web-renderer package and is stable from <AvailableFrom v="4.0.491" inline />.
Unlike server-side rendering with @remotion/renderer, client-side rendering:
Client-side rendering requires the WebCodecs API, which limits browser support to:
| Browser | Minimum version |
|---|---|
| Chrome | 94+ |
| Firefox | 130+ |
| Safari | 26+ |
The package provides APIs called renderStillOnWeb() and renderMediaOnWeb().
Here is an example of how to use it:
import {renderMediaOnWeb} from '@remotion/web-renderer';
const Component: React.FC = () => {
return (
<svg viewBox="0 0 100 100" width="100" height="100" style={{transform: 'rotate(45deg)'}}>
<polygon points="50,10 90,90 10,90" fill="orange" />
</svg>
);
};
const {getBlob} = await renderMediaOnWeb({
composition: {
component: Component,
durationInFrames: 100,
fps: 30,
width: 100,
height: 100,
calculateMetadata: null,
id: 'my-composition',
},
inputProps: {},
});
Client-side rendering is always enabled in the Remotion Studio from <AvailableFrom v="4.0.491" inline />. Use the "Render on web" button to render in the browser.
Client-side rendering always sends a telemetry event for every render, even if no license key is set.
See Telemetry for which information is sent and how to set a license key.