Method and system for providing site independent real-time multimedia transport over packet-switched networks
Embodiments of the invention enable minimum latency site independent real-time video transport over packet switched networks. Some examples of real-time video transport are video conferencing and real-time or live video streaming. In one embodiment of the invention, a network node transmits live or real-tine audio and video signals, encapsulated as Internet Protocol (IP) data packets, to one or more nodes on the Internet or other IP network. One embodiment of the invention enables a user to move to different nodes or move nodes to different locations thereby providing site independence. Site independence is achieved by measuring and accounting for the jitter and delay between a transmitter and receiver based on the particular path between the transmitter and receiver independent of site location. The transmitter inserts timestamps and sequence numbers into packets and then transmits them. A receiver uses these timestamps to recover the transmitter's clock. The receiver stores the packets in a buffer that orders them by sequence number. The packets stay in the buffer for a fixed latency to compensate for possible network jitter and/or packet reordering. The combination of timestamp packet-processing, remote clock recovery and synchronization, fixed-latency receiver buffering, and error correction mechanisms help to preserve the quality of the received video, despite the significant network impairments generally encountered throughout the Internet and wireless networks.
1 . A system for providing site independent real-time multimedia transport over packet-switched networks comprising:
a network;
a first node selected from a group of nodes wherein said first node is coupled with said network and wherein said first node comprises:
a packet store;
an automatic repeat request module coupled with said packet store;
a time clock; and,
a timing synchronizer configured to time stamp a first packet and a second packet obtained from said automatic repeat request module with a time parameter obtained from said time clock;
a plurality of second nodes selected from said group of nodes wherein said plurality of second nodes are coupled with said network and wherein said plurality of second nodes comprises:
a receiver time clock;
a receiver timing synchronizer coupled with said receiver time clock;
a clock recovery module coupled with said receiver timing synchronizer;
a receiver automatic repeat request buffer;
a receiver automatic repeat request module coupled with said receiver automatic repeat request buffer;
said first node configured to transmit to said plurality of said second nodes; and,
said plurality of second nodes configured to restore packet order, remove jitter and recover lost packets and where said each of said plurality of second nodes further comprise a network monitor configured to calculate and update a minimum hold time based on network jitter and round-trip time.
2 . The system of claim 1 said group of nodes comprises network enabled computing devices comprising a programmable central processing unit.
3 . The system of claim 2 wherein said network enabled computing devices comprise a video conference server, a real-time or live video streaming server, a laptop, a personal computer, a personal digital assistant or a cell phone.
4 . The system of claim 1 said first node and said second node are heterogeneous nodes.
5 . The system of claim 1 said first node and said second node are homogeneous nodes.
6 . The system of claim 1 said first node further comprises a filtering module.
7 . The system of claim 1 said first node further comprises a ghost suppression module.
8 . The system of claim 1 said first node further comprises an encoding module.
9 . The system of claim 1 said first node further comprises a companding module.
10 . The system of claim 1 said first node further comprises a compression module.
11 . The system of claim 1 said first node further comprises a multiplexing module.
12 . The system of claim 1 said first node further comprises an encryption module.
13 . A method for providing site independent real-time multimedia transport over packet-switched networks comprising:
encapsulating multimedia data as a first packet and a second packet;
combining said first packet and said second packet into a stream of packets;
stamping said first packet and said second packet with a time stamp and a sequence number; and,
transmitting said stream of packets over an network to a plurality of receivers.
14 . The method of claim 13 further comprising:
receiving a network monitor packet sent from a receiver node.
15 . The method of claim 13 further comprising:
calculating a jitter time using a network monitor packet sent from a receiver node.
16 . A method for providing site independent real-time multimedia transport over packet-switched networks comprising:
stamping a first packet, a second packet and at least one forward error correction packet with a time stamp of a time of arrival;
recovering a transmitter clock;
buffering said first packet, said second packet and said at least one forward error correction packet;
ordering said first packet and second packet based on a sequence number in said first packet and said second packet;
holding said first packet and said second packet in a buffer for a fixed latency to compensate for calculated network jitter;
removing said first packet and said second packet from said buffer and placing said first packet and said second packet in an error correction buffer for a fixed time;
recovering a first lost packet;
requesting resend of a second lost packet; and,
displaying multimedia using data obtained from said first packet, said second data packet, said first lost packet and said second lost packet.
17 . The method of claim 16 further comprising:
responding to a network monitor packet received from a transmitter node.
18 . The method of claim 17 further comprising:
calculating a minimum hold time based on network jitter and round-trip time calculated by said network monitor.
19 . The method of claim 18 further comprising:
adjusting said a minimum hold time based on network jitter and round-trip time calculated by said network monitor.