Server-Side Rendering
Remotion's rendering engine is built with Node.JS, which makes it easy to render a video in the cloud.
Render a video on AWS Lambda
The easiest and fastest way to render videos in the cloud is to use @remotion/lambda
.
Render a video using Node.js APIs
We provide a set of APIs to render videos using Node.js and Bun.
See an example or the API reference for more information.
Render using GitHub Actions
You can render a video on GitHub actions. The following workflow assumes a composition ID of MyComp
yaml
name: Render videoon:workflow_dispatch:jobs:render:name: Render videoruns-on: ubuntu-lateststeps:- uses: actions/checkout@main- uses: actions/setup-node@main- run: npm i- run: npx remotion render MyComp out/video.mp4- uses: actions/upload-artifact@v2with:name: out.mp4path: out/video.mp4
yaml
name: Render videoon:workflow_dispatch:jobs:render:name: Render videoruns-on: ubuntu-lateststeps:- uses: actions/checkout@main- uses: actions/setup-node@main- run: npm i- run: npx remotion render MyComp out/video.mp4- uses: actions/upload-artifact@v2with:name: out.mp4path: out/video.mp4
With input props
If you have props, you can ask for them using the GitHub Actions input fields.
Here we assume a shape of {titleText: string; titleColor: string}
.
yaml
name: Render videoon:workflow_dispatch:inputs:titleText:description: 'Which text should it say?'required: truedefault: 'Welcome to Remotion'titleColor:description: 'Which color should it be in?'required: truedefault: 'black'jobs:render:name: Render videoruns-on: ubuntu-lateststeps:- uses: actions/checkout@main- uses: actions/setup-node@main- run: npm i- run: echo $WORKFLOW_INPUT > input-props.jsonenv:WORKFLOW_INPUT: ${{ toJson(github.event.inputs) }}- run: npx remotion render MyComp out/video.mp4 --props="./input-props.json"- uses: actions/upload-artifact@v2with:name: out.mp4path: out/video.mp4
yaml
name: Render videoon:workflow_dispatch:inputs:titleText:description: 'Which text should it say?'required: truedefault: 'Welcome to Remotion'titleColor:description: 'Which color should it be in?'required: truedefault: 'black'jobs:render:name: Render videoruns-on: ubuntu-lateststeps:- uses: actions/checkout@main- uses: actions/setup-node@main- run: npm i- run: echo $WORKFLOW_INPUT > input-props.jsonenv:WORKFLOW_INPUT: ${{ toJson(github.event.inputs) }}- run: npx remotion render MyComp out/video.mp4 --props="./input-props.json"- uses: actions/upload-artifact@v2with:name: out.mp4path: out/video.mp4
Actions
tab.Render video
workflow on the left.Run workflow
button should appear. Click it.Run workflow
.Artifacts
.Note that running the workflow may incur costs. However, the workflow will only run if you actively trigger it.
See also: Passing input props in GitHub Actions
Render a video using Docker
See: Dockerizing a Remotion project
Render a video using GCP Cloud Run (Alpha)
Check out the experimental Cloud Run package.
Our plan is to port the Lambda runtime to Cloud Run instead of maintaining a separate implementation.