moq-wg / catalog-format

A common catalog format for streaming formats operating over moq-transport
Other
5 stars 0 forks source link

3.2.25. Bitrate #25

Open acbegen opened 1 year ago

acbegen commented 1 year ago

Which bitrate is this reflecting? How do we set this for VBR content?

wilaw commented 11 months ago

Good question. HLS defines variant bitrate using two parameters

BANDWIDTH : It represents the peak segment bit rate of the Variant Stream. AVERAGE-BANDWIDTH: the value is a decimal-integer of bits per second. It represents the average segment bit rate of the Variant Stream.

DASH defines bitrate using there interplay between two parameters

@bandwidth @MinBufferTime - consider a hypothetical constant bitrate channel of bandwidth with the value of this attribute in bits per second (bps). Then, if the Representation is continuously delivered at this bitrate, starting at any SAP that is indicated either by @startWithSAP or by any Segment Index box, a client can be assured of having enough data for continuous playout providing playout begins after @minBufferTime * @bandwidth bits have been received.

WebCodecs defines bitrate quote ambiguously

bitrate - The average bitrate of the encoded video given in units of bits per second.

I find the DASH approach, while technically correct, to be difficult to interpret by many implementers. The WebCodes approach seems underdefined. So perhaps for MoQ catalog we go with the two understandable properties of:

As soon as we specify average, we need to give an indication over which timebase we are taking the average. For GOP segmented content, the GOP is a natural base over which to average the . For a track which is has a single GOP, what timebase would be appropriate?