Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packetization #1

Closed
aboba opened this issue Jun 22, 2019 · 2 comments
Closed

Packetization #1

aboba opened this issue Jun 22, 2019 · 2 comments

Comments

@aboba
Copy link
Collaborator

aboba commented Jun 22, 2019

The APIs make sense for encoding a bitstream, transporting it reliably then decoding and rendering it.

But what if you want to packetize an encoded bitstream within QUIC datagrams and then reassemble and decode it on the other side?

Or what if you want a mixture of reliable and unreliable transport? For example, you might want to provide different transport for keyframes and P-frames. So you might want to separate out portions of the encoded bitstream for reliable transport, and other portions for datagram transport.

@steveanton
Copy link
Contributor

Networking packetization is out of scope unless it's something useful that the codec supports/specifies. For example, splitting VP8 bitstream into RTP packets is out of scope but exposing the two types of H264 bitstream is in scope.

Separating the bitstreams by type should be quite possible. Whatever reads the output of the encoder TransformStream will know whether the bitstream packet is a key frame or delta frame and can route the chunk accordingly.

Re: unreliable transport. WebCodecs will support indicating to the decoder if the bitstream chunks are discontinuous due to e.g. packet loss.

pthatcherg pushed a commit that referenced this issue Aug 28, 2019
@pthatcherg
Copy link
Contributor

I think this overlaps, to a degree, with this new tracking issue: #24. If you squint, RTP is a container format.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants