# What changed in mediabunny

> 386 changes in mediabunny 1 from its official release notes, upgrade guides and advisories: 13 breaking, 23 deprecations, 117 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/mediabunny/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## mediabunny 1

### Breaking changes

- Repeated metadata keys for Vorbis-style metadata in Ogg and FLAC are now surfaced as string arrays in raw. (1.56.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.1)
- The WAVE demuxer now throws immediately for unsupported formats. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- When defined, keyFrame now always takes precedence over keyFrameInterval. (1.46.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.46.0)
- CustomSource is the new name for StreamSource. (1.45.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.4)
- Now always returns tracks in the order in which they appear in the input file. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds an async getter for codec data, alongside async getters for most `InputTrack` data to support lazy loading. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now outputs audio packets in ADTS format. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Defaults to the input file's first timestamp instead of 0, unless that timestamp is smaller than 0. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Values returned by OutputFormat no longer use Infinity for upper bounds; they contain the actual bound instead. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Calling Conversion.cancel() causes existing execute() calls to throw instead of never resolving. (1.27.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.5)
- VideoSample.allocationSize always throws if the internal format is null. (1.27.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.4)
- VideoSample.copyTo always throws if the internal format is null. (1.27.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.4)
- `allocationSize()` and `copyTo()` now throw with an explicit error message when called with `format === null`. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)

### Deprecations

