Commit Graph
91 Commits
Author SHA1 Message Date
Vanilagy 0c455236da Add first encoded packet key frame check (fixes #365) 2026-05-19 16:15:17 +02:00
Vanilagy 292189e3d4 Add toAvFrame, NodeAv* -> Av*, add server README, fix track synchronizer in conversion, increase default cache size for ReadableStreamSource 2026-05-13 15:26:13 +02:00
Vanilagy 5599e52a1a Fix async race condition in transparency code, reduce HEVC conversion duration 2026-05-12 00:24:03 +02:00
Vanilagy d8c8606341 Merge branch 'main' into server 2026-05-11 21:36:38 +02:00
Vanilagy 1bf200894c Add CPU path for transparent encoding and decoding, add transparency support to FFmpeg-backed VP9 decoder and encoder 2026-05-11 21:33:29 +02:00
Vanilagy a89d715524 Add VideoSample.transform(), add custom transformer functions, ditch CanvasSink path in Conversion API, add libavfilter-based VideoSample transformation 2026-05-11 15:57:51 +02:00
Vanilagy fff09411e6 Fixed negative timestamps occurring with live media (fixes #364) 2026-05-07 11:11:37 +02:00
Vanilagy f3dec587fd Make FLAC encoder bit depth depend on input sample format, add sampleFormat audio transformation option, fix incorrect bitrate validation for FLAC (closes #357) 2026-04-29 16:27:20 +02:00
Vanilagy 9a1b8b2602 Add timestampBase option for live MediaStreamTrack sources 2026-04-27 19:38:45 +02:00
Vanilagy 9a7120f5f4 Add per-playlist "mutices" for HLS muxer 2026-04-17 18:35:33 +02:00
Vanilagy c6e505a6fe Make default keyFrameInterval 2 seconds to align with default HLS segment duration 2026-04-13 17:47:48 +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 b86e527dc6 Add audio resampling, remixing and processing options to AudioEncodingConfig, small AudioResampler adjustments, add more tests 2026-04-01 15:46:02 +02:00
Vanilagy 1c08589021 Add "force" transform option, formalize that transformations bake in rotation 2026-04-01 14:34:05 +02:00
Vanilagy 024660773b Add video frame preprocessing to VideoEncodingConfig & VideoEncoderWrapper 2026-04-01 13:30:34 +02:00
Vanilagy 94678dd356 Add support for writing I-frame only tracks, fix track closing race conditions in other muxers 2026-03-27 18:48:27 +01:00
Vanilagy 17fac170c1 Add some HLS events, add configurable target duration, add public-API OutputTrack 2026-03-27 13:37:14 +01: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 397c464846 Change comment 2026-03-06 16:12:30 +01:00
Vanilagy 2087658eea Add <video> element fallback case for MediaStreamVideoTrackSource, adding Firefox support 2026-03-06 16:11:59 +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 c4398fb88c Add @mediabunny/aac-encoder extension package 2026-03-04 17:05:34 +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 a97200f3f0 Add @mediabunny/ac3 extension package 2026-02-12 18:31:59 +01:00
Vanilagy c3a3eb6abf Merge remote-tracking branch 'origin/main' into mpeg-ts 2026-01-16 21:04:14 +01:00
Vanilagy 7e8f9fbbb1 It's 2026 2026-01-16 17:02:12 +01:00
Vanilagy 78e78e5b4f Make _flushOrWaitForOngoingClose set closingPromise (fixes #270) 2026-01-12 14:36:51 +01:00
Vanilagy 84dec01dfd Add pause and resume methods to MediaStreamTrack sources (closes #241) 2025-12-11 15:51:18 +01:00
Vanilagy 1ff8abdaab "Extract function" ahh 2025-12-11 15:24:19 +01:00
Vanilagy 5b703a1c78 Fix MP3 encoder emitting incorrect timestamps, fixed overaggressive audio sample gap filling (fixes #233) 2025-12-05 12:41:36 +01:00
Vanilagy 23f814679e Modify audio encoder to fill gaps between timestamps with silence to ensure AV sync (fixes #176) 2025-11-11 18:03:28 +01:00
Vanilagy fd8c74d4db Fix invalid encoder AAC description on WebKit (fixes #206) 2025-11-10 14:44:35 +01:00
Vanilagy 5039c730bf Fix MediaStreamTracks not being stopped inside of the worker (fixes #204) 2025-11-02 13:00:38 +01:00
Vanilagy 3f03eb8fbb Small adjustments 2025-09-25 14:49:09 +02:00
David P.andGitHub fa4e064345 Transparent video read/write support (#145)
* Add support for reading transparent Matroska and implement alpha side data & decode

* Few fixes

* Implement alpha encoding

* Gracefully handle inability to acquire WebGL context, properly clean up WebGL contexts

* Improve touch device detection

* Test test

* Test test #2

* Test test 3

* Test test 4

* Test test 5

* Test test 6

* Test test 7

* Test test 8

* Test test 9

* Test test 10

* Test test 11

* Test test 12

* Test test 13

* Test test 14

* Test test 15

* Test test 16

* Test test 17

* Test test 18

* Test test 19

* Test test 20

* Fix type errors, improve MetadataTags docs

* Do a bunch of docs work

* Test test?

* "Unexpected only modifier 🤓"

* Add InputVideoTrack.canBeTransparent()

* Some clean-up

* Adjust CI to be less spammy in PRs

* Fix broken license headers
2025-09-24 21:20:14 +02:00
Vanilagy f9a7735aae Explicitly throw for odd video dimensions for AVC and HEVC (closes #142) 2025-09-22 15:37:31 +02:00
Vanilagy 1bb3c0e262 Avoid opaque canvases in case of Firefox (fixes #117) 2025-09-16 17:42:23 +02:00
Vanilagy 4860a4bfe7 Probe encoder support with sample (fixes #90), improve encoder error handling 2025-09-04 11:11:04 +02:00
Vanilagy a2a30c3e92 Add API doc generator, improve documentation across the board 2025-09-03 18:11:43 +02:00
Vanilagy 63b8190185 Add logic for encoding video frames that change size over time (#63) 2025-08-24 16:37:03 +02:00
Vanilagy 5a6528d8f5 Add HW acceleration to unsupported message 2025-08-22 19:38:36 +02:00
Vanilagy 134a6f8f4e Add more options to Video/AudioEncodingConfig, restructure code (#61) 2025-08-22 17:24:02 +02:00
Vanilagy 3be94cc788 Decrease AudioBuffer chunking size, support more MP3 sample rates, lift MP3 encoder memory limit 2025-08-15 14:19:06 +02:00
Vanilagy 7e546c2cc7 Fix sample closing before it reaches the custom encoder 2025-08-12 15:36:17 +02:00
Vanilagy ae0266df52 Clarify decode order thing for encoded packet sources 2025-08-11 18:41:15 +02:00
Vanilagy 80c6fa3201 Fall back to webkitAudioContext 2025-08-11 01:51:20 +02:00
Vanilagy ba0491de3a Circumvent flush() being called on sources when cancelling output, surface error before doing cleanup 2025-08-10 03:24:17 +02:00
Vanilagy cbb2681d33 Create @mediabunny/mp3-encoder, restructure and extend build system 2025-08-10 00:45:30 +02:00
Vanilagy d38ad22559 Big realtime playback refactor
- Added Worker- or AudioContext-based fallbacks in case MediaStreamTrackProcessor is not available
- Fixed fMP4-streamed files not playing in Safari
- Added better error handling for MediaStream sources
- Improved the live recording example to be more robust
2025-07-27 12:13:03 +02:00
Vanilagy 1b382d3e57 Improve unsupported encoder configuration error messages 2025-07-07 11:21:42 +02:00