v1.29.0
Vanilagy/mediabunnyv1.29.0Jan 19, 2026by Vanilagy
AI Summary
A major release introducing MPEG Transport Stream support for HLS functionality, along with improvements to timestamp handling and existing formatters.
Key Highlights
- Added full MPEG-TS support (demuxer and muxer) for AVC, HEVC, AAC, and MP3
- Added `Input.getFirstTimestamp()` to find the smallest starting timestamp across tracks
- Enhanced `EncodedPacket.clone()` to allow modification of almost all packet properties
- Updated `ConversionOptions.trim.start` default to the first timestamp of the input file
- Improved ADTS and Ogg muxers to handle AAC and produce valid files
Breaking Changes
- `EncodedPacket.clone()` now modifies properties (previously restricted to timestamp/duration)
- `TrackCountLimits` upper bounds changed from `Infinity` to actual values
- `ConversionOptions.trim.start` default behavior changed from 0 to first timestamp
New Features
- MpegTsOutputFormat and MpegTsInputFormat exports
- Input.getFirstTimestamp() method
Full Release Notes
This big new thing in this update is support for reading and writing MPEG Transport Stream (.ts) files, a major requirement for HLS support! - Added MPEG-TS demuxer and muxer, supporting AVC, HEVC, AAC, and MP3 - Added `MpegTsOutputFormat`, `MpegTsOutputFormatOptions`, `MpegTsInputFormat` and `MPEG_TS` exports - Added `Input.getFirstTimestamp()` which returns the smallest starting timestamp across all tracks - `EncodedPacket.clone()` can now modify almost all properties of the packet, not just timestamp and duration - `ConversionOptions.trim.start` now defaults to the first timestamp of the input file instead of 0 (unless that timestamp is smaller than 0). This corrects a long-standing mismatch between the docs and the implementation. - ISOBMFF, Matroska and ADTS muxers now properly accept AAC in ADTS format as input - ADTS demuxer has been simplified and now outputs audio packets in ADTS format - Ogg muxer can now produce valid 0-packet files - `TrackCountLimits` returned by `OutputFormat` no longer contain `Infinity` for the upper bounds but the actual bound instead.