Files
einundzwanzig-verein/videos/.opencode/skills/remotion-best-practices/rules/get-audio-duration.md

1.3 KiB

name, description, metadata
name description metadata
get-audio-duration Getting the duration of an audio file in seconds with Mediabunny
tags
duration, audio, length, time, seconds, mp3, wav

Getting audio duration with Mediabunny

Mediabunny can extract the duration of an audio file. It works in browser, Node.js, and Bun environments.

Getting audio duration

import { Input, ALL_FORMATS, UrlSource } from "mediabunny";

export const getAudioDuration = async (src: string) => {
  const input = new Input({
    formats: ALL_FORMATS,
    source: new UrlSource(src, {
      getRetryDelay: () => null,
    }),
  });

  const durationInSeconds = await input.computeDuration();
  return durationInSeconds;
};

Usage

const duration = await getAudioDuration("https://remotion.media/audio.mp3");
console.log(duration); // e.g. 180.5 (seconds)

Using with local files

For local files, use FileSource instead of UrlSource:

import { Input, ALL_FORMATS, FileSource } from "mediabunny";

const input = new Input({
  formats: ALL_FORMATS,
  source: new FileSource(file), // File object from input or drag-drop
});

const durationInSeconds = await input.computeDuration();

Using with staticFile in Remotion

import { staticFile } from "remotion";

const duration = await getAudioDuration(staticFile("audio.mp3"));