- ConversionVideoOptions.allowRotationMetadata is deprecated; use ConversionVideoOptions.allowTransformationMetadata instead. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- OutputFormat.supportsVideoRotationMetadata is deprecated; use OutputFormat.supportsVideoTransformationMetadata instead. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- Bitrate fields across the API are deprecated; use the new quality field instead. (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- StreamSource remains available as a deprecated alias for CustomSource. (1.45.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.4)
- Deprecated; use `InputAudioTrack.getNumberOfChannels()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputAudioTrack.getSampleRate()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use the async `InputTrack.getCodec()` getter instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputTrack.getDisposition()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputTrack.getInternalCodecId()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputTrack.getLanguageCode()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputTrack.getName()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputTrack.getTimeResolution()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getCodedHeight()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getCodedWidth()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getDisplayHeight()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getDisplayWidth()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getPixelAspectRatio()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getRotation()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getSquarePixelHeight()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `InputVideoTrack.getSquarePixelWidth()` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `.on('read', ...)` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Deprecated; use `.on('write', ...)` instead. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Added a warning for double library loading. (1.30.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.30.0)

### New APIs and options

- HLS variable substitution and #EXT-X-DEFINE tags are now supported. (1.61.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.0)
- Added a transparency hint for the muxer. (1.60.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.60.0)
- Added the beatsPerMinute metadata tag. (1.59.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.0)
- Added boundaryTolerance to control the maximum permitted additional or removed media needed to make a copy path possible. (1.58.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.0)
- BaseTrackMetadata adds bitrate and averageBitrate fields for providing bitrate guesstimates as metadata. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- The canEncodeVideo helper functions accept a frameRate option. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- Flip metadata and operations are supported across the API surface, including ISOBMFF and Matroska; custom transformers receive flip as a transformation input, and Conversion can pass it through in the packet copy path. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- ISOBMFF btrt bitrate metadata is extracted and exposed through InputTrack.getBitrate() and InputTrack.getAverageBitrate(). (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- InputVideoTrack exposes the raw 3x3 affine transformation matrix applied to raw video frames; the matrix can also be written into new files through VideoTrackMetadata.transformationMatrix. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- Controls copy-specific behavior, including the tolerated timestamp shift allowed to make copy conversions work. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Added to most source options to enable better handling of otherwise unhandled errors thrown out of band. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Adds a property indicating support for negative timestamps; negative timestamps can now be muxed for ISOBMFF, Matroska, and MPEG-TS. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Adds DTS as an audio codec under the codec identifier dts. (1.55.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.0)
- Adds support for reading and writing DTS in ISOBMFF files. (1.55.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.0)
- Adds support for reading and writing DTS in Matroska files. (1.55.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.0)
- Adds an extension package providing a fast DTS audio decoder and encoder polyfill. (1.55.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.0)
- Adds support for reading and writing DTS in MPEG-TS files. (1.55.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.0)
- Retrieves detailed video frame rate information. (1.54.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.54.0)
- New track metadata enables writing zero-packet tracks. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- New track metadata enables writing zero-packet tracks. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- Quality can represent arbitrary quality levels, specify bitrate and bitrate mode, and set a concrete per-codec quantizer level. (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- Setting composable: true makes a Conversion no longer own its Output, allowing additional tracks to be added manually or multiple conversions to target the same output. (1.51.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.51.0)
- Conversions can be paused using the pauseSignal option on execute. (1.51.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.51.0)
- Conversions can be stepped forward deliberately using the until option on execute. (1.51.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.51.0)
- WAVE now supports reading and writing the 64-bit float sample format. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- New extension package adds an extremely fast ProRes decoder based on TurboRes that supports all ProRes flavors. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- Now has full ProRes decode and encode support, including transparency. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- New callback for custom encoders and decoders can surface errors that occur outside normal method calls. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- Added read/write support for Apple ProRes across ISOBMFF and Matroska. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- A new singleton controls Mediabunny's log level, allowing CLI applications to silence console output. (1.49.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.49.0)
- Decoder preferences like hardware acceleration can now be configured for each video sink. (1.48.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.0)
- Added an option to disable offsetting timestamps by date time metadata found in HLS playlists; it defaults to true. (1.48.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.0)
- Adds a method for getting a slice of an existing audio sample. (1.47.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.47.0)
- Adds options for specifying a custom hardware context. (1.46.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.46.0)
- Adds per-frame encoding settings through VideoSample.encodeOptions. (1.46.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.46.0)
- Adds a method for providing per-frame encoding settings. (1.46.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.46.0)
- Added support for reading and writing QuickTime nclc color space information. (1.45.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.5)
- Provides custom data backing for AudioSample to avoid copying data around. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- A new extension package enables the full Mediabunny feature set, including audio and video decoders and encoders and video transformations, in Node, Bun, and Deno. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Register Mediabunny for server-side use to access audio and video decoders and encoders, as well as video transformation capabilities. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Registers a custom transformer to power VideoSample.transform(). (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- A CPU-based alpha splitter and merger fallback is available for transparent video encoding and decoding. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Performs simple transformations on a video frame, including resize, rotate, and crop. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Provides custom data backing for VideoSample to avoid copying data around. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Adds an option that can be set to false to fall back to a more primitive, slower, but potentially more stable way of reading from Blobs. (1.44.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.44.0)
- Add `sampleFormat` to modify the audio sample format before passing it to the encoder. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- Add `sampleFormat` to modify the audio sample format before passing it to the encoder. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- Adds an audio pre-processing transform for changing audio data, such as resampling or remixing, before it is passed to the encoder. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds support for writing tracks whose timestamps are relative to Jan 1 1970; input tracks can be checked with `InputTrack.isRelativeToUnixEpoch()`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds global helpers for checking decodability and listing decodable codecs, including audio- and video-specific variants. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a way to write Segmented MP4 as a segment file and a separate init file. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Conversion can now create multiple output tracks from a single input track, enabling multiple renditions. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now receives a second `processedTime` argument. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a setting accepting `'all'` or `'primary'` to control which tracks are considered for conversion. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds an event-listening base class with an `.on` method, used by `Input`, `Output`, `Source`, and `Target`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds support for reading HLS playlists, including live and VOD playlists, multiple tracks, encryption, and supported segment formats. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds HLS playlist writing for configurable track configurations and output structure, with VOD and live support. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Emits a `source` event every time a new source is acquired. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a check that resolves to `true` if Mediabunny can read the file. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now accepts optional tracks and packet retrieval options to limit duration calculation and configure live-stream behavior with `skipLiveWait`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Retrieves duration from file metadata without finding the last packet; returns `null` if duration metadata is unavailable. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now accepts an optional `InputTrack[]`; when provided, the first timestamp is computed only for those tracks. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds format-specific input configuration, which can be used to provide decryption keys for DRM-protected content. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a separate init file for track initialization data, usable with segmented MP4 and MPEG-TS. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a way to determine whether tracks can be presented together, with helpers for finding pairable tracks. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now accepts `PacketRetrievalOptions` to configure live-stream behavior using `skipLiveWait`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds live-track detection and a refresh interval that can be used to poll the live edge for updates. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds track filtering and sorting queries accepted by track-selection methods on `Input`, with `asc`, `desc`, and `prefer` helpers. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a way to define the zero point for media sample timestamps; the option is also available for audio track sources. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Emits a `target` event every time a new target is acquired. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a separate init file target for formats that require one, such as CMAF. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a callback invoked right before output finalization completes. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds output track classes returned by the `Output.add*Track` methods. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds output track groups for defining track pairings in HLS outputs; tracks can be assigned through `BaseTrackMetadata.group`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Audio and video media sinks now accept packet retrieval options in their methods, enabling `skipLiveWait`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Can disable waiting for a live stream to catch up when media data beyond the live edge is requested. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds multi-file inputs that can return a source for a requested file path; custom implementations can use `CustomPathedSource`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds customizable multi-file outputs that return a new target for a given file path. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds `slice()` to sources and targets, returning ranged objects mapped to a subset of the original source or target. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds source reference counting; a source is disposed only after its last reference is freed. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Emits a `finalized` event after the target has been finalized. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a primary disposition to mark the main track, corresponding to HLS's `DEFAULT` attribute. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds a video pre-processing transform for changing frames, such as resizing or rotating them, before they are passed to the encoder. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Adds appendOnly to allow append-only (streamable) writing of FLAC files. (1.40.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.40.0)
- Adds a method to get the first key packet of a track, which is not necessarily the first overall packet. (1.39.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.39.0)
- Adds options for configuring the sampling frame rate of MediaStreamVideoTrackSource. (1.38.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.38.0)
- Adds a package providing FLAC encoder support in browser and server-side environments. (1.37.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.37.0)
- Adds a package that polyfills AAC encoder support for browsers that lack it, such as Firefox, and for server-side environments. (1.36.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.36.0)
- Adds pixelAspectRatio, squarePixelWidth, and squarePixelHeight fields to InputVideoTrack. (1.35.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.0)
- Adds the Rational utility type. (1.35.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.0)
- Adds the Rectangle utility type. (1.35.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.0)
- Adds pixelAspectRatio, squarePixelWidth, squarePixelHeight, and visibleRect fields to VideoSample. (1.35.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.0)
- Adds an extension package providing encoding and decoding support for AC-3 and E-AC-3 audio codecs. (1.34.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.0)
- ISOBMFF, Matroska, and MPEG-TS now support reading and writing AC-3 and E-AC-3. (1.33.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.33.0)
- A registry was added for formally specifying codecs that go beyond WebCodecs. (1.33.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.33.0)
- The Conversion API now supports negative trim ranges. (1.33.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.33.0)
- OutputFormat now exposes supportsTimestampedMediaData metadata. (1.33.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.33.0)
- Added the parallelism option, which can be set to 1 to prevent deadlock issues in certain conditions. (1.32.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.32.0)
- Added support for reading and writing ID3 metadata for ADTS files. (1.31.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.31.0)
- Added a property representing the 1-based index of a track among other tracks of the same type (video or audio). (1.30.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.30.0)
- Returns the smallest starting timestamp across all tracks. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Adds the MPEG-TS export. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Adds MPEG-TS input support for AVC, HEVC, AAC, and MP3. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Adds MPEG-TS output support for AVC, HEVC, AAC, and MP3. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Adds the options export for MPEG-TS output format. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Added an option to set an upper bound for page duration, enabling lower-latency streaming. (1.28.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.28.0)
- Adds a `hardwareAcceleration` option for video conversion. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- Accepts options for specifying output custom pixel formats, plane layouts, and more. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- Accepts options for specifying output custom pixel formats, plane layouts, and more. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- Adds the `VideoSampleColorSpace` export, now used by `VideoSample.colorSpace`. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- Adds an optional `layout` option. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- Adds a video conversion option, true by default, that allows rotation metadata to be stripped from the output file. (1.26.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.26.0)
- Adds pause() and resume() methods. (1.26.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.26.0)
- Adds pause() and resume() methods. (1.26.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.26.0)
- Track disposition metadata can now be read and written, including whether tracks are default or intended for hearing-impaired users. (1.25.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.0)
- Added read/write support for AVC3 in ISOBMFF. (1.24.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.6)
- Added a Conversion API function for custom user-defined video and audio transformations, such as correcting color or adding an overlay. (1.24.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.0)

### Performance

- Fixes a performance regression in the server package. (1.61.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.6)
- Improved performance of color-alpha merging code by using a worker pool. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- Fixed metadata reading that sometimes took unnecessarily long. (1.48.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.1)
- Improves cloning performance for ArrayBuffer-backed samples. (1.46.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.46.0)
- Optimized the seeking algorithm to work better across networks. (1.30.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.30.0)
- Tree shaking was improved for some bundlers. (1.24.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.7)

### Behavior and default changes

- Ogg files with non-zero start timestamps are now supported. (1.61.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.0)
- Ogg end packet trimming is now supported. (1.61.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.0)
- Video encoders claimed due to inactivity are now automatically refreshed. (1.61.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.0)
- Made the HLS demuxer less strict with playlists that reference non-existing media groups. (1.59.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.0)
- ISOBMFF muxing now automatically writes the btrt bitrate box. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- Copy conversions now support arbitrary trim ranges, allowing media to be trimmed without transcoding. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Color space information is extracted directly from the video bitstream when the container has no metadata. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- ISOBMFF and Matroska muxers now include partial color space information in the container. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- Added support for ISOBMFF files carrying Annex B AVC/HEVC. (1.55.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.2)
- Writing HLS with single file mode and fMP4 segments now produces a standalone-valid segments file that can be played independently. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- Mipmapping for resizing has been improved. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- Improved the quality of canvas-based video resizing. (1.52.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.2)
- Encoders support quantizer-based constant-quality encoding; quantizer mode is selected automatically when using subjective qualities. (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- Mediabunny can now read ID3v2 metadata from FLAC files. (1.49.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.49.0)
- The default cache size increases from 16 MiB to 32 MiB. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- The FLAC encoder can output different bit depths (16 or 24) depending on the incoming audio samples. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- The default trim start is now the start timestamp of non-user-discarded tracks rather than all tracks. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- No longer need to begin with a key frame if codec parameters occur in later packets; files with no key frames require `initInput`. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now supports responses without a known length, including those without `Content-Length` or `Content-Range` headers. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- No longer always requests byte 0 to determine file size; it can determine size from any starting offset. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- The default key-frame interval is now 2 seconds instead of 5 seconds. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- TXXX ID3v2 frames now parse as Record<string, string>. (1.41.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.41.0)
- Includes displayAspectWidth and displayAspectHeight only when they are necessary. (1.40.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.40.0)
- Samples the underlying video track at a regular frame rate, reducing the chance of output files with wildly variable FPS that glitch in some players. (1.38.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.38.0)
- Reading and writing video frames with non-square pixels is supported for ISOBMFF, Matroska, and MPEG-TS, including when drawing video samples and using the Conversion API. (1.35.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.0)
- AC-3 and E-AC-3 are now recognized audio codecs. (1.33.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.33.0)
- Can now modify almost all packet properties, rather than only timestamp and duration. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- UrlSource now aborts ongoing requests immediately on dispose. (1.27.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.1), [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.2)
- Now returns `Promise<PlaneLayout[]>` instead of `Promise<void>`, matching the WebCodecs API. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- AVC SEI recovery points count as keyframes, except on older Chromium versions. (1.25.8) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.8)
- Error logging is now added when open samples are garbage collected. (1.25.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.4)
- Disabled ISOBMFF tracks are now included in the returned tracks, with disposition.default set to false. (1.25.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.0)

### Fixes and other changes

- Adds a workaround for Firefox emitting an incorrect AVCC record when encoding AVC on Windows and Linux. (1.61.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.6)
- Adds a workaround for Firefox incorrectly shifting video timestamps forward when encoding. (1.61.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.6)
- Improves the workaround for WebKit AudioEncoder emitting an incorrect AAC description. (1.61.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.6)
- Progress reporting is improved when some tracks have less data than others. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- Packet iteration no longer stops prematurely when some segments have zero packets. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- Fixed a race condition that sometimes prevented InputDisposedError from being thrown when disposing HLS inputs. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- Fixed color spaces when encoding video and when converting to RGB. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- Fixed excessive packet pressure being applied to new video decoders. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- The constructor no longer throws when given a VideoFrame with out-of-spec color space fields. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- The VP9 quantizer range is now 0–255. (1.61.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.5)
- Fixed incorrect packet timestamps surfaced by the MPEG-TS demuxer for certain malformed streams. (1.61.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.4)
- Composition offsets in trun boxes are always parsed as signed, fixing playback for some files written by faulty muxers. (1.61.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.3)
- Fixed AppendOnlyStreamTarget not emitting the write event. (1.61.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.2)
- Fixed the emitted codec string differing from the actual codec parameters in the bitstream. (1.61.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.2)
- Fixed color range issues in alpha frame merging. (1.61.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.1)
- Pixel aspect ratio information is extracted from SPS when the ISOBMFF file lacks a pasp box. (1.61.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.1)
- Extension worker threads are fixed for Bun 1.4+ and Deno. (1.61.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.0)
- The MP3 muxer now finalizes successfully when xingHeader is false. (1.61.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.61.0)
- Fixed the codec string used for Opus in HLS. (1.60.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.60.0)
- The HLS muxer no longer emits `BANDWIDTH=0`. (1.60.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.60.0)
- Fixed how Matroska segment duration is interpreted. (1.60.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.60.0)
- Fixed conversion API errors for files that violate the GOP timestamp rule for audio tracks. (1.59.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.1)
- Extension worker errors now surface instead of causing promises to never resolve. (1.59.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.1)
- Added support for recursive SeekHeads when reading Matroska. (1.59.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.1)
- Fixed audio resampling sometimes flushing output buffers too early. (1.59.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.0)
- Fixed the HLS BANDWIDTH attribute not being inherited to tracks for URI-less media renditions. (1.59.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.59.0)
- Fixed inverted A-law audio polarity. (1.58.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.1)
- Fixed off-by-one errors when using AudioSample.copyTo(). (1.58.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.1)
- Fixed invalid scaling for µ-law and A-law audio. (1.58.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.1)
- Fixed off-by-one errors when doing PCM audio encode->decode roundtrips. (1.58.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.1)
- Content-Length and Range headers are ignored on encoded 206 responses. (1.58.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.0)
- Fixed Conversion API errors when the input file violated the GOP keyframe rule. (1.58.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.58.0)
- Incorrect parsing of AES-128 IV in HLS is fixed. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- Untranslated rotation matrices are no longer written into ISOBMFF header boxes. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- The ISOBMFF demuxer now respects the movie-global transformation matrix. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- If Output.finalize() fails, Output now automatically transitions to the canceled state. (1.57.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.57.0)
- CustomSource now cancels streams when disposing inputs. (1.56.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.3)
- Fixed upmixing from stereo to quad or 5:1 that resulted in NaN samples. (1.56.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.2)
- The AVC software decoder no longer drops B-frames. (1.56.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.1)
- The FLAC muxer no longer prefers raw.date over date for metadata. (1.56.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.1)
- Fixed incorrect use of Content-Length when the server returns compressed content. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Conversions no longer crash on an empty audio trim range. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Fixed the Matroska duration computation logic. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- The MPEG-TS demuxer now infers negative timestamps and handles one modulus wrap of timestamps. (1.56.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.56.0)
- Sample iterators now terminate internally when throwing. (1.55.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.7)
- Relaxed an erroneous assert in esds box parsing. (1.55.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.6)
- AudioSample.copyTo() is reliable for non-f32-planar targets across all browser versions. (1.55.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.5)
- Fixed a browser-internal memory leak in BlobSource. (1.55.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.5)
- Infinity is no longer rejected for numeric fields whose documentation permits it. (1.55.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.5)
- Fixes a missing audio decoding timestamp offset in rare cases. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- Fixes packet parsing logic for AV1 and VP9. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- Fixes Chromium choking on AVC SEI recovery points. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- Fixes incomplete color space information being passed to Chromium's VideoDecoder, which caused incorrect colors. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- Fixes generation of the vpcC box. (1.55.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.4)
- Fixed incomplete parsing and generation of `AacAudioSpecificConfig`. (1.55.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.3)
- Fixed recognition of fMP4 HLS segments that start with an `emsg` box. (1.55.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.3)
- Fixed Mediabunny's behavior with custom `Promise` implementations. (1.55.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.3)
- Fixed the missing fallback for encrypted ISOBMFF files. (1.55.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.3)
- The missing WebCodecs error message is more useful in insecure browser contexts. (1.55.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.2)
- Fixes an error caused by closing a decoder twice. (1.55.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.55.0)
- Added a workaround for a WebKit bug where TypedArray offsets are not respected when writing to FileSystemWritableFileStream. (1.53.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.1)
- Video and audio decoder config validation has been improved. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- Encodability checks no longer throw on Safari in some cases. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- fMP4 files with sparse fragments now have correct traf indices written when not all tracks occur in every fragment. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- HLS writing now produces a correct init segment when segments are sparse and not all tracks occur in every segment. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- Input.getFirstTimestamp() now works for files with zero-packet tracks. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- A rare assertion error in the MPEG-TS demuxer has been fixed. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- UrlSource now honors maxCacheSize when the server responds with 200 and slows response consumption in that case. (1.53.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.53.0)
- Changed alternate group assignment in the ISOBMFF muxer to work around a WebKit bug. (1.52.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.3)
- Fixed an occasional assertion failure when Output.start() is not awaited. (1.52.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.3)
- Fixed the ISOBMFF Compressor name not being written as a Pascal-style string. (1.52.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.1)
- Improved error handling reduces “Sample wasn't closed” warnings. (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- Promises no longer hang indefinitely sometimes when calling Input.dispose(). (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- Video tracks are now labeled as containing an alpha track, including tracks using ProRes 4444. (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- Decoders are now closed in error situations where they previously could remain open. (1.52.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.52.0)
- BlockDuration is now written when writing WebVTT into Matroska. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- Video and audio samples are always closed, including during error cases. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- Fixed nested workers randomly shutting off in Firefox. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- Duration is now computed correctly for multi-frame Opus packets. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- Writing WebVTT in MP4 no longer creates an assertion error. (1.50.9) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.9)
- Fixed incorrect decoding of ProRes 12-bit frames. (1.50.8) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.8)
- Fixed occasional crackle from the audio resampler. (1.50.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.7)
- Fixed packet fixing that was slightly too aggressive with AUDs. (1.50.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.6)
- Fixed occasional stalls in file reading. (1.50.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.5)
- Fixed warnings in the Vite dev server caused by this package. (1.50.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.3)
- Fixed ProRes packets not being read and written correctly from and to Matroska files. (1.50.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.2)
- Fixed bundler warnings when using the package. (1.50.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.1)
- Fixed the Conversion API sometimes changing audio sample format mid-conversion. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- Fixed color-alpha merging code for padded frames. (1.50.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.50.0)
- Removed an unintended console log from the range request warning path, preventing that extra output. (1.49.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.49.0)
- Fixed packet segmentation for AVC/HEVC in MPEG-TS when no AUDs are present. (1.48.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.1)
- Improved error handling after an Input is disposed. (1.48.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.0)
- Fixed request resolution logic that did not properly handle redirects. (1.48.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.0)
- Fixed occasional assertion failures when reading files with high contention. (1.48.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.48.0)
- Disposing invalid input no longer causes an unhandled rejection. (1.47.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.47.0)
- Conversion API process is now called after other transformations instead of before them. (1.47.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.47.0)
- Zero-sample ISOBMFF fragments no longer throw an error. (1.47.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.47.0)
- Improves VideoSample error messages when the environment has insufficient canvas support. (1.46.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.46.0)
- At least one track per type is now enabled when muxing ISOBMFF. (1.45.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.5)
- Fixed memory leaks in @mediabunny/server. (1.45.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.5)
- UrlSource now properly respects the Range header passed into requestInit. (1.45.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.5)
- Fixed some ID3 tags emitting Date instances with an incorrect timezone. (1.45.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.4)
- Fixed FinalizationRegistry causing Input memory leaks when used with CustomSource. (1.45.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.4)
- Recovery of MP3 frame boundaries is improved for broken files. (1.45.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.4)
- Added a workaround for a Chromium bug that caused the first encoded video packet not to be marked as key. (1.45.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.3)
- Fixed a bug in ID3v2 size parsing. (1.45.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.2)
- Segments starting with a sidx box are now recognized. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Track process synchronization is fixed; reads are now more sequential. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Incorrect timestamps of decoded audio in Chromium are fixed. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- The demuxer no longer errors when seeking to negative timestamps. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Range iterators no longer cut off samples with negative timestamps by default. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- No longer throws when the sample format is null and a custom format override is provided in the options. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- No longer throws when the sample format is null and a custom format override is provided in the options. (1.45.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.0)
- Fixed incorrect timestamps that could lead to negative timestamp errors. (1.44.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.44.2)
- Fixed negative timestamps occurring with live media driven by media sources, which led to muxer errors. (1.44.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.44.1)
- Fixed behavior on ISOBMFF files with incorrect pasp boxes. (1.43.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.1)
- Fixes some HEVC packets that caused VideoDecoder errors in Chromium. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- Fixes FLAC bitrate validation, which incorrectly treated bitrate as a required field. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- Fixes unreliable PCM logic for regular MP4s. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- Fixes the structure of regular MP4s containing tracks with non-zero start timestamps. (1.43.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.43.0)
- Fixes access to the file system in server-side environments. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Fixes problems handling timestamps beyond the int32 limit. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Fixes duration calculation and support for multiple ISOBMFF `trun` boxes. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Fixes incorrect frame locations in the MP3 Xing TOC. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- The codec string is now correctly identified as MP3. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Fixes an off-by-one reorder buffer error. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Its reader is now properly canceled when the source is disposed. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Now reliably controls the amount of parallel requests. (1.42.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.42.0)
- Fixed missing default values in the Matroska demuxer. (1.40.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.40.1)
- Fixes incorrect rotation extraction in some cases. (1.40.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.40.0)
- Fixes incorrect reading of MPEG-TS PAT in some cases. (1.40.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.40.0)
- Fixes incorrectly written video rotation metadata, including when rotation is baked into the video. (1.40.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.40.0)
- Fixed incorrect GOP timestamp verification logic for the first GOP. (1.39.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.39.2)
- Fixed faulty MPEG-2 Transport Stream detection. (1.39.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.39.2)
- Fixed cases where the CTS offset was not included in fMP4 muxing. (1.38.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.38.1)
- Adds a fallback using a hidden <video> element, enabling Firefox support. (1.38.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.38.1)
- Fixed creation of .mov files that were incompatible with QuickTime when an audio track was present. (1.35.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.1)
- Fixes missing runtime validation for a couple of VideoSample constructor parameters. (1.35.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.35.0)
- Fixed an out-of-order issue with the ADTS muxer hooked up to StreamTarget. (1.34.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.5)
- Fixed bundling dependency errors involving this package. (1.34.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.5)
- Fixed errors being swallowed by StreamTarget. (1.34.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.5)
- Fixed Webpack errors when bundling @mediabunny/mp3-encoder and @mediabunny/ac3. (1.34.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.4)
- Fixed Node, Deno, and Bun processes not terminating because an alive worker was present. (1.34.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.4)
- The muxer now writes DTS as well as PTS for video tracks, fixing QuickTime playback issues. (1.34.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.3)
- Fixed crashes when WaveDemuxer encounters a corrupted ID3v2 chunk. (1.34.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.3)
- Fixed more deployment issues. (1.34.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.2)
- Fixed package publishing issues, making the package available for developers to use. (1.34.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.34.1)
- Fixed an assertion failure when reading out-of-bounds WAVE packets. (1.32.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.32.2)
- Fixed the WAVE demuxer trying to read before the start of the file. (1.32.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.32.1)
- Fixed recognition of MP3 files with an initial XING frame. (1.31.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.31.1)
- The demuxer is more resilient, using heuristics to find PMT without PAT and handling sections that don't contain a PES packet. (1.31.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.31.0)
- Fixed incorrect segmentation in MPEG-TS initialization that prevented codecs from being properly recognized. (1.30.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.30.1)
- Fixed the MPEG-TS demuxer reading the entire file during metadata extraction. (1.29.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.1)
- ISOBMFF, Matroska, and ADTS muxers now accept AAC in ADTS format as input. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Can now produce valid files containing zero packets. (1.29.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.29.0)
- Fixed the demuxer surfacing 0-byte packets in incorrectly-written files. (1.28.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.28.0)
- Fixed track selection so disabling a Matroska track no longer removes too many tracks. (1.27.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.6)
- Calling close on a media source after Output.finalize no longer throws an internal error. (1.27.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.5)
- Fixed occasional sample GC errors when canceling a conversion. (1.27.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.5)
- No longer throws when DefaultDuration and TimestampScale appear in the wrong order. (1.27.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.5)
- Fixed throwing when junk was at the end of the file. (1.27.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.5)
- Fixed crashes when tracks are disabled. (1.27.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.5)
- Fixed the incorrect packet iteration upper bound for sample range iterators. (1.27.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.4)
- Adds a workaround to avoid AudioData.copyTo crashing the tab in WebKit. (1.27.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.3)
- Added a workaround for faulty Chromium key frame detection that causes VideoDecoder errors. (1.27.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.45.5), [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.1)
- Decoder error stack traces are improved. (1.27.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.27.0)
- Fixed incorrectly ordered video frames when running Mediabunny in a worker on Safari. (1.25.8) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.8)
- Fixed overaggressive gap filling that caused audible artifacts. (1.25.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.7)
- Fixed keyframe sample index lookup logic in rare B-frame scenarios. (1.25.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.7)
- Fixed the MP3 encoder emitting incorrect timestamps sometimes. (1.25.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.7)
- Corrected the conversion trim option types: start and end are both optional. (1.25.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.5)
- Fixed missing AudioSample close() calls in the audio resampling path. (1.25.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.4)
- Fixed incomplete AV1 sequence header OBU parsing that resulted in incorrect codec strings. (1.25.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.4)
- Types related to ArrayBuffer views were narrowed due to TypeScript 5.9. (1.25.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.3)
- UrlSource now deals gracefully with servers that cap unbounded range requests. (1.25.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.3)
- UrlSource stops retrying failed requests when the Input is disposed. (1.25.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.2)
- Firefox video encodability checks are stronger to avoid false positives. (1.25.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.2)
- Fixed warnings about /* #__PURE__ */ annotations when bundling with Rollup. (1.25.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.25.1)
- Fixed interlaced AVC crashing the decoder on Chromium. (1.24.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.7)
- Playback now works for invalid Matroska files with no audio key frames. (1.24.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.7)
- Incorrect reordering of Matroska blocks was removed, fixing WebM distortions. (1.24.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.7)
- Fixed incorrect timestamp rounding logic. (1.24.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.7)
- VideoSamples are now closed when converting with a frame rate change and resizing. (1.24.7) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.7)
- Audio encoders now fill gaps between audio data with silence to prevent audio drift and ensure correct AV sync. (1.24.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.6)
- Fixed a FLAC frame parsing bug. (1.24.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.6)
- Fixed incorrect video track rotation metadata when converting files with the process option. (1.24.6) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.6)
- Fixed invalid AAC-encoded audio on Safari. (1.24.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.5)
- Fixed crashes when using BlobSource on iOS devices. (1.24.5) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.5)
- Fixed invalid packetization in the FLAC demuxer that led to decoder errors. (1.24.4) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.4)
- Fixed media tracks not being stopped inside the helper worker. (1.24.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.3)
- Fixed race condition bugs in the read orchestration worker. (1.24.3) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.3)
- Fixed invalid metadata boxes crashing the ISOBMFF parser. (1.24.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.2)
- Fixed parsing files whose clusters were too long according to their header. (1.24.2) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.2)
- Fixed automatic audio resampling not occurring when the process audio option is set. (1.24.1) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.1)
- Fixed an incorrect color space name. (1.24.0) — [release notes](https://github.com/Vanilagy/mediabunny/releases/tag/v1.24.0)
