Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Vanilagy/mediabunny/llms.txt

Use this file to discover all available pages before exploring further.

OutputFormat

Base class representing an output media file format.
abstract class OutputFormat

Properties

fileExtension
string
The file extension used by this output format, beginning with a dot.
mimeType
string
The base MIME type of the output format.
supportsVideoRotationMetadata
boolean
Whether this output format supports video rotation metadata.
supportsTimestampedMediaData
boolean
Whether this output format’s tracks store timestamped media data. When true, the timestamps of added packets will be respected, allowing things like gaps in media data or non-zero start times. When false, the format’s media data implicitly starts at zero and follows an implicit sequential timing from there, using the intrinsic durations of the media data.

Methods

getSupportedCodecs
() => MediaCodec[]
Returns a list of media codecs that this output format can contain.
getSupportedTrackCounts
() => TrackCountLimits
Returns the number of tracks that this output format supports.
getSupportedVideoCodecs
() => VideoCodec[]
Returns a list of video codecs that this output format can contain.
getSupportedAudioCodecs
() => AudioCodec[]
Returns a list of audio codecs that this output format can contain.
getSupportedSubtitleCodecs
() => SubtitleCodec[]
Returns a list of subtitle codecs that this output format can contain.

Types

InclusiveIntegerRange

Specifies an inclusive range of integers.
type InclusiveIntegerRange = {
  min: number;
  max: number;
}

TrackCountLimits

Specifies the number of tracks (for each track type and in total) that an output format supports.
type TrackCountLimits = {
  video: InclusiveIntegerRange;
  audio: InclusiveIntegerRange;
  subtitle: InclusiveIntegerRange;
  total: InclusiveIntegerRange;
}

MP4 and MOV formats

Mp4OutputFormat

MPEG-4 Part 14 (MP4) file format. Supports most codecs.
class Mp4OutputFormat extends IsobmffOutputFormat

Constructor

new Mp4OutputFormat(options?: IsobmffOutputFormatOptions)

Properties

fileExtension
string
Returns '.mp4'
mimeType
string
Returns 'video/mp4'
supportsVideoRotationMetadata
boolean
Returns true
supportsTimestampedMediaData
boolean
Returns true

MovOutputFormat

QuickTime File Format (QTFF), often called MOV. Supports all video and audio codecs, but not subtitle codecs.
class MovOutputFormat extends IsobmffOutputFormat

Constructor

new MovOutputFormat(options?: IsobmffOutputFormatOptions)

Properties

fileExtension
string
Returns '.mov'
mimeType
string
Returns 'video/quicktime'
supportsVideoRotationMetadata
boolean
Returns true
supportsTimestampedMediaData
boolean
Returns true

IsobmffOutputFormatOptions

ISOBMFF-specific output options.
type IsobmffOutputFormatOptions = {
  fastStart?: false | 'in-memory' | 'reserve' | 'fragmented';
  minimumFragmentDuration?: number;
  metadataFormat?: 'auto' | 'mdir' | 'mdta' | 'udta';
  onFtyp?: (data: Uint8Array, position: number) => unknown;
  onMoov?: (data: Uint8Array, position: number) => unknown;
  onMdat?: (data: Uint8Array, position: number) => unknown;
  onMoof?: (data: Uint8Array, position: number, timestamp: number) => unknown;
}

Matroska and WebM formats

MkvOutputFormat

Matroska file format. Supports writing transparent video. For a video track to be marked as transparent, the first packet added must contain alpha side data.
class MkvOutputFormat extends OutputFormat

Constructor

new MkvOutputFormat(options?: MkvOutputFormatOptions)

Properties

fileExtension
string
Returns '.mkv'
mimeType
string
Returns 'video/x-matroska'
supportsVideoRotationMetadata
boolean
Returns false (while it technically supports it with ProjectionPoseRoll, many players appear to ignore this value)
supportsTimestampedMediaData
boolean
Returns true

WebMOutputFormat

