All skills
Skillintermediate

Using images in Remotion

Always use the `` component from `remotion` to display images:

Claude Code Knowledge Pack7/10/2026

Overview

Using images in Remotion

The `` component

Always use the `` component from remotion to display images:


  return ;
};

Important restrictions

You MUST use the `` component from remotion. Do not use:

  • Native HTML <img> elements
  • Next.js `` component
  • CSS background-image

The `` component ensures images are fully loaded before rendering, preventing flickering and blank frames during video export.

Local images with staticFile()

Place images in the public/ folder and use staticFile() to reference them:

my-video/
├─ public/
│  ├─ logo.png
│  ├─ avatar.jpg
│  └─ icon.svg
├─ src/
├─ package.json

Remote images

Remote URLs can be used directly without staticFile():

Ensure remote images have CORS enabled.

For animated GIFs, use the `` component from @remotion/gif instead.

Sizing and positioning

Use the style prop to control size and position:

Dynamic image paths

Use template literals for dynamic file references:


const frame = useCurrentFrame();

// Image sequence

// Selecting based on props

// Conditional images

This pattern is useful for:

  • Image sequences (frame-by-frame animations)
  • User-specific avatars or profile images
  • Theme-based icons
  • State-dependent graphics

Getting image dimensions

Use getImageDimensions() to get the dimensions of an image:


const { width, height } = await getImageDimensions(staticFile("photo.png"));

This is useful for calculating aspect ratios or sizing compositions:


const calculateMetadata: CalculateMetadataFunction = async () => {
  const { width, height } = await getImageDimensions(staticFile("photo.png"));
  return {
    width,
    height,
  };
};