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]>
This commit is contained in:
Don Carignan
2026-07-30 17:24:59 +02:00
committed by GitHub
co-authored by Vanilagy
parent 1a99b0371d
commit c3df2a24e5
48 changed files with 1372 additions and 371 deletions
+3 -3
View File
@@ -90,19 +90,19 @@ As an example, let's add two tracks to our output:
- An audio track driven by the user's microphone input, encoded using AAC
```ts
import { CanvasSource, MediaStreamAudioTrackSource } from 'mediabunny';
import { CanvasSource, MediaStreamAudioTrackSource, Quality } from 'mediabunny';
// Assuming `canvasElement` exists
const videoSource = new CanvasSource(canvasElement, {
codec: 'avc',
bitrate: 1e6, // 1 Mbps
quality: new Quality({ bitrate: 1e6 }), // 1 Mbps
});
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const audioStreamTrack = stream.getAudioTracks()[0];
const audioSource = new MediaStreamAudioTrackSource(audioStreamTrack, {
codec: 'aac',
bitrate: 128e3, // 128 kbps
quality: new Quality({ bitrate: 128e3 }), // 128 kbps
});
output.addVideoTrack(videoSource, { frameRate: 30 });