WebM file format, based on Matroska. Supports writing transparent video. For a video track to be marked as transparent, the first packet added must contain alpha side data.
class WebMOutputFormat extends MkvOutputFormat

Constructor

new WebMOutputFormat(options?: WebMOutputFormatOptions)

Properties

fileExtension
string
Returns '.webm'
mimeType
string
Returns 'video/webm'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns true

MkvOutputFormatOptions

Matroska-specific output options.
type MkvOutputFormatOptions = {
  appendOnly?: boolean;
  minimumClusterDuration?: number;
  onEbmlHeader?: (data: Uint8Array, position: number) => void;
  onSegmentHeader?: (data: Uint8Array, position: number) => unknown;
  onCluster?: (data: Uint8Array, position: number, timestamp: number) => unknown;
}

WebMOutputFormatOptions

WebM-specific output options.
type WebMOutputFormatOptions = MkvOutputFormatOptions

Audio formats

Mp3OutputFormat

MP3 file format.
class Mp3OutputFormat extends OutputFormat

Constructor

new Mp3OutputFormat(options?: Mp3OutputFormatOptions)

Properties

fileExtension
string
Returns '.mp3'
mimeType
string
Returns 'audio/mpeg'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns false

Mp3OutputFormatOptions

MP3-specific output options.
type Mp3OutputFormatOptions = {
  xingHeader?: boolean;
  onXingFrame?: (data: Uint8Array, position: number) => unknown;
}

WavOutputFormat

WAVE file format, based on RIFF.
class WavOutputFormat extends OutputFormat

Constructor

new WavOutputFormat(options?: WavOutputFormatOptions)

Properties

fileExtension
string
Returns '.wav'
mimeType
string
Returns 'audio/wav'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns false

WavOutputFormatOptions

WAVE-specific output options.
type WavOutputFormatOptions = {
  large?: boolean;
  metadataFormat?: 'info' | 'id3';
  onHeader?: (data: Uint8Array, position: number) => unknown;
}

OggOutputFormat

Ogg file format.
class OggOutputFormat extends OutputFormat

Constructor

new OggOutputFormat(options?: OggOutputFormatOptions)

Properties

fileExtension
string
Returns '.ogg'
mimeType
string
Returns 'application/ogg'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns false

OggOutputFormatOptions

Ogg-specific output options.
type OggOutputFormatOptions = {
  maximumPageDuration?: number;
  onPage?: (data: Uint8Array, position: number, source: MediaSource) => unknown;
}

AdtsOutputFormat

ADTS file format.
class AdtsOutputFormat extends OutputFormat

Constructor

new AdtsOutputFormat(options?: AdtsOutputFormatOptions)

Properties

fileExtension
string
Returns '.aac'
mimeType
string
Returns 'audio/aac'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns false

AdtsOutputFormatOptions

ADTS-specific output options.
type AdtsOutputFormatOptions = {
  onFrame?: (data: Uint8Array, position: number) => unknown;
}

FlacOutputFormat

FLAC file format.
class FlacOutputFormat extends OutputFormat

Constructor

new FlacOutputFormat(options?: FlacOutputFormatOptions)

Properties

fileExtension
string
Returns '.flac'
mimeType
string
Returns 'audio/flac'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns false

FlacOutputFormatOptions

FLAC-specific output options.
type FlacOutputFormatOptions = {
  onFrame?: (data: Uint8Array, position: number) => unknown;
}

Transport Stream formats

MpegTsOutputFormat

MPEG Transport Stream file format.
class MpegTsOutputFormat extends OutputFormat

Constructor

new MpegTsOutputFormat(options?: MpegTsOutputFormatOptions)

Properties

fileExtension
string
Returns '.ts'
mimeType
string
Returns 'video/MP2T'
supportsVideoRotationMetadata
boolean
Returns false
supportsTimestampedMediaData
boolean
Returns true

MpegTsOutputFormatOptions

MPEG-TS-specific output options.
type MpegTsOutputFormatOptions = {
  onPacket?: (data: Uint8Array, position: number) => unknown;
}

Build docs developers (and LLMs) love