Skip to content

Commit 12a85f1

Browse files
committed
Merge branch 'feature/hevc-sdp-parameters' of github.com:shiguredo/sora-cpp-sdk into feature/hevc-sdp-parameters
2 parents f8818d1 + e4a4734 commit 12a85f1

File tree

1 file changed

+395
-0
lines changed

1 file changed

+395
-0
lines changed

doc/h265.txt

Lines changed: 395 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,395 @@
1+
2+
3+
4+
5+
6+
7+
AVTCORE Working Group B. Aboba
8+
INTERNET-DRAFT Microsoft Corporation
9+
Category: Standards Track P. Hancke
10+
Expires: May 14, 2025 Facebook Inc.
11+
14 November 2024
12+
13+
14+
H.265 Profile for WebRTC
15+
draft-ietf-avtcore-hevc-webrtc-06.txt
16+
17+
Abstract
18+
19+
RFC 7742 defines WebRTC video processing and codec requirements,
20+
including guidance for endpoints supporting the VP8 and H.264 codecs,
21+
which are mandatory to implement. With support for H.265 under
22+
development in WebRTC browsers, similar guidance is needed for
23+
browsers considering support for the H.265 codec, whose RTP payload
24+
format is defined in RFC 7798.
25+
26+
Status of This Memo
27+
28+
This Internet-Draft is submitted in full conformance with the
29+
provisions of BCP 78 and BCP 79.
30+
31+
Internet-Drafts are working documents of the Internet Engineering
32+
Task Force (IETF). Note that other groups may also distribute
33+
working documents as Internet-Drafts. The list of current Internet-
34+
Drafts is at http://datatracker.ietf.org/drafts/current/.
35+
36+
Internet-Drafts are draft documents valid for a maximum of six months
37+
and may be updated, replaced, or obsoleted by other documents at any
38+
time. It is inappropriate to use Internet-Drafts as reference
39+
material or to cite them other than as "work in progress."
40+
41+
This Internet-Draft will expire on May 14, 2025.
42+
43+
44+
45+
46+
47+
48+
49+
50+
51+
52+
53+
54+
55+
56+
57+
58+
Aboba & Hancke Standards Track [Page 1]
59+
60+
INTERNET-DRAFT H.265 Profile for WebRTC 14 November 2024
61+
62+
63+
Copyright Notice
64+
65+
Copyright (c) 2024 IETF Trust and the persons identified as the
66+
document authors. All rights reserved.
67+
68+
This document is subject to BCP 78 and the IETF Trust's Legal
69+
Provisions Relating to IETF Documents (https://trustee.ietf.org/
70+
license-info) in effect on the date of publication of this document.
71+
Please review these documents carefully, as they describe your rights
72+
and restrictions with respect to this document. Code Components
73+
extracted from this document must include Revised BSD License text as
74+
described in Section 4.e of the Trust Legal Provisions and are
75+
provided without warranty as described in the Revised BSD License.
76+
77+
Table of Contents
78+
79+
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
80+
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
81+
1.2 Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3
82+
2. H.265 Support . . . . . . . . . . . . . . . . . . . . . . . . 4
83+
2.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . 4
84+
2.2 Feedback . . . . . . . . . . . . . . . . . . . . . . . . 5
85+
3. Security Considerations . . . . . . . . . . . . . . . . . . . 6
86+
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
87+
5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
88+
5.1. Normative References . . . . . . . . . . . . . . . . . . 6
89+
5.2. Informative References . . . . . . . . . . . . . . . . . 7
90+
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
91+
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
92+
93+
94+
95+
96+
97+
98+
99+
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+
111+
112+
113+
114+
Aboba & Hancke Standards Track [Page 2]
115+
116+
INTERNET-DRAFT H.265 Profile for WebRTC 14 November 2024
117+
118+
119+
1. Introduction
120+
121+
"RTP Payload Format for High Efficiency Video Coding (HEVC)"
122+
[RFC7798] defines the encapsulation of H.265 [H.265] within the Real-
123+
time Transport Protocol (RTP) [RFC3550]. While "WebRTC Video
124+
Processing and Codec Requirements" [RFC7742] provides guidance for
125+
endpoints supporting the mandatory to implement VP8 and H.264 codecs,
126+
it does not cover H.265. With H.265 support under development within
127+
browsers [HEVC-WebKit][HEVC-Chrome] there is a need to for an
128+
interoperability profile of [RFC7798] for WebRTC implementations
129+
choosing to support H.265.
130+
131+
1.1. Terminology
132+
133+
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
134+
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
135+
"OPTIONAL" in this document are to be interpreted as described in BCP
136+
14 [RFC2119] [RFC8174] when, and only when, they appear in all
137+
capitals, as shown here.
138+
139+
1.2. Abbreviations
140+
141+
AP Aggregation Packet
142+
BLA Broken Link Access
143+
CRA Clean Random Access
144+
FU Fragmentation Unit
145+
IDR Instantaneous Decoding Refresh
146+
IRAP Intra Random Access Point
147+
MANE Media-Aware Network Element
148+
MRMT Multiple RTP streams on Multiple media Transports
149+
MRST Multiple RTP streams on a Single media Transport
150+
NAL Network Abstraction Layer
151+
NALU Network Abstraction Layer Unit
152+
PACI PAyload Content Information
153+
PPS Picture Parameter Set
154+
SEI Supplemental Enhancement Information
155+
SFM Selectively Forwarding Middlebox
156+
SPS Sequence Parameter Set
157+
SRST Single RTP stream on a Single media Transport
158+
TID Temporal Identifier
159+
TSCI Temporal Scalability Control Information
160+
VCL Video Coding Layer
161+
VPS Video Parameter Set
162+
163+
164+
165+
166+
167+
168+
169+
170+
Aboba & Hancke Standards Track [Page 3]
171+
172+
INTERNET-DRAFT H.265 Profile for WebRTC 14 November 2024
173+
174+
175+
2. H.265 Support
176+
177+
Support for the H.265 video codec is OPTIONAL for WebRTC browsers and
178+
non-browsers. Implementations supporting H.265 that conform to this
179+
specification MUST support receiving H.265 and MAY support sending
180+
H.265.
181+
182+
For the H.265 [H.265] codec, endpoints MUST support the payload
183+
formats defined in [RFC7798]. In addition, they MUST support Main
184+
Profile Level 3.1 (level-id=93) and SHOULD support Main Profile Level
185+
4 (level-id=120).
186+
187+
[RFC7798] Section 4.5 defines how TSCI is communicated using PACI
188+
Extensions defined in [RFC7798] Section 4.4.4.2. A WebRTC
189+
implementation that has negotiated use of RTP header extensions
190+
containing TSCI information (such as the Dependency Descriptor [DD])
191+
SHOULD NOT send TSCI information within the PACI. If TSCI
192+
information is being received in an RTP header extension,
193+
implementations MUST ignore TSCI information contained in the PACI.
194+
195+
[RFC7798] Section 4.4.2 describes how APs are carried within RTP
196+
payloads:
197+
198+
"An AP consists of a payload header (denoted as PayloadHdr)
199+
followed by two or more aggregation units... The value of TID MUST
200+
be the lowest value of TID of all the aggregated NAL units.
201+
202+
Informative note: All VCL NAL units in an AP have the same TID
203+
value since they belong to the same access unit. However, an
204+
AP may contain non-VCL NAL units for which the TID value in the
205+
NAL unit header may be different than the TID value of the VCL
206+
NAL units in the same AP."
207+
208+
Within an RTP payload, VCL NAL units MUST NOT be aggregated with non-
209+
VCL NAL units with a lower TID value. Instead the non-VCL NAL units
210+
with a lower TID value MUST be packetized within a distinct RTP
211+
packet. This ensures that a MANE or SFM can forward VCL and non-VCL
212+
NAL units to the correct set of participants.
213+
214+
2.1. Parameters
215+
216+
Implementations of the H.265 codec have utilized a wide variety of
217+
optional parameters. The H.265 "media format" includes the following
218+
fmtp parameters: profile-id, tier-flag, and tx-mode.
219+
220+
To improve interoperability, the following parameter settings are
221+
specified:
222+
223+
224+
225+
226+
Aboba & Hancke Standards Track [Page 4]
227+
228+
INTERNET-DRAFT H.265 Profile for WebRTC 14 November 2024
229+
230+
231+
level-id: Implementations SHOULD include this parameter within SDP
232+
and MUST interpret it when receiving it. If no level-id is present, a
233+
value of 93 (i.e., Level 3.1) MUST be inferred. On a sendrecv m-
234+
line, the offered level-id represents the maximum that can be both
235+
sent and received; on a sendonly m-line, the offered level-id
236+
represents the maximum that can be sent; on a recvonly m-line, the
237+
offered level-id represents the maximum that can be received. As
238+
noted in [RFC7798] Section 5, the "highest level indicated by the
239+
answer is either equal to or lower than that in the offer."
240+
241+
tx-mode: Implementations SHOULD include this parameter within SDP.
242+
If no tx-mode parameter is present, a value of "SRST" MUST be
243+
inferred. Implementations MUST support "SRST"; support for "MRST"
244+
and "MRMT" are OPTIONAL. Implementations that do not support "MRST"
245+
or "MRMT" MUST NOT include these tx-mode values in SDP.
246+
247+
sprop-sps, sprop-pps, sprop-vps, sprop-sei: H.265 allows sequence and
248+
picture information to be sent both in-band and out-of-band. WebRTC
249+
implementations MUST signal this information in-band. This means
250+
that WebRTC implementations MUST NOT include these parameters in the
251+
SDP they generate, and SHOULD silently ignore these parameters if
252+
they are received. An IDR/CRA/BLA sent MUST always be preceded by the
253+
relevant parameter sets sent in a packet (not necessarily a separate
254+
packet) with the same RTP timestamp as the IDR/CRA/BLA.
255+
256+
When the use of the video orientation (CVO) RTP header extension is
257+
not signaled as part of the SDP, H.265 implementations MAY send and
258+
SHOULD support proper interpretation of Display Orientation SEI
259+
messages.
260+
261+
Unless otherwise signaled, WebRTC implementations that support H.265
262+
MUST encode and decode pixels with an implied 1:1 (square) aspect
263+
ratio.
264+
265+
2.2. Feedback
266+
267+
[RFC7798] Section 8.3 specifies the use of the Reference Picture
268+
Selection Indication (RPSI) in H.265. Implementations MUST use the
269+
RPSI feedback message only as a reference picture selection request,
270+
and MUST NOT use it as positive acknowledgement. Receivers that
271+
detect that H.265 encoder-decoder synchronization has been lost
272+
SHOULD generate an RPSI feedback message if support for RPSI has been
273+
negotiated, unless the receiver has knowledge that the sender does
274+
not support RPSI. Such knowledge can be established during capability
275+
exchange or through previously sent RPSI requests that were not
276+
replied to by the sender through the use of a non-IRAP picture. An
277+
RTP packet-stream sender that receives an RPSI message MUST act on
278+
that message, and SHOULD change the reference picture.
279+
280+
281+
282+
Aboba & Hancke Standards Track [Page 5]
283+
284+
INTERNET-DRAFT H.265 Profile for WebRTC 14 November 2024
285+
286+
287+
3. Security Considerations
288+
289+
This document is subject to the security considerations described in
290+
Section 7 of [RFC7742].
291+
292+
In addition to those security considerations, H.265 implementers are
293+
advised to take note of the "Security Considerations" Section 9 of
294+
[RFC7798], including requirements pertaining to SEI messages.
295+
296+
4. IANA Considerations
297+
298+
This document does not require actions by IANA.
299+
300+
5. References
301+
302+
5.1. Normative References
303+
304+
[DD] Alliance for Open Media (AoMedia), "Dependency Descriptor
305+
RTP Header Extension",
306+
https://aomediacodec.github.io/av1-rtp-spec/#dependency-
307+
descriptor-rtp-header-extension, retrieved September 19,
308+
2023.
309+
310+
[H.265] ITU-T, "High efficiency video coding", ITU-T
311+
Recommendation H.265, April 2013.
312+
313+
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
314+
Requirement Levels", BCP 14, RFC 2119, DOI
315+
10.17487/RFC2119, March 1997, <https://www.rfc-
316+
editor.org/info/rfc2119>.
317+
318+
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
319+
Jacobson, "RTP: A Transport Protocol for Real-Time
320+
Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
321+
July 2003, <https://www.rfc-editor.org/info/rfc3550>.
322+
323+
[RFC7742] Roach, A. B., "WebRTC Video Processing and Codec
324+
Requirements", RFC 7742, DOI 10.17487/RFC7742, March
325+
2016, <https://www.rfc-editor.org/info/rfc7742>.
326+
327+
[RFC7798] Wang, Y.K., Sanchez, Y., Schierl, T., Wenger, S. and M.
328+
M. Hannuksela, "RTP Payload Format for High Efficiency
329+
Video Coding (HEVC)", RFC 7798, DOI 10.17487/RFC7798,
330+
March 2016, <https://www.rfc-editor.org/info/rfc7798>.
331+
332+
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
333+
2119 Key Words", RFC 8174, DOI 10.17487/RFC8174, May
334+
2017, <https://www.rfc-editor.org/info/rfc8174>.
335+
336+
337+
338+
Aboba & Hancke Standards Track [Page 6]
339+
340+
INTERNET-DRAFT H.265 Profile for WebRTC 14 November 2024
341+
342+
343+
5.2. Informative References
344+
345+
[HEVC-WebKit] Shin, S. Qiu, J. and J. Zhu, "WebRTC HEVC RFC 7798 RTP
346+
Payload Format Implementation",
347+
https://github.com/WebKit/WebKit/pull/15494 (work in
348+
progress), retrieved July 9, 2023.
349+
350+
[HEVC-Chrome] "Issue 13485: Need the support of H.265",
351+
https://bugs.chromium.org/p/webrtc/issues/detail?
352+
id=13485 (work in progress), submitted December 8, 2021.
353+
354+
Acknowledgments
355+
356+
We would like to thank Stephan Wenger, Jonathan Lennox, Harald
357+
Alvestrand, Jianlin Qiu and Philip Eliasson for their discussions of
358+
this problem space.
359+
360+
Authors' Addresses
361+
362+
Bernard Aboba
363+
Microsoft Corporation
364+
One Microsoft Way
365+
Redmond, WA 98052
366+
United States of America
367+
368+
369+
370+
Philipp Hancke
371+
Facebook Inc.
372+
373+
374+
375+
376+
377+
378+
379+
380+
381+
382+
383+
384+
385+
386+
387+
388+
389+
390+
391+
392+
393+
394+
Aboba & Hancke Standards Track [Page 7]
395+

0 commit comments

Comments
 (0)