Skip to main content

npx remotion still

Available from v2.3.

Render a still frame based on the entry point, the composition ID and save it to the output location.

bash
npx remotion still <serve-url|entry-point>? [<composition-id>] [<output-location>]
bash
npx remotion still <serve-url|entry-point>? [<composition-id>] [<output-location>]

You may pass a Serve URL or an entry point as the first argument, otherwise the entry point will be determined.

If output-location is not passed, the still will be rendered into the out folder.
If composition-id is also not passed, Remotion will let you select a composition.

Flags

--props

Input Props to pass to the selected composition of your video..
Must be a serialized JSON string (--props='{"hello": "world"}') or a path to a JSON file (./path/to/props.json).
From the root component the props can be read using getInputProps().
You may transform input props using calculateMetadata().

note

Inline JSON string isn't supported on Windows shells because it removes the " character, use a file name instead.

--image-format

jpeg, png, webp or pdf. The default is png.

--config

Specify a location for the Remotion config file.

--env-file

Specify a location for a dotenv file - Default .env. Read about how environment variables work in Remotion.

--jpeg-quality v4.0.0

Value between 0 and 100 for JPEG rendering quality. Doesn't work when PNG frames are rendered.

--quality v1.4.0

Renamed to --jpeg-quality in v4.0.0

--output v4.0.0

Sets the output file path, as an alternative to the output-location positional argument.

--overwrite

Write to output even if file already exists.. This flag is enabled by default, use --overwrite=false to disable it.

--browser-executable

Path to a Chrome executable. If not specified and Remotion cannot find one, it will download one during rendering.

--scale

Scales the output frames by the factor you pass in. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of 1.5. Vector elements like fonts and HTML markups will be rendered with extra details. scale must be greater than 0 and less than equal to 16. Default: 1.

--frame

Which frame should be rendered. Example --frame=10. Default 0.
From v3.2.27, negative values are allowed, with -1 being the last frame.

--bundle-cache

Enable or disable Webpack caching. This flag is enabled by default, use --bundle-cache=false to disable caching.

--log

Set the log level. Increase or decrease the amount of output. Acceptable values: error, warn, info (default), verbose

--port

Set a custom HTTP server port to serve the Webpack bundle. If not defined, Remotion will try to find a free port.

--public-dirv3.2.13

The path of the URL where the bundle is going to be hosted. By default it is /, meaning that the bundle is going to be hosted at the root of the domain (e.g. https://localhost:3000/). If you are deploying to a subdirectory (e.g. /sites/my-site/), you should set this to the subdirectory.

--timeout

Define how long a single frame may take to resolve all delayRender() calls before it times out in milliseconds. Default: 30000.

info

--ignore-certificate-errorsv2.6.5

Results in invalid SSL certificates in Chrome, such as self-signed ones, being ignored.

--disable-web-securityv2.6.5

This will most notably disable CORS in Chrome among other security features.

--disable-headlessv2.6.5

Opens an actual browser during rendering to observe the render.

--gl

Changelog
  • From Remotion v2.6.7 until v3.0.7, the default for Remotion Lambda was swiftshader, but from v3.0.8 the default is swangle (Swiftshader on Angle) since Chrome 101 added support for it.
  • From Remotion v2.4.3 until v2.6.6, the default was angle, however it turns out to have a small memory leak that could crash long Remotion renders.

Select the OpenGL renderer backend for Chromium.
Accepted values:

  • "angle"
  • "egl"
  • "swiftshader"
  • "swangle"
  • "vulkan" (from Remotion v4.0.41)
  • "angle-egl" (from Remotion v4.0.51)

The default is null, letting Chrome decide, except on Lambda where the default is "swangle"

--user-agentv3.3.83

Lets you set a custom user agent that the headless Chrome browser assumes.

--offthreadvideo-cache-size-in-bytesv4.0.23

From v4.0, Remotion has a cache for <OffthreadVideo> frames. The default is null, corresponding to half of the system memory available when the render starts.
This option allows to override the size of the cache. The higher it is, the faster the render will be, but the more memory will be used.
The used value will be printed when running in verbose mode.
Default: null

--enable-multiprocess-on-linuxv4.0.42

Removes the --single-process flag that gets passed to Chromium on Linux by default. This will make the render faster because multiple processes can be used, but may cause issues with some Linux distributions or if window server libraries are missing.
Default: false until v4.0.136, then true from v4.0.137 on because newer Chrome versions don't allow rendering with the --single-process flag.
This flag will be removed in Remotion v5.0.

--binaries-directoryv4.0.120

The directory where the platform-specific binaries and libraries that Remotion needs are located. Those include an ffmpeg and ffprobe binary, a Rust binary for various tasks, and various shared libraries. If the value is set to null, which is the default, then the path of a platform-specific package located at node_modules/@remotion/compositor-* is selected.
This option is useful in environments where Remotion is not officially supported to run like bundled serverless functions or Electron.

--ffmpeg-executable

removed in v4.0

Set a custom ffmpeg executable. If not defined, a ffmpeg executable will be searched in PATH.

--ffprobe-executable

removed in v4.0

Set a custom ffprobe executable. If not defined, a ffprobe executable will be searched in PATH.