Commit Graph
206 Commits
Author SHA1 Message Date
Vanilagy 1fe115ac83 Implement frame rate adjustment logic for Conversion API, fix source not being closed 2025-08-08 18:39:08 +02:00
Vanilagy 597b68b299 Add support for Matroska lacing, fix packet lookup logic 2025-08-08 17:10:03 +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 5e933d9362 Add packet type derivation logic, new verifyKeyPackets options, new determinePacketType method 2025-07-24 16:09:01 +02:00
Vanilagy 4b12468008 Add support for reading and writing RF64 WAVE files 2025-07-18 16:48:23 +02:00
Vanilagy cf0bbe896a Add longer variant to VideoSample.draw 2025-07-15 11:49:33 +02:00
Vanilagy 84c9d37cb7 Revise build step and dist structure for better Webpack, CJS and pnpm support 2025-07-09 11:53:19 +02:00
Vanilagy 1b382d3e57 Improve unsupported encoder configuration error messages 2025-07-07 11:21:42 +02:00
Vanilagy f675966004 Metamuxer -> Mediabunny 2025-06-16 15:55:38 +02:00
Vanilagy 05881ff1f5 Add support for PCM codecs in MP4, add 64-bit float PCM support 2025-06-16 10:49:55 +02:00
Vanilagy fa3f4b0052 Document conversion API 2025-06-08 22:42:23 +02:00
Vanilagy c7c57e2132 Add getMimeType to Output & other small adjustments 2025-06-07 22:51:57 +02:00
Vanilagy f5a56e1f62 Fix incorrectly processed timestamps for fragmented MP4 2025-06-07 18:54:19 +02:00
Vanilagy c600b60ee0 Provide "in-band" encoding errors 2025-06-05 15:31:38 +02:00
Vanilagy 176d21cf50 Make media player AudioContext match audio track sample rate 2025-05-30 20:12:00 +02:00
Vanilagy 218803a9fe Add better BBB example file 2025-05-30 19:49:41 +02:00
Vanilagy 61c9883817 Small conversion logic & API adjustments 2025-05-30 19:45:57 +02:00
Vanilagy 71a8f65578 Implement custom audio resampler for conversion 2025-05-29 19:41:26 +02:00
Vanilagy 33b209644e Add metadata extraction example 2025-05-23 16:50:49 +02:00
Vanilagy b0a6cf8535 Add support for HEVC in Annex B, fix HEVC codec string extraction logic 2025-05-12 14:56:34 +02:00
Vanilagy f1eed5aa9e Support AVC in Annex B format, add AVCDecoderConfigurationRecord extraction logic, add Annex B to AVCC converter, add support for Matroska Clusters with undefined size, & a couple other improvements 2025-05-11 20:47:37 +02:00
Vanilagy 8de25036b8 Automatically close new VideoFrames created by toCanvasImageSource, reduce clones in mediaSamplesAtTimestamps 2025-05-09 15:31:18 +02:00
Vanilagy 8bca9b0217 Rewrite mediaSamplesAtTimestamps to fix B-frame bug, fix incorrect timestamps when cloning samples 2025-05-09 14:20:29 +02:00
Vanilagy 865fdcf110 Fix async race condition bug 2025-05-08 16:23:07 +02:00
Vanilagy 94b797e227 TEMP timestamp iterator bugfix 2025-05-03 21:43:29 +02:00
Vanilagy ac1b009486 Implement "cross-track offset" for MediaStreamTrack sources & small fixes 2025-04-28 18:31:53 +02:00
Vanilagy ca77ce2d94 Validate types returned by custom coders, refactor custom coder call serialization logic, improve metadata validation 2025-04-28 17:31:56 +02:00
Vanilagy e527fe1484 Allow fractional frame rates in track metadata, document frameRate better, other small doc adjustments 2025-04-28 15:48:51 +02:00
Vanilagy 7fe0593b6c Fix EBML parsers for large integers, make small API and docblock adjustments 2025-04-25 17:35:03 +02:00
Vanilagy 20c53c407f Fix codec validation logic 2025-04-05 17:10:49 +02:00
Vanilagy 97e2a9c1ba Add fullCodecString and rename other config field 2025-04-05 16:49:58 +02:00
Vanilagy c95058e659 Add onEncoderConfig 2025-04-05 15:16:48 +02:00
Vanilagy 95cc8beb06 Fix chunked writing issues & drop ChunkedStreamTargetWriter 2025-03-26 21:35:19 +01:00
Vanilagy ceb2528014 Add specific, per-output-format data callbacks & rewrite some logic in the process 2025-03-22 20:30:24 +01:00
Vanilagy b14daf6dca Add configurable minimum MP4 fragment duration and Matroska cluster duration 2025-03-22 15:33:00 +01:00
Vanilagy 4645b0d6a5 Allow Matroska clusters that don't begin with a key frame 2025-03-21 22:50:57 +01:00
David Payr 6eb5c02591 Add VideoSample and AudioSample abstractions 2025-03-13 21:46:39 +01:00
Vanilagy 00975b456c Fix error when aborting conversion, expose Conversion class for more control, refactor Output state 2025-03-02 17:32:56 +01:00
Vanilagy 453f8b6884 Ensure rotation is always clockwise, make CanvasSink more powerful, disable rotation metadata for Matroska outputs, & other changes 2025-03-02 11:59:11 +01:00
David Payr 2ab385b16e Fix cslg box for QuickTime compatibility 2025-02-26 22:46:44 +01:00
David Payr c2b20ccda5 EncodedVideoSample/EncodedAudioSample -> EncodedPacket 2025-02-22 19:54:59 +01:00
Vanilagy a4c5ab4a8c Add fix to ensure VideoFrames are output in timestamp order, fix atTimestamps iterator logic & leaks 2025-02-16 18:30:14 +01:00
Vanilagy 557314c640 digest -> add 2025-02-09 17:59:30 +01:00
Vanilagy b3cd4de1f6 Make conversion cancelable 2025-02-09 17:55:59 +01:00
Vanilagy 9f6d561772 Add StreamSource 2025-02-09 17:34:59 +01:00
Vanilagy 6cdaa06c07 Add limited edit list support 2025-02-09 17:21:41 +01:00
Vanilagy 0db871dd21 Implement Ogg muxer 2025-02-09 10:56:54 +01:00
Vanilagy cd30c9faec Unpromise many input track methods 2025-02-08 16:32:34 +01:00
Vanilagy ffd0835e9a Add support for custom encoders & decoders 2025-01-26 17:32:10 +01:00
Vanilagy d3566305df Implement MP3 muxer 2025-01-26 11:45:56 +01:00