moq-wg / moq-transport

draft-ietf-moq-transport
Other
79 stars 17 forks source link

Container #14

Closed kixelated closed 1 year ago

kixelated commented 1 year ago

We're missing a section on the container. A container is needed because the codec bitstream doesn't have timing information, nor is it specified how to support more fringe features like captions and DRM. I would advocate for using CMAF (fMP4) unless somebody wants to take on the work of standardizing a "raw" container.

To summarize the hierarchy:

kpugin commented 1 year ago

I think we need to: 1) Have a way to signal what container is used 2) Agree on "default" container and I agree it should be CMAF

suhasHere commented 1 year ago

+1 on need to signal the container being used. I think we need to atleast CMAF and raw container/something ( to keep the packet sizes small for audio). But yes these can happen in sequence starting with CMAF first.

vasilvv commented 1 year ago

I agree that an ISO BMFF derivative is the most plausible answer here (if we use CMAF, we need to make sure we actually want everything in it as-is).

The other answers could be:

fluffy commented 1 year ago

+1 on CMAF but also I think I would be happy to take on the work of also supporting an "RTP Style" container which would be pretty much what you find in the payload of an RTP packet and use the media type from IANA to describe the format inside it. I'm thinking this will be trivial to do but perhaps I am missing what is hard about this.

VMatrix1900 commented 1 year ago

+1 on RTP style container. We already have those IANA registry and RTP payload format as RFC. Maybe we can reuse them. Sounds like RTP over QUIC?

kixelated commented 1 year ago

In #43, I define a mimetype for each track, which contains the type/container/codec. The receiver can choose which track to play based on those properties. For example: video/mp4; codecs=avc1.64001e.

Is this all we need? And some text changes of course to remove the CMAF specifics.