Vanilagy
14fb7d0119
Add ducktyped Promise checks ( fixes #472 )
2026-08-26 11:24:24 +02:00
Vanilagy
166298df2c
Make WebCodecs missing error message more helpful ( fixes #466 )
2026-08-20 23:22:28 +02:00
Vanilagy
914907b5db
Define DTS codec, add muxing and demuxing support across ISOBMFF, Matroska, and MPEG-TS, add DTS encode/decode support to @mediabunny/server
2026-08-15 16:19:12 +02:00
c3df2a24e5
Add custom quality factors and quantizer bitrate mode ( #448 )
...
* Add custom quality factors and quantizer bitrate mode (closes #327 )
* Fix quantizer mode fallback and per-frame quantizer edge cases
* Clean up quantizer mode tests
* Quantizer implementation
* Add quality tests
* Improve conversion codec error message, make test more lenient
* Add quantizer support blog post
---------
Co-authored-by: Vanilagy <[email protected] >
2026-07-30 17:24:59 +02:00
Vanilagy
cdc2ef63dd
Add Logging singleton to manually control Mediabunny's console output ( fixes #415 )
2026-06-18 19:32:18 +02:00
Vanilagy
0cdf0063e2
Add VideoSample.encodeOptions, optimized ArrayBuffer-backed VideoSample cloning
2026-06-02 18:01:22 +02:00
Vanilagy
05f8ecd908
Respect Range header for UrlSource ( #387 )
2026-06-02 11:05:46 +02:00
Vanilagy
f5bd540863
Add the video portion of @mediabunny/server
2026-05-05 23:38:14 +02:00
Vanilagy
9ed21bf9c6
Fix behavior with files with invalid pasp box (with num & den === 0) ( fixes #362 )
2026-05-02 14:27:25 +02:00
Vanilagy
9fdf263482
Merge branch 'main' into hls
2026-04-24 20:56:59 +02:00
Vanilagy
97f6b35cda
Add special TXXX handling for ID3v2
2026-04-24 19:42:15 +02:00
Vanilagy
1ca3e48f48
Fix?
2026-04-24 19:06:45 +02:00
Vanilagy
5f8978271e
Clarify
2026-04-24 19:02:35 +02:00
Vanilagy
5ee78c6480
Add pssh box parsing and expose them in resolveKey
2026-04-24 19:01:25 +02:00
Vanilagy
493ef50820
Add support for SAMPLE-AES and SAMPLE-AES-CTR decryption, add "Common Encryption" support to ISOBMFF demuxer, add InputFormatOptions, rewrite ISOBMFF track codec resolution
2026-04-22 16:54:49 +02:00
77e70f9090
Add BufferTarget.onFinalize, OutputOptions.onFinalize, ConcurrentRunner ( #349 )
...
* Add BufferTarget.onFinalize option for awaitable async action on finalize
The `finalized` event fires synchronously and its return value is ignored,
making it unsuitable for use cases where the muxer should wait (e.g.
uploading the buffer to S3, R2, or other object stores that require a
known Content-Length and therefore can't stream via StreamTarget).
Adds a new `BufferTargetOptions` type with an `onFinalize` callback that
the muxer awaits before resolving. Matches the existing callback pattern
used by `HlsOutputFormatOptions.onSegment`, `onMaster`, etc.
When used with PathedTarget, this provides proper backpressure: the next
segment won't start being produced until the previous one has finished
uploading, keeping memory bounded regardless of video length.
- Adds `BufferTargetOptions` type, exported from the package root
- `BufferTarget` constructor now accepts optional options (backward compatible)
- `_finalize()` awaits `onFinalize` before emitting the `finalized` event
- Adds runtime validation for non-function callbacks
- Updates "Upload to a server" docs in writing-hls.md with S3 pattern
- Documents `onFinalize` in writing-media-files.md BufferTarget section
- Adds tests for callback invocation, async awaiting, backward compat, and validation
* Add ConcurrentRunner, add OutputOptions.onFinalize, adjust docs accordingly, clean up tests
* give me more control baby
* forgot to tell about it
* polish guide and js docs
* vanilagy says remove this, docs will reveal it
---------
Co-authored-by: Vanilagy <[email protected] >
2026-04-17 18:42:09 +02:00
Vanilagy
95e9dc5210
MORE CODE REVIEW
2026-04-16 18:27:51 +02:00
Vanilagy
7080b79a2a
Update docs a bunch, fix some typos
2026-04-15 14:36:53 +02:00
Vanilagy
051578c2ca
Remove input track descriptors, add async getters on tracks for everything, deprecate old sync getters
2026-04-10 16:23:17 +02:00
Vanilagy
0813bcab28
Add missing doc blocks for everything, add PathedTarget and PathedSource, few other changes & fixes
2026-04-09 15:22:45 +02:00
Vanilagy
bee1518100
Add TrackDescriptor concept
2026-04-08 12:21:08 +02:00
Vanilagy
024660773b
Add video frame preprocessing to VideoEncodingConfig & VideoEncoderWrapper
2026-04-01 13:30:34 +02:00
Vanilagy
b06e407d65
Add HLS live mode
2026-03-31 14:13:00 +02:00
Vanilagy
3bcbcc13f0
Add CMAF format and CMAF/init segment support to HLS muxer
2026-03-30 17:06:57 +02:00
Vanilagy
5bc1a31b8e
Rewrite HLS segmentation algo AGAIN, add a bunch of HLS segmentation tests, add VideoEncoder/AudioEncoder timing refinement logic, fix HLS output spec violations
2026-03-26 16:23:07 +01:00
Vanilagy
e8df451bf5
Add support for live HLS streams, add playlist refresh logic, add live input tracks
2026-03-12 15:54:19 +01:00
Vanilagy
ff523c01c8
Add HLS reading tests, InputTrack.hasOnlyKeyPackets, faster whole-file reading
2026-03-10 13:32:52 +01:00
Vanilagy
c088a31384
Various fixes
2026-03-06 15:49:24 +01:00
Vanilagy
22716b1f83
Merge branch 'main' into hls
2026-03-06 10:59:24 +01:00
Vanilagy
f79834c3c1
Add frame rate-based sampling for MediaStreamVideoTrackSource, reducing the probability of files with wildly irregular FPS; add unthrottled timer primitives
2026-03-05 19:57:32 +01:00
Vanilagy
365469e64e
Merge branch 'main' into hls
2026-03-04 17:33:16 +01:00
Vanilagy
c4398fb88c
Add @mediabunny/aac-encoder extension package
2026-03-04 17:05:34 +01:00
Vanilagy
cfb5418fa0
Refactor HLS API: Get rid of specialized Manifest* classes, use Input instead. Add unhydrated InputTracks, InputTrack compatibility, InputTrack queries
2026-03-03 15:28:26 +01:00
Vanilagy
b0604150c1
Merge branch 'main' into hls
2026-02-26 15:53:46 +01:00
Vanilagy
bb4749cd8d
Add support for reading/writing non-square pixel video frames ( fixes #309 )
2026-02-25 17:16:33 +01:00
Vanilagy
d1fbea3e19
[WIP] Add majority of logic for HLS reading support
2026-01-27 14:45:44 +01:00
Vanilagy
92454b28f7
Use random_access_indicator for key packet detection, rewrite packet lookup algorithm to use a chunked approach to perform better over the network
2026-01-23 13:16:41 +01:00
Vanilagy
7e8f9fbbb1
It's 2026
2026-01-16 17:02:12 +01:00
Vanilagy
0719a17c85
Add mutex to packet lookup algorithm, fix incorrect next packet retrieval following packet lookup
2026-01-14 21:53:23 +01:00
Vanilagy
0500beaf34
Fix user agent detection in workers ( fixes #223 , #242 )
2025-12-08 18:46:58 +01:00
Vanilagy
f424f6e840
Count AVC SEI recovery points as keyframes (except on older Chromium versions)
2025-12-07 19:24:08 +01:00
Vanilagy
75096edb23
Update TypeScript, fix generic ArrayBufferView type errors, allow SharedArrayBuffer as input for BufferSource
2025-11-26 12:04:23 +01:00
Vanilagy
da159bb063
Stop retrying requests when the source is disposed, log warning in possible CORS detection case (see #158 )
2025-11-24 16:28:10 +01:00
Vanilagy
9464adf22f
Remove pure annotations for non-function call expressions ( fixes #225 )
2025-11-18 11:36:20 +01:00
Vanilagy
6684984e7e
Fix faulty timestamp rounding to nearest integer ( fixes #207 )
2025-11-12 21:35:18 +01:00
Vanilagy
07b2e70863
Force software decoding in Chromium for interlaced AVC
2025-11-12 14:29:56 +01:00
Vanilagy
3cb6ed82ce
Fix globals not being treeshakable by some bundlers ( fixes #172 )
2025-11-12 13:11:18 +01:00
Vanilagy
d969266662
Simplify isWebKit, get rid of isSafari
2025-11-10 11:30:26 +01:00
hex
e0dda582b1
fix webkit video conversion bug
2025-11-07 16:58:20 -07:00
jlim
1143984021
BT.2100 PQ should be "pq", not "pg"
2025-10-15 18:08:29 -07:00