Pro-MPEG / RTP+FEC Protocol (COP3 / SMPTE 2022-1/2)¶
Delivery of MPEG-TS over RTP with forward error correction (FEC, Forward Error Correction). The same protocol appears in literature and equipment under different names:
Pro-MPEG / Pro-MPEG COP3 — Code of Practice #3 of the Pro-MPEG forum, described in the IEEE standard (https://ieeexplore.ieee.org/document/6738329);
RTP + FEC — functional name (RTP stream plus FEC channels);
SMPTE 2022-1 — Column FEC (same scheme, published as an SMPTE standard);
SMPTE 2022-2 — Row + Column FEC (two-dimensional matrix, implemented in PSS).
Advantage — low latency. Its disadvantage is high additional traffic (overhead), and it works poorly with large packet losses (more than 0.2%).
This protocol is based on RTP with the addition of two channels for FEC (Error Correction Code). The two FEC channels use ports port+2 and port+4, which must be taken into account when adding multiple streams on one host or multicast group.
At the sender, the stream of RTP packets is grouped into a matrix with Cols columns and Rows rows. Example for cols=8 and rows=4 (default):
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 |
Rx and Cx packets form data for FEC in rows and columns. The smaller the matrix size, the better the loss correction ability, but the more additional traffic. In this example, there are 12 FEC packets for 32 RTP packets of the stream.
Stream encryption (Crypto protection) is available using AES-128, but this is not included in the standard, so compatibility with third-party software or hardware is not guaranteed.
There are non-standard protocol extensions:
Multiplexing — multiplexing of RTP channels over a single UDP port. May simplify network configuration.