affaan-m/ECC · error

No video track found in the input

Error message

No video track found in the input

What it means

Example from the mediabunny extract-frames rule: after opening the input, getPrimaryVideoTrack() returned null/undefined, so frame extraction cannot proceed. The source contains no video track — the caller passed an audio-only or malformed file.

Source

Thrown at skills/remotion-video-creation/rules/extract-frames.md:60

export async function extractFrames({
  src,
  timestampsInSeconds,
  onVideoSample,
  signal,
}: ExtractFramesProps): Promise<void> {
  using input = new Input({
    formats: ALL_FORMATS,
    source: new UrlSource(src),
  });

  const [durationInSeconds, format, videoTrack] = await Promise.all([
    input.computeDuration(),
    input.getFormat(),
    input.getPrimaryVideoTrack(),
  ]);

  if (!videoTrack) {
    throw new Error("No video track found in the input");
  }

  if (signal?.aborted) {
    throw new Error("Aborted");
  }

  const timestamps =
    typeof timestampsInSeconds === "function"
      ? await timestampsInSeconds({
          track: {
            width: videoTrack.displayWidth,
            height: videoTrack.displayHeight,
          },
          container: format.name,
          durationInSeconds,
        })
      : timestampsInSeconds;

View on GitHub (pinned to d8409a4b08)

Solutions

  1. Validate that the input URL/mime type is a video container before calling extractFrames
  2. Surface a user-facing 'not a video file' message instead of a raw Error
  3. Check input.getFormat() to reject unsupported containers early
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at skills/remotion-video-creation/rules/extract-frames.md:60 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of affaan-m/ECC@d8409a4b08 (2026-08-26). Data as JSON: /api/errors/ac2aacb0dceeaf9f. Report an issue: GitHub.