Adaptive trick play streaming
First Claim
1. A non-transitory computer readable medium having stored thereon instructions executable to cause a processing unit to carry out functions comprising:
- detecting a request to play video at a fast-play speed defining a multiple of a normal playback speed of the video; and
responsive to the request, (i) selecting from a plurality of versions of a trick-play track of the video a version that has the highest I-frame rate that, when played out at the requested fast-play speed, will have a bit-rate that does not exceed a network bandwidth threshold, wherein each version has a normal speed bit-rate, and wherein selecting from the plurality of versions of the trick-play track of the video a version that has the highest I-frame rate that, when played out at the requested fast-play speed, will have a bit-rate that does not exceed the network bandwidth threshold comprises a function selected from the group consisting of (a) determining which of the versions would have a highest increased bit-rate less than or equal to the network bandwidth threshold when played out at the requested fast-play speed and (b) determining which of the versions has a highest normal speed bit-rate less than or equal to the network bandwidth threshold divided by the requested fast play speed, and (ii) causing the selected version of the trick-play track to be streamed over a network from a server to a client for playout.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and devices for controlling trick-play video streaming. Upon receipt of a request to play video at a fast-play (e.g., fast-forward or fast-reverse) speed that is some multiple of a normal playback speed, one of multiple possible frame-rate versions of a trick-play track may be selected based on the requested fast-play speed and an available network bandwidth, and a server may stream the selected frame-rate version of the trick-play track to a client for playout. The various frame-rate versions may differ from each other in terms of a rate at which they skip I-frames of the video.
38 Citations
29 Claims
-
1. A non-transitory computer readable medium having stored thereon instructions executable to cause a processing unit to carry out functions comprising:
-
detecting a request to play video at a fast-play speed defining a multiple of a normal playback speed of the video; and responsive to the request, (i) selecting from a plurality of versions of a trick-play track of the video a version that has the highest I-frame rate that, when played out at the requested fast-play speed, will have a bit-rate that does not exceed a network bandwidth threshold, wherein each version has a normal speed bit-rate, and wherein selecting from the plurality of versions of the trick-play track of the video a version that has the highest I-frame rate that, when played out at the requested fast-play speed, will have a bit-rate that does not exceed the network bandwidth threshold comprises a function selected from the group consisting of (a) determining which of the versions would have a highest increased bit-rate less than or equal to the network bandwidth threshold when played out at the requested fast-play speed and (b) determining which of the versions has a highest normal speed bit-rate less than or equal to the network bandwidth threshold divided by the requested fast play speed, and (ii) causing the selected version of the trick-play track to be streamed over a network from a server to a client for playout. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
receiving a request to play video at a fast-play speed that defines a multiple of a normal playback speed of the video; identifying a plurality of different frame-rate versions of a trick play track corresponding with the video, where each frame-rate version has a respective bit-rate that is different than the bit-rate of each other frame-rate version due at least in part to each frame-rate version skipping a different number of I-frames of the video than each other frame-rate version; selecting from the identified plurality of frame-rate versions a best frame-rate version by (i) determining, if the bit-rate of each frame-rate version were multiplied by the requested fast-play speed to produce an increased bit-rate per frame-rate version, which frame-rate version would have the highest increased bit-rate that is less than a network bandwidth threshold and (ii) selecting the determined frame-rate version as the best frame-rate version; and causing a server to stream the selected frame-rate version over a network to a client. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A computing device comprising:
-
a network communication interface; a user interface; a processor; data storage; and program logic stored in the data storage and executable by the processor to carry out functions comprising; receiving from the user interface a request to play video at a fast-play speed that defines a multiple of a normal playback speed of the video, and responsive to the request, (a) selecting a version of a trick-play track of the video based at least in part on the requested fast-play speed and a network bandwidth threshold, wherein selecting the version of the trick-play track based at least in part on the requested fast-play speed and the network bandwidth threshold comprises selecting as the version of the trick-play track a version of the trick-play track that has a rate of skipping I-frames of the video sufficient that the version of the trick-play track, when played at the requested fast-play speed, would have bit rate that does not exceed the network bandwidth threshold, and (b) causing a server to stream the selected version of the trick-play track over a network to the computing device for playout at the user interface, wherein the data storage holds an index of the video, the index specifying a plurality of versions of the trick-play track, wherein the plurality of versions of the trick-play track differ from each other at least in terms of their respective rate of skipping I-frames of the video and thus their respective bit rate, and wherein selecting the version of the trick-play track comprises (i) referring to the index to identify one or more of the specified plurality of versions of the trick-play track that, when played at the requested fast-play speed, would have an increased bit rate that would not exceed the network bandwidth threshold, and (ii) selecting a highest bit-rate one of the identified one or more identified versions of the trick-play track. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A method for controlling fast-play playout of video at a requested fast-play speed that defines a multiple of a normal playback speed of the video, the method comprising:
-
determining a lowest rate at which a trick-play track of the video should skip I-frames of the video in order for the trick-play track, played at the requested fast-play speed, to have a bit rate less than or equal to a measure of network bandwidth; given an option for a server to stream to a client any of a plurality of different frame-rate versions of a trick-play track of the video, wherein each frame-rate version has a bit-rate that is different than the bit-rate of each other frame-rate version due at least in part to each frame-rate version skipping I-frames at a different rate than each other frame-rate version, selecting the frame-rate version that skips I-frames at the determined lowest rate; and causing the server to stream to the client the selected frame-rate version of the trick-play track. - View Dependent Claims (29)
-
Specification