System And Method For Predicting Buffering And Network Shaping
Adaptive video streaming system and method comprising a computer network comprising a data source; a video player; a session controller configured to use in parallel a variable number of streams in order to maximize download throughput from said data source to said video player; and an adaptive streaming optimizer connected between said data source and said video player, the adaptive streaming optimizer configured to predict the next resolution to be requested by the player and determine which fragments to download accordingly.
1 . An adaptive video streaming system comprising:
a computer network comprising a data source;
a video player;
a session controller configured to use in parallel a variable number of streams in order to maximize download throughput from said data source to said video player; and
an adaptive streaming optimizer connected between said data source and said video player, the adaptive streaming optimizer configured to predict the next resolution to be requested by the player and determine which fragments to download accordingly.
2 . A method of adaptive video streaming optimization comprising:
receiving from a video player a request for an adaptive video stream to be downloaded from a given URL in a specified resolution;
downloading fragments of the specified resolution from the given URL and uploading them to the player at the same rate; and
after a pre-determined time has elapsed—attempting to increase the current resolution of fragments uploaded to the player.
3 . The method of claim 2 , wherein said attempting to increase the resolution comprises maximizing the download rate of current resolution fragments from the given URL and limiting the upload rate of the current resolution fragments to the player below a next higher resolution.
4 . The method of claim 3 , further comprising downloading fragments of the next resolution into a second buffer and uploading fragments to the player from the second buffer if the player requests the next resolution and the second buffer is full enough.