v1.56.0
Vanilagy/mediabunnyv1.56.0Sep 8, 2026by Vanilagy
AI Summary
This release introduces support for negative timestamps and enhances copy conversions, allowing users to trim media without transcoding. It includes improvements to various container formats like ISOBMFF and MPEG-TS, along with several bug fixes.
Key Highlights
- Conversion API can perform copy conversions for arbitrary trim ranges without transcoding.
- Added support for muxing negative timestamps in ISOBMFF, Matroska, and MPEG-TS containers.
- Introduced `ConversionOptions.copy` to control timestamp shifts during copy operations.
- MPEG-TS demuxer now correctly infers negative timestamps and handles modulus wrapping.
New Features
- Copy conversions for arbitrary trim ranges
- Added `ConversionOptions.copy` configuration
- Muxing support for negative timestamps (ISOBMFF, Matroska, MPEG-TS)
- Added `OutputFormat.negativeTimestampSupport` option
- Added `handleUnhandledError` to source options
- Fixed Matroska duration computation and empty audio trim crashes
Full Release Notes
The theme of this release is negative timestamps and better copy conversions, a long-requested feature! For more, check out [Copying media data](https://mediabunny.dev/guide/converting-media-files#copying-media-data). - Conversion API can now do copy conversions for arbitrary trim ranges, allowing you to trim media without transcoding it (#149) - Added `ConversionOptions.copy` for controlling copy-specific behavior, such as the tolerated timestamp shift that's allowed to make copy conversions work - Added support for muxing negative timestamps for ISOBMFF, Matroska, and MPEG-TS. In the case of ISOBMFF, this generates an edit list that trims off the negative section of the media. - MPEG-TS demuxer now infers negative timestamps and handles one modulus wrap of timestamps - Added `OutputFormat.negativeTimestampSupport` - Added `handleUnhandledError` to most source options to enable better handling of otherwise unhandled errors that are thrown out of band (#489) - Fixed Matroska `getDurationFromMetadata()` computation logic - Fixed empty audio trim range crashing conversions (#486) - Fixed `Content-Length` being used incorrectly when the server returns compressed content (#487)