Internet-Draft moq-mi October 2024
Cenzano-Ferret & Frindell Expires 24 April 2025 [Page]
Workgroup:
Media Over QUIC
Internet-Draft:
draft-cenzano-moq-media-interop-00
Published:
Intended Status:
Informational
Expires:
Authors:
J. Cenzano-Ferret
Meta
A. Frindell
Meta

MoQ Media Interop

Abstract

This protocol can be used to send and receive video and audio over Media over QUIC Transport [MOQT].

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://afrind.github.io/draft-cenzano-media-interop/draft-cenzano-moq-media-interop.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-cenzano-moq-media-interop/.

Discussion of this document takes place on the Media Over QUIC Working Group mailing list (mailto:[email protected]), which is archived at https://mailarchive.ietf.org/arch/browse/moq/. Subscribe at https://www.ietf.org/mailman/listinfo/moq/.

Source for this draft and an issue tracker can be found at https://github.com/afrind/draft-cenzano-media-interop.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 24 April 2025.

Table of Contents

1. Introduction

This protocol specifies a simple mechanism for sending media (video and audio) over MOQT for both live-streaming and VC use cases. The protocol is flexible in order to support this range of use cases.

Media parameters can be updated in the middle of a the track (ex: frame rate, resolution, codec, etc)

The protocol defines a low overhead packaging format optimized for WebCodecs called WCP that is extensible to other formats such as FMP4. This is not LoC [LOC], but will eventually be merged with that specification.

2. Protocol Operation

2.1. Track Names

The publisher selects a namespace of their choosing, and sends an ANNOUNCE message for this namespace. Since MoQT tracks are immutable, each new broadcast MUST have a unique namespace. It is RECOMMENDED that the last tuple of the track namespace contain a broadcast timestamp to ensure uniqueness.

Within the namespace the publisher offers media tracks named videoX and audioX, where X is an integer starting at 0 and increasing by 1 for each additional track of a given type.

For example, if the publisher issues 2 audio tracks and 1 video track, the track names available will be video0, audio0, and audio1.

The subscriber will consider all of those tracks belonging to the same namespace as part of the same synchronization group (timestamps aligned to the same timeline).

2.2. Mapping Tracks to MoQT Object Model

For the video track, the publisher begins a new group at the start of each IDR (so object 0 will be always an IDR Keyframe), and each group contains a single subgroup. Each object has the format described in Section 2.4.

For the audio track, the publisher begins a new group with each audio object, and each group contains a single subgroup. Each object has the format described in Section 2.4.

TODO: Datagram forwarding preference could be used, but has problems if audio frame does not fit in a single UDP payload.

2.3. Timestamps

To avoid using fractional numbers and having to deal with rounding errors, timestamps will be expressed with two integers:

  • timestamp numerator (ex: PTS, DTS, duration)

  • timebase

To convert a timestamp into seconds you just need to: timestamp(s) = timestamp numerator / timebase

Example:

PTS = 11, timebase = 30

PTS(s) = 11/30 = 0.366666

2.4. Object Format

All objects this protocol have the following format.

{
  Media Type (i)
  Media payload (..)
}
Figure 1: MOQT Media object
  • Media Type: Indicates what kind of media payload will follow.

Table 1: Media Types
Code Value
0x0 Video H264 in AVCC with WCP
0x1 Audio Opus bitstream
  • Media payload: Media type specific payload

3. Video H264 in AVCC with WCP Payload Format

{
  Seq ID (i)
  PTS Timestamp (i)
  DTS Timestamp (i)
  Timebase (i)
  Duration (i)
  Wall Clock (i)
  Metadata Size (i)
  Metadata (..)
  Payload (..)
}
Figure 2: MOQT Media video h264 WCP

TODO: Varint does NOT accept easily negative values, so it could be challenging to encode at start (priming).

TODO: Varint does NOT accept easily negative values, so it could be challenging to encode at start (priming).

4. Audio Opus bitstream Payload Format

{
  Seq ID (i)
  PTS Timestamp (i)
  Timebase (i)
  Sample Freq (i)
  Num Channels (i)
  Duration (i)
  Wall Clock (i)
  Payload (..)
}
Figure 3: MOQT Media audio Opus WCP

TODO: Varint does NOT accept easily negative, so it could be challenging to encode at start (priming).

5. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

6. Security Considerations

TODO Security

7. IANA Considerations

This document has no IANA actions.

8. References

8.1. Normative References

[ISO14496]
ISO, "Carriage of network abstraction layer (NAL) unit structured video in the ISO base media file format", , <https://www.iso.org/standard/74429.html>.
[MOQT]
Curley, L., Pugin, K., Nandakumar, S., Vasiliev, V., and I. Swett, "Media over QUIC Transport", Work in Progress, Internet-Draft, draft-ietf-moq-transport-07, , <https://datatracker.ietf.org/doc/html/draft-ietf-moq-transport-07>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC6716]
Valin, JM., Vos, K., and T. Terriberry, "Definition of the Opus Audio Codec", RFC 6716, DOI 10.17487/RFC6716, , <https://www.rfc-editor.org/rfc/rfc6716>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.

8.2. Informative References

[LOC]
Zanaty, M., Nandakumar, S., and P. Thatcher, "Low Overhead Media Container", Work in Progress, Internet-Draft, draft-mzanaty-moq-loc-03, , <https://datatracker.ietf.org/doc/html/draft-mzanaty-moq-loc-03>.

Acknowledgments

TODO acknowledge.

Authors' Addresses

Jordi Cenzano-Ferret
Meta
Alan Frindell
Meta