Importing assets
Remotion allows you to include several types of files in your project:
- Images (
.png,.svg,.jpg,.jpeg,.webp,.gif,.bmp) - Videos (
.webm,.mov,.mp4) - Audio (
.mp3,.wav,.aac) - Webfonts - read the separate page for fonts
- Arbitrary files using the
staticFile()API
Using images
Require images using an import statement and pass them to the <Img/> tag.
tsximport {Img } from "remotion";importlogo from "./logo.png";export constMyComp :React .FC = () => {return <Img src ={logo } />;};
tsximport {Img } from "remotion";importlogo from "./logo.png";export constMyComp :React .FC = () => {return <Img src ={logo } />;};
Using image sequences
If you have a series of images, for example exported from another program like After Effects or Rotato, you can use a dynamic require statement to import the images as they are needed.
tsximport {useCurrentFrame } from "remotion";/*Assuming your file structure is:assets/frame1.pngframe2.pngframe3.png...*/constMyComp :React .FC = () => {constframe =useCurrentFrame ();constsrc =require ("./assets/frame" +frame + ".png");return <img src ={src } />;};
tsximport {useCurrentFrame } from "remotion";/*Assuming your file structure is:assets/frame1.pngframe2.pngframe3.png...*/constMyComp :React .FC = () => {constframe =useCurrentFrame ();constsrc =require ("./assets/frame" +frame + ".png");return <img src ={src } />;};
tip
Avoid writing a require statement that requires a file that doesn't exist. If your project throws an error because your composition is longer than than your image sequence, clamp the file name using Math.min() or Remotion's interpolate().
Using videos
Import your files using an import statement. Use the <Video /> component to keep the timeline and your video in sync.
tsximport {Video } from "remotion";importvid from "./vid.webm";export constMyComp :React .FC = () => {return <Video src ={vid } />;};
tsximport {Video } from "remotion";importvid from "./vid.webm";export constMyComp :React .FC = () => {return <Video src ={vid } />;};
Be aware that if you are rendering using Chromium (as opposed to Chrome), the codec for MP4 videos is not included. Read the section on the <Video/ > page for more information.
Using Audio
Import your audio using an import statement and pass it to the <Audio/ > component.
tsximport {Audio } from "remotion";importtune from "./tune.mp3";export constMyComp :React .FC = () => {return <Audio src ={tune } />;};
tsximport {Audio } from "remotion";importtune from "./tune.mp3";export constMyComp :React .FC = () => {return <Audio src ={tune } />;};
See the audio guide for guidance on including audio.
Using fonts
See the dedicated page about fonts.
Importing arbitrary files
Create a public/ folder in your project and use the staticFile() API to get a URL reference of the asset that you can load into your project.