Skip to main content

Rendering ProRes

Apple ProRes is a high-bitrate codec for video editing workflows. Use it when the rendered file is going into Final Cut Pro, Adobe Premiere Pro, DaVinci Resolve or another editor.

ProRes files are large and are not suitable for browser playback. For web delivery, use H.264, H.265, VP8 or VP9, or AV1 instead.

If you want to use an existing ProRes video in a Remotion composition, see Embedding ProRes.

Render a ProRes filev2.1.7

Pass prores as the codec and use a .mov output file:

Terminal
npx remotion render MyComp out/video.mov --codec=prores

In the Studio, choose Apple ProRes in the render dialog.

When rendering with renderMedia(), pass codec: "prores":

render.ts
await renderMedia({ composition, serveUrl, codec: 'prores', outputLocation: 'out/video.mov', });

To make ProRes the default codec for CLI renders, set it in remotion.config.ts:

remotion.config.ts
import {Config} from '@remotion/cli/config'; Config.setCodec('prores');

You can also return defaultCodec: "prores" from calculateMetadata().

Choosing a ProRes profile

Use the --prores-profile CLI flag, the proResProfile option, Config.setProResProfile(), or defaultProResProfile from calculateMetadata().

Terminal
npx remotion render MyComp out/video.mov --codec=prores --prores-profile=hq
render.ts
await renderMedia({ composition, serveUrl, codec: 'prores', proResProfile: 'hq', outputLocation: 'out/video.mov', });
ValueFFmpeg settingApproximate bitrateAlpha channel
"proxy"045 MbpsNo
"light"1102 MbpsNo
"standard"2147 MbpsNo
"hq" (default)3220 MbpsNo
"4444"4330 MbpsYes
"4444-xq"5500 MbpsYes

Higher profiles produce larger files. ProRes does not support crf, and videoBitrate is ignored.

Transparent ProRes

To export a transparent overlay or transition for a video editor, use a ProRes profile with alpha support: "4444" or "4444-xq". The video must be rendered with PNG frames and the yuva444p10le pixel format.

Terminal
npx remotion render MyComp out/overlay.mov --codec=prores --prores-profile=4444 --image-format=png --pixel-format=yuva444p10le
remotion.config.ts
import {Config} from '@remotion/cli/config'; Config.setCodec('prores'); Config.setProResProfile('4444'); Config.setVideoImageFormat('png'); Config.setPixelFormat('yuva444p10le');

Make sure the composition has no opaque background. In the Studio, enable the checkerboard background to inspect transparency.

For more context, see Rendering transparent videos and Creating overlays.

See also