v4.0.0
The biggest Remotion release ever! https://www.remotion.dev/blog/4-0
Highlights
- Visual editing for your React props
- Render Button for faster media creation
- Rust-based architecture for faster renders
Migration
https://www.remotion.dev/docs/4-0-migration
Changelog
- remotion:
defaultProps
of a<Composition>
is now mandatory if the component accepts props - remotion:
<Composition>
now accepts a schema - remotion:
<Composition>
now accepts acalculateMetadata
prop - remotion: The
OffthreadVideoImageFormat
type has been removed. - remotion:
imageFormat
has been removed from<OffthreadVideo>
- remotion:
transparent
has been added to<OffthreadVideo>
. - remotion:
<Img>
will cancel the render if the image cannot be loaded - remotion: If an
<Audio>
tag cannot be loaded, it will cancel the render. - remotion: The
TComposition
type now requires a Zod schema as a generic. - remotion: Type
WebpackOverrideFn
moved fromremotion
to@remotion/bundler
- remotion:
staticFile()
now supports URI-unsafe characters by default - remotion: Types:
src
is required for an<Img>
tag - @remotion/bundler: The development Webpack cache will not be removed anymore if setting
--bundle-cache=false
. - @remotion/bundler:
react-native
no longer aliases toreact-native-web
- @remotion/bundler: Webpack has been upgraded to
5.83.1
- @remotion/cli:
npx remotion preview
is deprecated fornpx remotion studio
- @remotion/cli: New Props editor allows for editing props with schema
- @remotion/cli: New Render button allows for rendering through the CLI
- @remotion/cli: New
npx remotion ffmpeg
command - @remotion/cli: New
npx remotion ffprobe
command - @remotion/cli: Configuration logic has been moved to
@remotion/cli/config
- @remotion/cli: Rich timeline was removed.
- @remotion/cli:
Config.*.setOption()
syntax has been removed. - @remotion/cli:
Config.setOutputFormat()
has now been removed. - @remotion/cli: Studio now has custom dark scrollbars
- @remotion/cli: New logger for verbose mode: No more interlacing between logs and progress bars
- @remotion/cli: New indicator whether a file has been overwritten (
β
) or newly created (+
) - @remotion/cli: Printing server URL again to the console if all Studio instances have been closed
- @remotion/cli: Less React re-renders across the Remotion Studio
- @remotion/cli: Dropdowns cannot overflow anymore
- @remotion/cli: New shortcut for collapsing left sidebar:
Cmd/Ctrl+B
- @remotion/cli Allow open of the project in editor from the Remotion Studio
- @remotion/cli:
Date
objects now work properly indefaultProps
- @remotion/cli: Remotion Studio is tested to work well offline.
- @remotion/cli: "Remotion Preview" has been renamed to "Remotion Studio"
- @remotion/eslint-config:
eslint-plugin-react
has been updated to7.32.2
- @remotion/eslint-config:
eslint-plugin-react-hooks
has been updated to4.6.0
- @remotion/eslint-plugin: New ESLint rule: Use the right import in the config file
- @remotion/lambda: Lambda does not support the x86 architecture anymore
- @remotion/lambda: Chrome on Lambda has been updated to 114
- @remotion/lambda:
downloadVideo()
alias has been removed. - @remotion/lambda:
estimatePrice()
does not acceptarchitecture
anymore. - @remotion/lambda: Removed FFmpeg from the Lambda Layer.
- @remotion/motion-blur:
<MotionBlur>
has been removed - @remotion/paths:
getParts()
has been removed - @remotion/renderer: New
selectComposition()
API - @remotion/renderer:
getCanExtractFramesFast()
has been removed - @remotion/renderer: FFmpeg is now included in Remotion (v6.0), no need to install it anymore
- @remotion/renderer: ProRes now exports uncompressed audio by default.
- @remotion/renderer:
onSlowestFrames
has been removed - @remotion/renderer:
renderMedia()
now returns an object instead of aBuffer
. - @remotion/renderer: The
ImageFormat
type has been removed in favor ofStillImageFormat
andVideoImageFormat
- @remotion/renderer: You can now export stills as PDF or WebP
- @remotion/renderer:
quality
is nowjpegQuality
- @remotion/renderer: Removed
ensureFfmpeg()
andensureFfprobe()
- @remotion/renderer:
<OffthreadVideo>
now uses a Rust-based frame extractor - @remotion/renderer: Noisy Chrome messages are filtered out.
- @remotion/renderer:
console.log
statements in your React app now get printed in a tidy format, contain location, use colors and object previews are printed out. - @remotion/zod-types: New package!
- Only the following platforms are supported by Remotion now: macOS (x64 and arm64), Windows (x64), Linux (x64 and ARM, GNU Libc and MUSL)
- All packages: The minimum Node version is now 16.0.0
- All packages: ESLint has been upgraded to
8.42.0
- All packages: TypeScript ESLint has been upgraded to
5.59.9
- All packages: ESBuild has been updated to
0.18.6
- For contributors: Updated
pnpm
to8.5.1
- For contributors: Doc snippets failing typechecks now show the failing code in CI
- New Google TTS template!
- Recommended Docker file does not install
ffmpeg
anymore