External recordings
You can also include recordings that you recorded externally in your Recorder video.
For example, you may edit a vlog with it.
Add files
Transfer the recordings from your camera to your computer and put them in the public/<composition-id>
folder.
The file structure should look like this:
Assuming the composition id is 'vlog'bash
public├── vlog│ ├── camera10.mov│ ├── camera20.mov│ └── camera30.mov
Assuming the composition id is 'vlog'bash
public├── vlog│ ├── camera10.mov│ ├── camera20.mov│ └── camera30.mov
The prefix must be "webcam"
for every video.
The suffixes must be ascending in the order you want to use the videos.
Generate captions
Run
bash
bun sub.ts
bash
bun sub.ts
to generate captions for your recordings.
Use the videos
Now you can add more scenes in the right sidebar to start including the recordings.
iPhone recordings
iPhone recordings are HEVC videos, which during rendering Chrome cannot get the dimensions of the video.
You will get a render failure.
Here is a script to convert the recordings to MP4:
convert.tsts
import { $ } from "bun";import { renameSync, unlinkSync } from "fs";const compositionId = "vlog";const ls = (await $`ls public/${compositionId}`).stdout.toString("utf-8");const files = ls.split("\n");for (const file of files) {if (file.toLowerCase().endsWith(".mov") ||file.toLowerCase().endsWith(".mp4")) {await $`bunx remotion ffmpeg -i public/${compositionId}/${file} public/${compositionId}/_${file}.mp4`;unlinkSync(`public/${compositionId}/${file}`);renameSync(`public/${compositionId}/_${file}.mp4`,`public/${compositionId}/${file.replace(/ /g, "_")}`,);}}
convert.tsts
import { $ } from "bun";import { renameSync, unlinkSync } from "fs";const compositionId = "vlog";const ls = (await $`ls public/${compositionId}`).stdout.toString("utf-8");const files = ls.split("\n");for (const file of files) {if (file.toLowerCase().endsWith(".mov") ||file.toLowerCase().endsWith(".mp4")) {await $`bunx remotion ffmpeg -i public/${compositionId}/${file} public/${compositionId}/_${file}.mp4`;unlinkSync(`public/${compositionId}/${file}`);renameSync(`public/${compositionId}/_${file}.mp4`,`public/${compositionId}/${file.replace(/ /g, "_")}`,);}}
Run it using
sh
bun convert.ts
sh
bun convert.ts
to fix the issue.
Examples
In the our-recorder
repository, the compositions marathon
and airportrun
are using real-life footage.