Why: to simply router configuration, so that only one fixed port number, 554, needs to accept connection.
How: Server sends video in the response of PLAY command. For each channel the format is like this:
[ Dolloar sign $, one byte channel ID, two bytes to say length of data, stream data itself ]
Channel ID is defined in SETUP response for that channel, e.g. RTP/AVP/TCP;unicast;interleaved=0-1, where 0 is RTP and 1 is RTCP. The stream data is sent as binary.
Head up: If RTSP wants RTP to be TCP based, RTP must be embedded into PLAY response, and therefore no such thing as RTP TCP port.
Reference: http://www.ietf.org/rfc/rfc2326.txt


Sync video from multiple IP cameras

When live streaming the same hockey game with two RTSP H.264 cameras, can the two video streams play in sync?

No wall clock in this setup; both cameras are standalone.

I think Yes, in theory.

We expect the clocks on the two cameras accurate enough. (frequent NTP helps)

The two RTCP servers on the cameras map the RTP time stamps to UTC time.

PTS can be calculated from RTP time stamp.

By RTP and RTCP, we have the PTS in UTC, and therefore, sync the two videos.

Problem: packages from RTCP may not inaccurate/missing in reality.


1: https://stackoverflow.com/questions/2439096/h264-rtp-timestamp

[“Non interleaved”, in which, you must set the RTP timestamp to the PTS + offset]

2: https://groups.google.com/forum/#!msg/discuss-webrtc/npLmOesI8A4/oL2p_HbhAgAJ

[synchronization between two RTP streams using RTCP SR]