What's Changed
remotion: Every effect now has a WebGPU version by @JonnyBurger in #12700@remotion/renderer: Upgrade Chrome to 158.0.8127.2 and publish build scripts by @JonnyBurger in #12814@remotion/bundler: Upgrade to Rspack 2.3 by @JonnyBurger in #12146@remotion/media: Upgrade Mediabunny to 1.64.0 by @JonnyBurger in #12830@remotion/studio: Show timeline preview images for<AnimatedImage>and<Gif>by @JonnyBurger in #12807remotion: Fix long<OffthreadVideo>renders on Chrome 158 by @JonnyBurger in #12834remotion: Skip rerunning effects on an unchanged AnimatedImage frame by @andriidrok1 in #12811remotion: Avoid Chromium crashes during WebGL effect cleanup by @JonnyBurger in #12710remotion: Recover canvas effects after WebGL context loss by @JonnyBurger in #12708remotion: Fix WebGL state leaking between canvas effects by @JonnyBurger in #12694remotion: Reduce per-frame overhead of<Sequence>by @alec-watts in #12688@remotion/effects: Add weather, burn, and wipe effects by @JonnyBurger in #12598@remotion/effects: Add WebGL2 and WebGPU backends to 38 effects by @JonnyBurger in #12805@remotion/effects: Add WebGPU backends to the remaining 49 effects by @JonnyBurger in #12809@remotion/web-renderer: AddrenderFramesOnWeb()for rendering multiple still frames by @alec-watts in #12326@remotion/transitions: Makecube()presentation free by @JonnyBurger in #12657@remotion/studio: Add a custom playback rate control to the preview toolbar by @Tatsuya0330 in #12601@remotion/animation-utils: Fixskew()with per-axis units and validatescale()y by @kjgggggg in #12664@remotion/canvas-capture-extension: Open Browser Studio recordings on remotion.new by @JonnyBurger in #12659@remotion/captions: Strip tags and decode character references inparseVtt()cue text by @samohovets in #12636@remotion/captions: FixparseVtt()dropping text of YouTube auto-generated captions by @samohovets in #12623@remotion/cli: Add missing boolean flags toCommandLineOptionsby @DeryFerd in #12819@remotion/cli: Accept--propsfiles saved with a UTF-8 BOM by @b84330808 in #12645@remotion/cli: Respect--flag falsefor 7 boolean options by @DeryFerd in #12629@remotion/cli: Ignore config file CRF for codecs without CRF support by @samohovets in #12621@remotion/cli: Report usage for image sequence renders by @costajohnt in #12607@remotion/effects: Reuse WebGPU pipelines and samplers by @JonnyBurger in #12713@remotion/lambda-go: AddGetCompositionsOnLambda()by @DeryFerd in #12835@remotion/lambda-php: AddgetCompositionsOnLambda()by @DeryFerd in #12837@remotion/lambda-python: Addget_compositions_on_lambda()by @DeryFerd in #12836@remotion/lambda-ruby: Addget_compositions_on_lambda()by @DeryFerd in #12838@remotion/media: Reuse prepared audio when the playback clock changes by @JonnyBurger in #12706@remotion/media: Bound unshifted audio decoding to the sequence end by @samohovets in #12695@remotion/media: Remove redundant canvas copies from video previews by @alec-watts in #12684@remotion/media: Recover when Chrome reclaims idle decoders by @dg314 in #12679@remotion/media: Fix<Video>preview lagging one frame behind render for 29.97fps WebM by @samohovets in #12671@remotion/media: Bound paused audio decoding with a keep-alive context by @alec-watts in #12609@remotion/media-utils: FixgetAudioData()caching across sample rates by @JonnyBurger in #12556@remotion/motion-blur: FixHtmlInCanvasMotionBlurrender failure by @JonnyBurger in #12690@remotion/paths: Treat arcs with a zero radius as straight lines by @b84330808 in #12859@remotion/paths: Fix geometry of chainedTcommands after a non-quadratic command by @b84330808 in #12821@remotion/paths: FixgetBoundingBox()for curves starting with a flat tangent by @b84330808 in #12687@remotion/player: Fix audio context leak when<Player>unmounts by @alec-watts in #12634@remotion/player: Fix audio interruptions during muted playback by @JonnyBurger in #12606@remotion/renderer: Forward uncaught exceptions toonBrowserLogby @JonnyBurger in #12831@remotion/renderer: Fix render hanging when a media download fails after frames are rendered by @samohovets in #12829@remotion/renderer: Report page crashes in still renders instead of timing out by @yongjip in #12682@remotion/renderer: Fix audio dropouts in distributed AAC renders by @JonnyBurger in #12673@remotion/studio: Improve render cancellation, output previews, timeline editing, and keyboard controls by @JonnyBurger in #12873@remotion/studio: Fix stale previews and effect deletion by @JonnyBurger in #12862@remotion/studio: Preserve pending edits during source updates by @JonnyBurger in #12860@remotion/studio: Agent-assisted quality improvements by @JonnyBurger in #12857@remotion/studio: Ask for a composition ID when pre-composing by @samohovets in #12813@remotion/studio: Open video and audio sources from the Inspector by @samohovets in #12812@remotion/studio: Use remotion.new in Browser Studio links and copy by @JonnyBurger in #12658@remotion/studio: Prevent accidental swipe navigation in Safari by @JonnyBurger in #12655@remotion/studio: Download render output when "Open in Folder" fails by @samohovets in #12649@remotion/studio: Fix timeline seeking when interactivity is disabled by @samohovets in #12641@remotion/studio: Delete the adjacent transition or overlay together with a TransitionSeries sequence by @andriidrok1 in #12431@remotion/transitions: Hold rendering until HTML-in-canvas transitions paint by @BeyondITL-Mossaddique in #12845@remotion/transitions: Fix OffscreenCanvas errors when reactivating transitions by @JonnyBurger in #12672@remotion/web-renderer: Fix browser rendering in Safari by @samohovets in #12699@remotion/web-renderer: Rasterize precomposited layers at the ancestor scale by @BeyondITL-Mossaddique in #12650@remotion/web-renderer: Fixmix-blend-modebeing ignored by @samohovets in #12647@remotion/web-renderer: Release completed render results from queues by @alec-watts in #12631- Standardize
licenseKeyandisProductionacross rendering APIs by @JonnyBurger in #12654 @remotion/whisper-web: Deprecate package - use@remotion/whisper-webgpuinstead by @samohovets in #12828
Elements
- Hide "Try in remotion.new" button when inside Studio by @samohovets in #12696
docs: Point Element install fallback hint to the drag handle by @samohovets in #12620- Add OG image for Elements homepage by @samohovets in #12617
Templates
- Electron template: Upgrade Vite to 6.4.5 by @app/dependabot in #12826
- Vibe Code template: Upgrade Next.js to 16.4.1 by @app/dependabot in #12583
- Electron template: Upgrade Electron to 42.11.16 by @app/dependabot in #12616
Docs
- New homepage! by @JonnyBurger in 9747b7f
- Reorganize media guides and sidebar by @JonnyBurger in #12852
- Add runnable product-ad integration example by @dg314 in #12816
- Add Faceless Video Engine to resources page by @igorvieira in #12843
- Check GitHub source links in CI by @samohovets in #12823
- Fix broken pinned-SHA link in video-manipulation page by @DeryFerd in #12820
- Fix broken source links in the AI and media-parser docs by @DeryFerd in #12806
- Fix broken source code links in the Lambda docs by @DeryFerd in #12630
- Speed up snippet checking with TypeScript 7.1 by @JonnyBurger in #12674
- Follow the account mirror preview branch by @JonnyBurger in #12670
- Keep store and purchase links on Remotion Pro by @JonnyBurger in #12669
- Add animated homepage hero to README by @JonnyBurger in #12667
- Mirror account pages on remotion.dev by @JonnyBurger in #12668
- Point SDK demo links to sdk-demo.remotion.dev by @JonnyBurger in #12663
- Add VideoGen to ecosystem products by @dg314 in #12651
- Deprecate
@remotion/enable-scssby @samohovets in #12646 - Clarify contribution expectations in contributing guide by @samohovets in #12639
- Explain how to set a license key in the Studio and CLI by @samohovets in #12626
- Add instructions for starting Studio with an AI agent by @samohovets in #12619
- New homepage hero section by @JonnyBurger in #12613
- Expand Canvas Capture installation and recording guides by @JonnyBurger in 5695921
Internal and Experimental
- Import Lambda binary tooling into the monorepo by @JonnyBurger in #12635
- Prevent browser translation from crashing license pricing by @JonnyBurger in #12675
- Consolidate renderer cancellation workflows by @JonnyBurger in #12858
- remotion.dev/brand: Add 100 GB video composition by @JonnyBurger in #12856
- remotion.dev/brand: Crossfade README states at 30 fps by @JonnyBurger in #12850
- remotion.dev/brand: Increase README logo to 280px by @JonnyBurger in #12848
- remotion.dev/brand: Enlarge README logo by @JonnyBurger in #12847
- Docs: Add native Studio playback to Chrome upgrade checks by @JonnyBurger in #12833
- FFmpeg: Upgrade shlex to 1.3.0 by @app/dependabot in #12770
- Check CLI boolean flag types and defaults by @JonnyBurger in #12822
- Skills: Warn when global Claude skills shadow project Remotion skills by @CreedTech in #12025
- Consolidate FFmpeg sources and build tooling by @JonnyBurger in #12698
- Stabilize Lambda webhook timeout test by @JonnyBurger in #12705
- Fix double AudioContext close in keep-alive test by @samohovets in #12704
- Restore cached example media at browser fixture URLs by @alec-watts in #12685
- Skip unnecessary builds in CI and deployments by @JonnyBurger in #12693
- Align React and remove Copilot from installs by @JonnyBurger in #12691
@remotion/promo-pages: Fix frozen homepage videos after browser Back by @JonnyBurger in #12692- Reduce clone size by offloading media to R2 by @JonnyBurger in #12676
- Skills: Add
/remotion-licenseskill by @JonnyBurger in #12653 - Sign up SDK visitors to the dedicated waitlist by @JonnyBurger in #12642
- Import Chromium build recipes into the monorepo by @JonnyBurger in #12637
- Astro example: Upgrade Astro to 7.3.3 by @app/dependabot in #12624
remotion: Remove unusedhappy-domdevDependency by @samohovets in #12622@remotion/mcp: Remove discontinued package by @JonnyBurger in #12618- Upgrade Zod to 4.6.7 to fix GHSA-mrhx-c7xc-m3w5 by @samohovets in #12612
New Contributors
Full Changelog: v4.0.539...v4.0.540