Commit Graph
19 Commits
Author SHA1 Message Date
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
Viktor SzépeandGitHub 6812cf1643 Fix typos in source, tests, and docs (#430)
* Fix typos in source, tests, and docs

* Fix introduction guide typos
2026-07-02 09:33:43 +02:00
Vanilagy 1680bd02ad Holistic technical website cleanup 2026-05-03 19:47:39 +02:00
Vanilagy 783cfa6fbe Add AppendOnlyStreamSource, adjust examples to use it 2026-04-21 14:58:33 +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 5465602344 Add "Writing HLS" documentation, refine other stuff 2026-04-16 14:53:48 +02:00
Vanilagy 7080b79a2a Update docs a bunch, fix some typos 2026-04-15 14:36:53 +02:00
Vanilagy b06e407d65 Add HLS live mode 2026-03-31 14:13:00 +02:00
Vanilagy 217b383f12 Add read/write support for track disposition information 2025-11-13 11:00:42 +01:00
Vanilagy f2f9b2f0c3 Add FilePathTarget 2025-10-02 15:59:46 +02:00
Vanilagy f340e19baa Clarify docs 2025-09-18 10:11:27 +02:00
Vanilagy c6cb8f7b43 Document metadata tags 2025-09-05 22:27:46 +02:00
Vanilagy 9d47b3c5dc Add Target.onwrite callback 2025-09-02 17:34:09 +02:00
Vanilagy 55dd8cdb4c Add NullTarget 2025-09-02 17:20:09 +02:00
Vanilagy bb1b20afa7 Add track name support 2025-08-23 15:33:44 +02:00
Vanilagy 0ff0729fec Fix incorrect API usage in docs 2025-06-27 19:06:17 +02:00
Vanilagy befab215b4 Add "Quick start" to docs, small API and docs adjustments 2025-06-18 12:25:10 +02:00
Vanilagy 99f813c938 Mediakit -> Mediabunny 2025-06-16 15:46:44 +02:00
Vanilagy e37af1bdad Create conversion doc page, small fixes 2025-06-08 20:40:01 +02:00