RTP Payload Format for Multiple Flows FEC draft-peck-fecframe-rtp-mf-00 Orly Peck, RADVISION IETF 76 – November 2009
Background protecting RTP packets from multiple flows This draft – FEC scheme generic – Specifies RTP payload format for such FEC packets – Aims to solve source-synchronization problems – Multiple Flows includes Multi-Session and Multi- Source Transmission
Multi-Source From draft-schierl-avt-rtp-multi-session-transmission-00: multi-session transmission: In multi-session transmission, media data from a single media source is split over multiple RTP sessions. The term "layered multicast" is equivalent to multi-session transmission for sessions using multicast addresses. multi-source transmission : In multi-source transmission, data from a single media source is sent as several RTP streams in the same RTP session. The sources contained in an RTP session are identified by their synchronization source identifiers (SSRCs) or, if combined by a RTP mixer, by their contributing source identifiers (CSRCs), as defined in RTP [RFC3550].
Use cases Video conferencing – 3D video delivery: 2D + depth (multi-session) – Telepresence (multi-source) SVC (Scalable Video Coding) – streaming – interactive video
Concept
Design Approach Defining FEC-MF header for Repair packets with information regarding the subsequent FEC headers.
Source Synchronization For Multi-source protection including multiple-session and multiple-source flows, a unique flow identifier is required. Unique identifier: fec-source-flow + SSRC Problem: SSRC list creates large overhead Proposed solution: Marker bit indicating if SSRC list is present.
RTP header for repair packets |V=2|P|X| CC |M| PT | sequence number | | timestamp | | synchronization source (SSRC) identifier | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | contributing source (CSRC) identifiers | |.... | Marker bit (M) – Indicates if a list of SSRC identifiers is appended to the FEC-MF header. Payload Type (PT) – dynamically determined in SDP Sequence Number – initiated randomly [rfc3550] – One higher than number in the previously transmitted repair packet Timestamp – corresponds to repair packet transmit time Synchronization source (SSRC) – randomly assigned [rfc3550]
FEC-MF header for repair packets | Num Flows | FID | FID | FID | | FID | FID | Padding | Padding | | SSRC Identifiers | |... | – Num flows – number of flows protected in this FEC block – FID – flow ID. Determined by SDP. Correlated to a FEC header appended to the MF-Header. Number of FIDs = Num Flows. – SSRC Identifiers – list of SSRC identifiers from the source RTP headers. Number of SSRC identifiers is 0 if M-bit in RTP header is 0. Otherwise, equals Num Flows.
IANA Registration Register subtype name fec-mf for application type Required parameters – FEC-Scheme as in ‘rtpmap’ line. – Scheme-specific parameters in ‘fmtp’ line.
Example – SDP v=0 o=orly IN IP4 fec.example.com s= MF FEC Example t=0 0 a=group:FEC S1 S2 R1 m=video RTP/AVP 100 c=IN IP /127 a=rtpmap:100 MP2T/90000 a=fec-source-flow: id=0 a=mid:S1 m=video RTP/AVP 100 c=IN IP /127 a=rtpmap:100 MP2T/90000 a=fec-source-flow: id=1 a=mid:S2 m=application RTP/AVP 110 c=IN IP /127 a=rtpmap:110 fec-mf/90000/reed-solomon-fec a=fmtp:110 max_N:5; repair-window:200000; symbol-size:8 a=mid:R1
example Source-flowFIDSSRC
Example – cont (FEC headers) Example using Reed-Solomon with RTP, according to draft-galanos-fecframe-rtp-reedsolomon-00
Optional Alternative (1) Using CSRC in RTP header. CC field represents number of source flows “multiplexed” CSRC list contains the SSRC identifiers of each source flow.
Optional Alternative (2) Using RFC 5576 (SSRC grouping) Using additional parameter in SSRC line a=ssrc:11111 Advantage: using 1 byte for each source flow identifier, instead of 4 bytes for each SSRC.
Next Steps Decide on a design approach for protecting multi- flows Get draft reviewed by AVT group Comments are welcome!