2/22/08IEEE 1733 Face-to-Face Sandy, Utah 1 RTP Overview Suman Sharma
RTP Stack 2/22/08IEEE 1733 Face-to-Face Sandy, Utah 2 IP Payload Formats RTP UDP TCP RTSP SDP RTP: rfc3550RTSP: rfc2326SDP: rfc2327SRTP: rfc3711 RTP/AVP: rfc3551
RTP Header 2/22/08IEEE 1733 Face-to-Face Sandy, Utah Payload RTP Payload
Architecture for Media Streaming SENDER(StreamingServer)SENDER(StreamingServer) RTSP/SDPRTSP/SDP RTP/MPEGRTP/MPEG Control Plane Data Plane ISMARECEIVERISMARECEIVER DeliveryDelivery 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
RTP / RTCP Walk-thru ServerServer Client Client UDP UDP RTCPRTCPRTCPRTCP RTCPRTCP RTCPRTCP RTPRTPRTPRTP MP4 File System Packet READINGREADING PARSERPARSER DECODERDECODER RESPONSERESPONSE PARSERPARSER CLIENTCLIENT SERVERSERVER PARSERPARSER RESPONSERESPONSE DeliveryDelivery Out-of-band Control for QoS Reporting 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
Mapping of Media Data Video AU RTP Header AU data RTP Header AU data 1/n AU …… ………… AU1 AU1 AU2 AU2 AU3 AU3 AU… AU… AU1 Header RTP Header AU2 Header AU… Header AU3 Header AU… data AU data AU header section RTP payload Mapping of AU into RTP Packet Mapping of Video AU into multiple RTP Packets Mapping of Audio AUs into RTP Packet AU = Access Unit HintingHinting Case 1: Case 2: 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
RTCP Packet Structure RTCP Packet Types –Sender Report (SR): transmission statistics –Receiver Report (RR): reception statistics –Source Description Item (SDES): CNAME, etc –BYE: end of participation –Application Specific Functions (APP) RTCP Compound Packet –Because RTCP packets are small, one UDP packet may contain several RTCP packets. For example, SR + SDES + APP RTCP Packet Types –Sender Report (SR): transmission statistics –Receiver Report (RR): reception statistics –Source Description Item (SDES): CNAME, etc –BYE: end of participation –Application Specific Functions (APP) RTCP Compound Packet –Because RTCP packets are small, one UDP packet may contain several RTCP packets. For example, SR + SDES + APP DeliveryDelivery 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
RTSP Commands RequiredRequiredClient->ServerClient->ServerTEARDOWNTEARDOWN OptionalOptionalClient<->ServerClient<->ServerSET_PARAMETERSET_PARAMETER RequiredRequiredClient->ServerClient->ServerSETUPSETUP OptionalOptionalServer->ClientServer->ClientREDIRECTREDIRECT OptionalOptionalClient->ServerClient->ServerRECORDRECORD RequiredRequiredClient->ServerClient->ServerPLAYPLAY RecommendedRecommendedClient->ServerClient->ServerPAUSEPAUSE Required (S->C: optional) Client<->ServerClient<->ServerOPTIONSOPTIONS OptionalOptionalClient<->ServerClient<->ServerGET_PARAMETERGET_PARAMETER OptionalOptionalClient<->ServerClient<->ServerANNOUNCEANNOUNCE RecommendedRecommendedClient->ServerClient->ServerDESCRIBEDESCRIBE RequirementRequirementDirectionDirectionMethodMethod DeliveryDelivery 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
SDP SDP is relevant to the media announcement SDP is sent by server in a response to clients RTSP:DESCRIBE command request Example (video specific lines, SDP sample syntax) –m=video 0 RTP/AVP 97 –a=rtpmap: 97 MP4V-ES –a=control: trackID = 6 –a=fmtp: 97 profile-level-id=1 –config=000001B B FA2 82C2090A21F –Config includes: AU size; AU index/AU index delta: CTS flag; CTS delta; DTS flag; DT delta –a=mpeg4-esid:201 SDP is relevant to the media announcement SDP is sent by server in a response to clients RTSP:DESCRIBE command request Example (video specific lines, SDP sample syntax) –m=video 0 RTP/AVP 97 –a=rtpmap: 97 MP4V-ES –a=control: trackID = 6 –a=fmtp: 97 profile-level-id=1 –config=000001B B FA2 82C2090A21F –Config includes: AU size; AU index/AU index delta: CTS flag; CTS delta; DTS flag; DT delta –a=mpeg4-esid:201 DeliveryDelivery Initial Object Descriptor 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
RTSP / SDP Walk-thru SETUPSETUPDESCRIBEDESCRIBESETUPSETUPTEARDOWNTEARDOWNPAUSEPAUSEPLAYPLAY OK OK NETWORKNETWORK Read SDP from MP4 file Read SDP from MP4 file Sequential Stages Client: parse requests and set responses Server: parse responses and set requests DeliveryDelivery 2/22/08IEEE 1733 Face-to-Face Sandy, Utah
Port Assignment (Example) DarwinStreamingServerDarwinStreamingServerRTP Port 6980 RTP RTCP Port 6981 RTCP RTSP Port 554 or 7070 RTSP HTTP Port 1220 HTTP RTCP Port 6981 (Video)RTCP (Video) RTP Port 6982 RTP RTSP Port 554 or 7070 RTSP Remote-Management via Web Browser RTCP Port 6983 (Audio)RTCP (Audio) QuickTimePlayerQuickTimePlayer DeliveryDelivery 2/22/08IEEE 1733 Face-to-Face Sandy, Utah