79 lines
1.6 KiB
Markdown
79 lines
1.6 KiB
Markdown
---
|
|
name: assets
|
|
description: Importing images, videos, audio, and fonts into Remotion
|
|
metadata:
|
|
tags: assets, staticFile, images, fonts, public
|
|
---
|
|
|
|
# Importing assets in Remotion
|
|
|
|
## The public folder
|
|
|
|
Place assets in the `public/` folder at your project root.
|
|
|
|
## Using staticFile()
|
|
|
|
You MUST use `staticFile()` to reference files from the `public/` folder:
|
|
|
|
```tsx
|
|
import { Img, staticFile } from "remotion";
|
|
|
|
export const MyComposition = () => {
|
|
return <Img src={staticFile("logo.png")} />;
|
|
};
|
|
```
|
|
|
|
The function returns an encoded URL that works correctly when deploying to subdirectories.
|
|
|
|
## Using with components
|
|
|
|
**Images:**
|
|
|
|
```tsx
|
|
import { Img, staticFile } from "remotion";
|
|
|
|
<Img src={staticFile("photo.png")} />;
|
|
```
|
|
|
|
**Videos:**
|
|
|
|
```tsx
|
|
import { Video } from "@remotion/media";
|
|
import { staticFile } from "remotion";
|
|
|
|
<Video src={staticFile("clip.mp4")} />;
|
|
```
|
|
|
|
**Audio:**
|
|
|
|
```tsx
|
|
import { Audio } from "@remotion/media";
|
|
import { staticFile } from "remotion";
|
|
|
|
<Audio src={staticFile("music.mp3")} />;
|
|
```
|
|
|
|
**Fonts:**
|
|
|
|
```tsx
|
|
import { staticFile } from "remotion";
|
|
|
|
const fontFamily = new FontFace("MyFont", `url(${staticFile("font.woff2")})`);
|
|
await fontFamily.load();
|
|
document.fonts.add(fontFamily);
|
|
```
|
|
|
|
## Remote URLs
|
|
|
|
Remote URLs can be used directly without `staticFile()`:
|
|
|
|
```tsx
|
|
<Img src="https://example.com/image.png" />
|
|
<Video src="https://remotion.media/video.mp4" />
|
|
```
|
|
|
|
## Important notes
|
|
|
|
- Remotion components (`<Img>`, `<Video>`, `<Audio>`) ensure assets are fully loaded before rendering
|
|
- Special characters in filenames (`#`, `?`, `&`) are automatically encoded
|