Adaptive profile switching system and method for media streaming over IP networks
First Claim
1. A computer-implemented method using at least one profile for adaptively streaming video content over a public IP network, the method comprising the steps of:
- using at least one stream generator to select at least one profile to send at least one video stream from a sender device to the network, the sender device employing User Datagram Protocol (UDP) over a connection chosen from the list including;
unicast and VPN;
using a segmentation process to segment the at least one video stream associated with the at least one profile into a list of segments containing a GOP a group of pictures (GOP), to detect a start of the respective GOP, and to record a corresponding start time code;
operating a profile selection module, included in the at least one stream generator, to fetch respective groups of pictures (GOPs) and to stream respective GOPs sequentially, based upon a command from an adaptive rate process module, to provide respective continuous RTP streams to the network;
receiving the at least one video stream from the network by at least one receiving Automatic Repeat-reQuest (ARQ) device, the network having an instantaneous network bandwidth for the at least one video stream, and the at least one ARQ receiving device transmitting a request for at least one recovery packet back to the sender device through the network upon at least one lost packet occurrence;
preparing to send a recovery packet stream by the sender device to the at least one ARQ receiving device in response to the request for at least one recovery packet;
limiting the recovery packet stream by the at least one stream generator, serving to give priority to the at least one video stream over the recovery packet stream, the at least one video stream having an initial media stream bandwidth;
periodically probing the instantaneous network bandwidth, employing ARQ protection of probing, to simulate an increase in the instantaneous network bandwidth by sending an expendable dummy packet stream in parallel to the least one video stream, the dummy packet stream sent from the sender device to the at least one receiving device to determine a resultant profile media stream bandwidth which yields a packet loss lower than a defined packet loss threshold;
calculating and monitoring a protection potential, the protection potential calculated from a number of packets requested to be corrected but currently waiting, a number of packets requested to be corrected and currently being addressed, and a maximum correction index characteristic of bandwidth limits;
comparing the protection potential to a protection threshold to determine a resultant profile media stream bandwidth; and
adjusting the initial media stream bandwidth, relative to the instantaneous network bandwidth and the protection potential, by reselecting at least one profile for the sender device to use for sending the at least one video stream over a connection chosen from the list including;
unicast and VPN.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for adaptively streaming video content over an IP network, comprising devices and non-transitory computer-readable storage media having executable computer modules, comprising a sender device interacting with the network, the device configured to send a video stream to the network and to receive a recovery packet stream from the network; at least one receiving device configured to receive the at least one video stream from the network and to transmit a respective recovery packet stream back to the sender device through the network; a bandwidth probe configured to be periodically sent with the video stream to the at least one receiving device to determine respective instantaneous network bandwidths; at least one profile configured to be chosen by the sender device to generate the video stream, based upon respective instantaneous network bandwidths, wherein the video stream is adaptively changed, based upon instantaneous network bandwidths and the respective recovery packet stream.
5 Citations
14 Claims
-
1. A computer-implemented method using at least one profile for adaptively streaming video content over a public IP network, the method comprising the steps of:
-
using at least one stream generator to select at least one profile to send at least one video stream from a sender device to the network, the sender device employing User Datagram Protocol (UDP) over a connection chosen from the list including;
unicast and VPN;using a segmentation process to segment the at least one video stream associated with the at least one profile into a list of segments containing a GOP a group of pictures (GOP), to detect a start of the respective GOP, and to record a corresponding start time code; operating a profile selection module, included in the at least one stream generator, to fetch respective groups of pictures (GOPs) and to stream respective GOPs sequentially, based upon a command from an adaptive rate process module, to provide respective continuous RTP streams to the network; receiving the at least one video stream from the network by at least one receiving Automatic Repeat-reQuest (ARQ) device, the network having an instantaneous network bandwidth for the at least one video stream, and the at least one ARQ receiving device transmitting a request for at least one recovery packet back to the sender device through the network upon at least one lost packet occurrence; preparing to send a recovery packet stream by the sender device to the at least one ARQ receiving device in response to the request for at least one recovery packet; limiting the recovery packet stream by the at least one stream generator, serving to give priority to the at least one video stream over the recovery packet stream, the at least one video stream having an initial media stream bandwidth; periodically probing the instantaneous network bandwidth, employing ARQ protection of probing, to simulate an increase in the instantaneous network bandwidth by sending an expendable dummy packet stream in parallel to the least one video stream, the dummy packet stream sent from the sender device to the at least one receiving device to determine a resultant profile media stream bandwidth which yields a packet loss lower than a defined packet loss threshold; calculating and monitoring a protection potential, the protection potential calculated from a number of packets requested to be corrected but currently waiting, a number of packets requested to be corrected and currently being addressed, and a maximum correction index characteristic of bandwidth limits; comparing the protection potential to a protection threshold to determine a resultant profile media stream bandwidth; and adjusting the initial media stream bandwidth, relative to the instantaneous network bandwidth and the protection potential, by reselecting at least one profile for the sender device to use for sending the at least one video stream over a connection chosen from the list including;
unicast and VPN. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for adaptively streaming video content over a public IP network, comprising devices and non-transitory computer-readable storage media having executable computer modules, comprising:
-
a sender device interacting with the network, the sender device configured to send a video stream to the network using at least one profile selected by at least one stream generator, the sender device configured to use User Datagram Protocol (UDP) over a connection chosen from the list including;
unicast and VPN;a segmentation process module configured to segment the at least one video stream associated with the at least one profile into a list of segments containing a GOP a group of pictures (GOP), to detect a start of the respective GOP, and to record a corresponding start time code; a profile selection module, included in the at least one stream generator configured to fetch respective groups of pictures (GOPs) and to stream respective GOPs sequentially, based upon a command from an adaptive rate process module, to provide respective continuous RTP streams to the network; at least one receiving Automatic Repeat-reQuest (ARQ) device configured to receive the at least one video stream from the network, the network having an instantaneous network bandwidth for the at least one video stream, and the at least one ARQ receiving device further configured to transmit a request for at least one recovery packet back to the sender device through the network upon at least one lost packet occurrence; the at least one stream generator further configured to limit the recovery packet stream and to give priority to the at least one video stream over the recovery packet stream, the at least one video stream having an initial media stream bandwidth; a rate probe configured to periodically probe the instantaneous network bandwidth, employing ARQ protection of probing, to simulate an increase in the instantaneous network bandwidth by sending an expendable dummy packet stream in parallel to the least one video stream, the dummy packet stream configured to be sent from the sender device to the at least one receiving device to determine a resultant profile media stream bandwidth which yields a packet loss lower than a defined packet loss threshold; a protection potential configured to be calculated and monitored, the protection potential calculated from a number of packets requested to be corrected but currently waiting, a number of packets requested to be corrected and currently being addressed, and a maximum correction index characteristic of bandwidth limits; the protection potential further configured to be compared to a protection threshold to determine a resultant profile media stream bandwidth; and the at least one stream generator, further configured to adjust the initial media stream bandwidth relative to the instantaneous network bandwidth and the protection potential, by reselecting at least one profile for the sender device to use for sending the at least one video stream over a connection chosen from the list including;
unicast and VPN. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification