Pro-MPEG / RTP+FEC Protokoll (COP3 / SMPTE 2022-1/2)

Lieferung von MPEG-TS über RTP mit vorwärts gerichteter Fehlerkorrektur (FEC, Forward Error Correction). Dasselbe Protokoll erscheint in Literatur und Geräten unter unterschiedlichen Namen:

  • Pro-MPEG / Pro-MPEG COP3 — Code of Practice #3 des Pro-MPEG-Forums, beschrieben im IEEE-Standard (https://ieeexplore.ieee.org/document/6738329);

  • RTP + FEC — funktionaler Name (RTP-Stream plus FEC-Kanäle);

  • SMPTE 2022-1 — Column FEC (dasselbe Schema, als SMPTE-Standard veröffentlicht);

  • SMPTE 2022-2 — Row + Column FEC (zweidimensionale Matrix, in PSS implementiert).

Vorteil: niedrige Latenz. Nachteil: hoher zusätzlicher Datenverkehr (Overhead); zudem arbeitet es bei großen Paketverlusten (über 0,2 %) schlecht.

Dieses Protokoll basiert auf RTP mit zwei zusätzlichen FEC-Kanälen (Fehlerkorrekturcode). Die beiden FEC-Kanäle nutzen die Ports port+2 und port+4 — das ist beim Hinzufügen mehrerer Streams auf einen Host oder eine Multicast-Gruppe zu beachten.

Beim Sender werden RTP-Pakete in einer Matrix mit Cols Spalten und Rows Zeilen gruppiert. Beispiel für cols=8 und rows=4 (Standard):

RTP01

RTP02

RTP03

RTP04

RTP05

RTP06

RTP07

RTP08

R1

RTP11

RTP12

RTP13

RTP14

RTP15

RTP16

RTP17

RTP18

R2

RTP21

RTP22

RTP23

RTP24

RTP25

RTP26

RTP27

RTP28

R3

RTP31

RTP32

RTP33

RTP34

RTP35

RTP36

RTP37

RTP38

R4

C1

C2

C3

C4

C5

C6

C7

C8

Die Pakete Rx und Cx bilden FEC-Daten zeilen- und spaltenweise. Je kleiner die Matrix, desto besser die Korrekturfähigkeit, aber desto höher der zusätzliche Verkehr. In diesem Beispiel kommen auf 32 RTP-Pakete des Streams 12 FEC-Pakete.

Stream-Verschlüsselung (Crypto protection) ist mit AES-128 verfügbar, jedoch nicht im Standard enthalten — die Kompatibilität mit Drittsoftware oder -hardware ist daher nicht garantiert.

Es gibt nicht-standardisierte Protokollerweiterungen:

Multiplexing — Multiplexen von RTP-Kanälen über einen einzigen UDP-Port. Kann die Netzwerkkonfiguration vereinfachen.