8.2.2. Usage with the SDP Offer/Answer Model (SDP Offer/Answer-Modell)
8.2.2. Usage with the SDP Offer/Answer Model (SDP Offer/Answer-Modell)
Wenn H.264 über RTP mit SDP im Offer/Answer-Modell [8] für Unicast ausgehandelt wird, gelten folgende Einschränkungen und Regeln:
- Die eine Medienformat-Konfiguration für H.264 identifizierenden Parameter sind
profile-level-idundpacketization-mode. Diese Medienformat-Konfigurationsparameter (außer dem Level-Teil vonprofile-level-id) MÜSSEN symmetrisch verwendet werden; der Antwortende MUSS entweder alle Konfigurationsparameter beibehalten oder das Medienformat (Payload-Typ) vollständig entfernen, wenn mindestens ein Parameterwert nicht unterstützt wird. Der Level-Teil vonprofile-level-idumfasstlevel_idcund beiprofile_idc66, 77 oder 88 zur Angabe von Level 1b Bit 4 (constraint_set3_flag) vonprofile-iop. Der Level-Teil vonprofile-level-idist änderbar.
Hinweis (informativ): Symmetrie gilt nicht für den Level-Teil von
profile-level-idund nicht für andere Stromeigenschaften und Fähigkeitsparameter.
Hinweis (informativ): In H.264 [1] entspricht jedes Level außer Level 1b dem Wert
level_idc/10. Level 1b liegt über Level 1.0 und unter Level 1.1 und wird ad hoc signalisiert. Für Baseline, Main und Extended (profile_idc66, 77, 88) wird Level 1b durchlevel_idc11 undconstraint_set3_flag1 angezeigt. Für andere Profile durchlevel_idc9 (Level 1b bleibt über Level 1 mitlevel_idc10). In SDP Offer/Answer darf die Antwort ein Level ≤ Angebot zeigen. Beiprofile_idc66/77/88 undlevel_idc11 müssen Anbietende und Antwortende Bit 4 des mittleren Oktetts vonprofile-level-idprüfen.
Zur Vereinfachung SOLL derselbe RTP-Payload-Typ wie im Angebot in der Antwort verwendet werden [8]. Eine Antwort DARF den im Angebot verwendeten Payload-Typ nicht enthalten, es sei denn, die Konfiguration ist identisch.
Hinweis (informativ): Der Anbietende muss nach Erhalt der Antwort Payload-Typen, die nicht im Angebot standen, anhand von
video/H264und den Konfigurationsparametern mit bereits angebotenen vergleichen, um neue vs. äquivalente Konfigurationen zu erkennen.
-
max-recv-level, falls vorhanden, gibt das höchste Empfangslevel an. Fehlt es, entspricht es dem Standard-Level aus dem Level-Teil vonprofile-level-id. Wenn vorhanden, MUSSmax-recv-levelhöher sein als das Standard-Level. -
level-asymmetry-allowedsteuert Level-Asymmetrie.
Ist level-asymmetry-allowed in Angebot oder Antwort 0 oder fehlt, ist keine Asymmetrie erlaubt; das Level Offerer→Answerer MUSS dem entgegengesetzten entsprechen; gemeinsames Level ist das Minimum der Standard-Level beider Seiten.
Sind in Angebot und Antwort beide Werte 1, ist Asymmetrie erlaubt: Offerer→Answerer = höchstes Empfangslevel des Antwortenden; Answerer→Offerer = höchstes Empfangslevel des Anbietenden.
Ohne Asymmetrie ist kein Level-Upgrade erlaubt; das Standard-Level in der Antwort MUSS ≤ dem im Angebot sein.
sprop-deint-buf-req,sprop-interleaving-depth,sprop-max-don-diff,sprop-init-buf-timebeschreiben Eigenschaften des vom Anbietenden oder Antwortenden gesendeten RTP-Stroms für die Konfiguration – abweichend von üblicher Offer/Answer-Semantik (dort oft Empfangsfähigkeit). Bei H.264 nimmt der Anbietende an, der Antwortende kann mit der angebotenen Konfiguration empfangen.
Hinweis (informativ): Diese Parameter gelten pro Quelle/Konfiguration, nicht zwingend an den Payload-Typ gebunden.
-
max-mbps,max-smbps,max-fs,max-cpb,max-dpb,max-br,redundant-pic-cap,max-rcmd-nalu-size,sar-understood,sar-supportedKÖNNEN zusätzliche Empfangsfähigkeiten deklarieren. Sie DÜRFEN NICHT vorkommen, wenn die Richtungsendonlyist und sie Empfangsgrenzen beschreiben. -
Der Anbietende MUSS bei verschachteltem H.264
sprop-deint-buf-reqanbieten. Beide Seiten SOLLTENdeint-buf-capangeben. Bei unbekanntem Empfänger SOLLTEN mehrere Payload-Typen mit unterschiedlichen Pufferanforderungen angeboten werden. -
sprop-parameter-sets/sprop-level-parameter-sets(ina=fmtpoderfmtp-Quellattribut [9] 6.3) dienen außerbandigem Transport; in-band zusätzlich erlaubt.
Der Antwortende kann für seinen Strom unabhängig vom Offerer→Answerer außerbandig oder in-band senden. Parametersätze in Angebot und Antwort sind unabhängig (zwei Video-Strome).
Parameter-Transport Offerer → Answerer
-
Angebot kann einen oder beide
sprop-*enthalten; fehlen beide, nur in-band. -
Antwort mit
in-band-parameter-sets=1 → Anbietender MUSS Parametersätze in-band senden. -
Wenn das in Richtung Offerer→Answerer zu verwendende Level dem Standard-Level im Angebot entspricht:
Steht sprop-parameter-sets in der a=fmtp-Zeile des Angebots, MUSS der Antwortende bereit sein, die darin enthaltenen Parametersätze zur Dekodierung des eingehenden NAL-Einheitenstroms zu verwenden.
Wird sprop-parameter-sets im Angebot per fmtp-Quellattribut übermittelt: Enthält die Antwort use-level-src-parameter-sets=1 oder das fmtp-Quellattribut, MUSS der Antwortende diese Parametersätze nutzen können; andernfalls MUSS der Anbietende in-band senden.
Fehlt sprop-parameter-sets im Angebot, MUSS der Anbietende in-band senden.
Der Antwortende MUSS sprop-level-parameter-sets im Angebot ignorieren (falls vorhanden, egal ob a=fmtp oder fmtp-Quellattribut).
- Wenn das in Richtung Offerer→Answerer zu verwendende Level nicht dem Standard-Level im Angebot entspricht:
Der Antwortende MUSS sprop-parameter-sets im Angebot ignorieren (falls vorhanden, egal ob a=fmtp oder fmtp-Quellattribut).
Wenn weder in der Antwort use-level-src-parameter-sets=1 noch das fmtp-Quellattribut vorkommt, MUSS der Antwortende sprop-level-parameter-sets im Angebot ignorieren, und der Anbietende MUSS in-band senden.
Wenn in der Antwort use-level-src-parameter-sets=1 oder das fmtp-Quellattribut vorkommt, MUSS der Antwortende die für das akzeptierte Level (Standard-Level in der Antwort) in sprop-level-parameter-sets des Angebots enthaltenen Parametersätze nutzen können und alle anderen darin ignorieren.
Fehlen im Angebot in sprop-level-parameter-sets Parametersätze für das für Offerer→Answerer zu verwendende Level, MUSS der Anbietende in-band senden.
Parameter-Transport Answerer → Offerer
-
Antwort darf höchstens eines von
sprop-parameter-sets/sprop-level-parameter-setsenthalten; fehlen beide → nur in-band. -
Angebot mit
in-band-parameter-sets=1 → Antwortender DARF keinesprop-*in Antwort haben und MUSS in-band senden. -
Wenn das in Richtung Answerer→Offerer zu verwendende Level dem Standard-Level in der Antwort entspricht:
Steht sprop-parameter-sets in der a=fmtp-Zeile der Antwort, MUSS der Anbietende bereit sein, die darin enthaltenen Parametersätze zur Dekodierung des eingehenden NAL-Einheitenstroms zu verwenden.
Wird sprop-parameter-sets in der Antwort per fmtp-Quellattribut übermittelt: Enthält das Angebot use-level-src-parameter-sets=1 oder das fmtp-Quellattribut, MUSS der Anbietende diese Parametersätze nutzen können; andernfalls MUSS der Antwortende in-band senden.
Fehlt sprop-parameter-sets in der Antwort, MUSS der Antwortende in-band senden.
Der Anbietende MUSS sprop-level-parameter-sets in der Antwort ignorieren (falls vorhanden, egal ob a=fmtp oder fmtp-Quellattribut).
- Wenn das in Richtung Answerer→Offerer zu verwendende Level nicht dem Standard-Level in der Antwort entspricht:
Der Anbietende MUSS sprop-parameter-sets in der Antwort ignorieren (falls vorhanden).
Wenn weder im Angebot use-level-src-parameter-sets=1 noch das fmtp-Quellattribut vorkommt, MUSS der Anbietende sprop-level-parameter-sets in der Antwort ignorieren, und der Antwortende MUSS in-band senden.
Wenn im Angebot use-level-src-parameter-sets=1 oder das fmtp-Quellattribut vorkommt, MUSS der Anbietende die für das in Answerer→Offerer zu verwendende Level in der Antwort in sprop-level-parameter-sets enthaltenen Parametersätze nutzen können und alle anderen darin ignorieren.
Fehlen in der Antwort in sprop-level-parameter-sets Parametersätze für das zu verwendende Level, MUSS der Antwortende in-band senden.
Bei fmtp-Quellattribut [9] 6.3 MUSS der Empfänger Parametersätze für akzeptiertes Level speichern und der Quelle zuordnen; nur dieselbe Quelle dekodieren; SSRC-Konfliktbehandlung gemäß [9].
Hinweis (informativ):
fmtp-Quellattribut eignet sich für Topo-Video-switch-MCU [29].
Multicast
-
Konfiguration:
profile-level-idinkl. Level undpacketization-mode; alle Konfigurationsparameter inkl. Level-Teil MÜSSEN symmetrisch sein; Level-Teil im Multicast-Offer/Answer nicht änderbar. Gleicher Payload-Typ wie im Angebot SOLL in Antwort; Antwort DARF Payload-Typ aus Angebot nur bei identischer Konfiguration enthalten. -
Empfangene Parametersätze MÜSSEN der Ursprungsquelle zugeordnet und nur für dieselbe Quelle verwendet werden.
-
Übrige Parameter wie Unicast, sofern dies eingehalten wird.
Tabelle 6. Bedeutung der Parameter je Richtungsattribut
| Parameter | sendrecv | recvonly | sendonly |
|---|---|---|---|
profile-level-id | C | C | P |
max-recv-level | R | R | - |
packetization-mode | C | C | P |
sprop-deint-buf-req | P | - | P |
sprop-interleaving-depth | P | - | P |
sprop-max-don-diff | P | - | P |
sprop-init-buf-time | P | - | P |
max-mbps | R | R | - |
max-smbps | R | R | - |
max-fs | R | R | - |
max-cpb | R | R | - |
max-dpb | R | R | - |
max-br | R | R | - |
redundant-pic-cap | R | R | - |
deint-buf-cap | R | R | - |
max-rcmd-nalu-size | R | R | - |
sar-understood | R | R | - |
sar-supported | R | R | - |
in-band-parameter-sets | R | R | - |
use-level-src-parameter-sets | R | R | - |
level-asymmetry-allowed | O | - | - |
sprop-parameter-sets | S | - | S |
sprop-level-parameter-sets | S | - | S |
Legende: C Konfiguration Senden/Empfangen; O Offer/Answer; P Stromeigenschaften; R Empfangsfähigkeit; S außerbandige Parametersätze; - nicht verwendbar (SOLLTEN ignoriert werden).
Empfangsfähigkeiten sind typischerweise nach unten anpassbar (Obergrenze). Konfigurationspunkte sind unveränderlich außer Level-Teil von profile-level-id im Unicast.
Nicht abwärts-kompatibel deklarierte Senderfähigkeiten beschreiben akzeptable Empfangskonfiguration. Mehrere Alternativen (z. B. Packetization) erfordern jeweils eigenen Payload-Typ.
Ein Empfänger SOLL alle Medientyp-Parameter verstehen, auch wenn er nur eine Teilmenge nutzt.
Ein Antwortender KANN das Angebot erweitern; oft ist ein zweites Angebot nötig, um Stromeigenschaften zu liefern, und der Anbietende muss dann auch empfangen können.
Asymmetrie: level-asymmetry-allowed=1 oder getrennte recvonly/sendonly-Medienzeilen (mit externer Semantik zur Verknüpfung).