Synchronizing Multiple Streams
Synchronizing Multiple Streams
One of the interesting things which RTP supports is synchronization of multiple streams (e.g., audio with a video stream)
0 1 |
2 |
3 |
8 |
16 |
VER |
P |
RC |
PTYPE |
Length |
Sender’s Synchronization Source ID |
||||
NTP Time Stamp (most significant 32 bits) |
||||
NTP Time Stamp (least significant 32 bits) |
||||
RTP Timestamp |
||||
Sender’s Packet Count |
||||
Sender’s Octet Count |
||||
First Synchronization Source |
||||
Fraction Lost |
Total Packets Lost |
|||
Extended Highest Sequence Received |
||||
Inter-arrival Jitter |
||||
Last Sender Report |
||||
Delay Since Last Sender Report |
||||
… |
One of the interesting things which RTP supports is synchronization of multiple streams (e.g., audio with a video stream) 0 1 2 3 8 16
- Unfortunately, since the time stamps of each stream started at a random number we need some other method to synchronize them!
- Thus use Network Time Protocol (NTP) based time stamps ⇒ an absolute timestamp
- If we include the stream timestamps we can correlate them to absolute time (and hence from one stream to another)
Transcript
[slide105] How do we synchronize them all together? So we have these messages where what we do is we put the sender's synchronization source ID, we now use NTP timestamps, and now we can correlate those with the RTP timestamp. And by sending this information out, every one of the entities knows how to adjust their play out to be synchronized to NTP time. Now, anyone know any [time] protocols? Well, first of all, how accurate can we get with NTP? [student answers] Yes. So if there's a lot of jitter on your networks, maybe you can get milliseconds sort of timing. [student answers] Right. But today, there is a protocol called the precision time protocol, and the goal of that is to actually be able to go down to nanosecond synchronization of the sources with a common time source. And this is a very, very interesting question of what would happen if, for instance, we did a modern version of this and we said, hey, we're going to do PTP, instead of NTP. Will that change the kinds of things we can do?