Back to Remotion

Rendering ProRes

packages/docs/docs/prores.mdx

4.0.4983.9 KB
Original Source

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 file<AvailableFrom v="2.1.7" />

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

bash
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":

ts
import {renderMedia} from '@remotion/renderer';
import type {VideoConfig} from 'remotion';

declare const serveUrl: string;
declare const composition: VideoConfig;
// ---cut---
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:

tsx
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().

bash
npx remotion render MyComp out/video.mov --codec=prores --prores-profile=hq
ts
import {renderMedia} from '@remotion/renderer';
import type {VideoConfig} from 'remotion';

declare const serveUrl: string;
declare const composition: VideoConfig;
// ---cut---
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.

bash
npx remotion render MyComp out/overlay.mov --codec=prores --prores-profile=4444 --image-format=png --pixel-format=yuva444p10le
tsx
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