remotion-dev/remotion · error · Error

Comma-separated `--frames` cannot be combined with `--every-

Error message

Comma-separated `--frames` cannot be combined with `--every-nth-frame`.

What it means

Thrown by the render CLI when both a comma-separated --frames value (e.g. --frames=0,10) and --every-nth-frame > 1 are supplied. The two features are mutually exclusive: --every-nth-frame subsamples the full timeline uniformly, while comma-separated --frames specifies an explicit frame set, so combining them is ambiguous.

Source

Thrown at packages/cli/src/render.tsx:139

	const height = overrideHeightOption.getValue({
		commandLine: parsedCli,
	}).value;
	const width = overrideWidthOption.getValue({
		commandLine: parsedCli,
	}).value;
	const fps = overrideFpsOption.getValue({commandLine: parsedCli}).value;
	const durationInFrames = overrideDurationOption.getValue({
		commandLine: parsedCli,
	}).value;

	const browserExecutable = browserExecutableOption.getValue({
		commandLine: parsedCli,
	}).value;
	const everyNthFrame = everyNthFrameOption.getValue({
		commandLine: parsedCli,
	}).value;
	if (selectedFrames !== null && everyNthFrame !== 1) {
		throw new Error(
			'Comma-separated `--frames` cannot be combined with `--every-nth-frame`.',
		);
	}

	const userAgent = userAgentOption.getValue({commandLine: parsedCli}).value;
	const disableWebSecurity = disableWebSecurityOption.getValue({
		commandLine: parsedCli,
	}).value;
	const ignoreCertificateErrors = ignoreCertificateErrorsOption.getValue({
		commandLine: parsedCli,
	}).value;
	const x264Preset = x264Option.getValue({commandLine: parsedCli}).value;
	const audioBitrate = audioBitrateOption.getValue({
		commandLine: parsedCli,
	}).value;
	const offthreadVideoCacheSizeInBytes =
		offthreadVideoCacheSizeInBytesOption.getValue({
			commandLine: parsedCli,

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. If you want uniform sub-sampling, keep --every-nth-frame and remove the comma-separated --frames.
  2. If you want an explicit frame list, keep --frames=a,b,c and remove --every-nth-frame (or set it to 1).
  3. Re-run with only one of the two strategies.

Example fix

// before
$ npx remotion render MyComp out.mp4 --frames=0,10,20 --every-nth-frame=2
// after - pick one
$ npx remotion render MyComp out.mp4 --every-nth-frame=2
Defensive patterns

Strategy: validation

Validate before calling

const validateFrameOptions = (frames: string | null, everyNth: number) => {
  if (frames !== null && frames.includes(',') && everyNth !== 1) {
    throw new Error('Cannot combine comma-separated --frames with --every-nth-frame');
  }
};

validateFrameOptions(selectedFrames, everyNthFrame);

Type guard

const isCommaFrames = (frames: string | null): boolean =>
  frames !== null && frames.includes(',');

Prevention

When it happens

Trigger: Passing `--frames=0,10,20 --every-nth-frame=2` together, or any combination where selectedFrames !== null and everyNthFrame !== 1.

Common situations: Composing render flags from a template that included both; wanting both sub-sampling and a custom list and not realising they conflict; copy-pasting flags from two different examples.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/4c71c1fb09a85058. Report an issue: GitHub.