Patent ID: 9565482
Date: 2017-02-07
CPC Classifications: H04N

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.