渲染所有合成
在某些情况下,您可能会发现渲染所有合成很有用。
通过 CLI
您可以将 npx remotion compositions
命令与 bash 循环结合使用:
render-all.shsh
compositions=($(npx remotion compositions src/index.ts -q))for composition in "${compositions[@]}"donpx remotion render src/index.ts $composition $composition.mp4done
render-all.shsh
compositions=($(npx remotion compositions src/index.ts -q))for composition in "${compositions[@]}"donpx remotion render src/index.ts $composition $composition.mp4done
您可以使用以下命令执行:
sh
sh ./render-all.sh
sh
sh ./render-all.sh
note
这仅适用于基于 UNIX 的系统(Linux、macOS)和 Windows 中的 WSL。
通过 Node.JS 脚本
您可以使用 Node.JS APIs 创建适合您的脚本。以下是一个示例
render-all.mjsts
import {bundle } from "@remotion/bundler";import {getCompositions ,renderMedia } from "@remotion/renderer";import {createRequire } from "module";constrequire =createRequire (import.meta .url );constbundled = awaitbundle ({entryPoint :require .resolve ("./src/index.ts"),// If you have a Webpack override, make sure to add it herewebpackOverride : (config ) =>config ,});constcompositions = awaitgetCompositions (bundled );for (constcomposition ofcompositions ) {console .log (`Rendering ${composition .id }...`);awaitrenderMedia ({codec : "h264",composition ,serveUrl :bundled ,outputLocation : `out/${composition .id }.mp4`,});}
render-all.mjsts
import {bundle } from "@remotion/bundler";import {getCompositions ,renderMedia } from "@remotion/renderer";import {createRequire } from "module";constrequire =createRequire (import.meta .url );constbundled = awaitbundle ({entryPoint :require .resolve ("./src/index.ts"),// If you have a Webpack override, make sure to add it herewebpackOverride : (config ) =>config ,});constcompositions = awaitgetCompositions (bundled );for (constcomposition ofcompositions ) {console .log (`Rendering ${composition .id }...`);awaitrenderMedia ({codec : "h264",composition ,serveUrl :bundled ,outputLocation : `out/${composition .id }.mp4`,});}
执行bash
node render-all.mjs
执行bash
node render-all.mjs