Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on #838 for pre-encoded media-track publishing. Incremental diff. Both upstream PRs target main because GitHub cannot use a fork's parent branch as an upstream PR base.
Add two examples for streaming WebM through LiveKit:
video/webmmetadata. The original container, timestamps, color, and alpha data remain byte-for-byte unchanged. There is no demuxing, decoding, re-encoding, or custom media format. This example uses existing APIs and does not itself depend on feat(rtc): expose pre-encoded video publishing in Python #838.A standard VP9 RTP media track transports codec frames, not WebM container elements. Preserving the complete WebM container therefore uses LiveKit's existing byte transport. The byte-stream example requires a prepared recipient and forwards chunks incrementally with awaited writes. Read failure or cancellation closes the writer with an error reason. Reliable delivery can increase latency under packet loss, and late joiners need a new stream from a suitable initialization segment/keyframe.
Client playback is deferred. A future handler could feed compatible WebM into native streaming playback, but browser/MSE alpha support, mobile support, buffering, and latency have not been validated. This PR does not claim that an ordinary LiveKit video-track attachment can play a WebM byte stream.
Validation: