Signaling video samples for trick mode video representations
First Claim
Patent Images
1. A method comprising:
- receiving, at a client device from a server device, an indication of a maximum byte offset defining a byte range within a plurality of media segments, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one intra-coded frame (I-frame) within the byte range, wherein each of the plurality of media segments comprises a respective file associated with a respective one of a plurality of uniform resource locators (URLs), and wherein the plurality of media segments represent a video presentation configured to be displayed at a first playback speed;
in response to a determination to present the video representation using a trick mode, sending, by the client device, requests to the server device to retrieve media data from each of the plurality of media segments corresponding to the byte range based on the indication, wherein the requests specify the URL associated with a respective one of the media segments and specify the byte range, such that each of the requests specifies a different one of the URLs but specifies the same byte range; and
using the retrieved media data within the byte range to present a high speed version of the video representation, in accordance with the trick mode, that includes the at least one I-frame at a second playback speed higher than the first playback speed, wherein the retrieved media data for a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment and the retrieved media data for a second media segment of the plurality of media segments ends with an I-frame of the second media segment.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure describes techniques relevant to HTTP streaming of media data. According to these techniques, a server device may signal a byte range for at least one intra-decodable (I-frame) of a video fragment. According to the techniques of this disclosure, a client device may communicate a request to a server device to retrieve the at least one I-frame based on the signaled byte range, and use the retrieved I-frame to provide a high speed version of a video presentation that includes the at least one I-frame. A high speed version of a video presentation may be a trick mode of the video presentation, such as a fast forward or fast rewind version of the video presentation.
287 Citations
38 Claims
-
1. A method comprising:
-
receiving, at a client device from a server device, an indication of a maximum byte offset defining a byte range within a plurality of media segments, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one intra-coded frame (I-frame) within the byte range, wherein each of the plurality of media segments comprises a respective file associated with a respective one of a plurality of uniform resource locators (URLs), and wherein the plurality of media segments represent a video presentation configured to be displayed at a first playback speed; in response to a determination to present the video representation using a trick mode, sending, by the client device, requests to the server device to retrieve media data from each of the plurality of media segments corresponding to the byte range based on the indication, wherein the requests specify the URL associated with a respective one of the media segments and specify the byte range, such that each of the requests specifies a different one of the URLs but specifies the same byte range; and using the retrieved media data within the byte range to present a high speed version of the video representation, in accordance with the trick mode, that includes the at least one I-frame at a second playback speed higher than the first playback speed, wherein the retrieved media data for a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment and the retrieved media data for a second media segment of the plurality of media segments ends with an I-frame of the second media segment. - View Dependent Claims (2, 3, 4, 30)
-
-
5. A device, comprising:
-
means for receiving, at a client device from a server device, an indication of a maximum byte offset defining a byte range within a plurality of media segments, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one intra-coded frame (I-frame) within the byte range, wherein each of the plurality of media segments comprises a respective file associated with a respective one of a plurality of uniform resource locators (URLs), and wherein the plurality of media segments represent a video presentation configured to be displayed at a first playback speed; means for sending, by the client device, in response to a determination to present the video representation using a trick mode, requests to the server device to retrieve media data from each of the plurality of media segments corresponding to the byte range based on the indication, wherein the requests specify the URL associated with a respective one of the media segments and specify the byte range, such that each of the requests specifies a different one of the URLs but specifies the same byte range; and means for using the retrieved media data within the byte range to present a high speed version of the video representation that includes the at least one I-frame at a second playback speed higher than the first playback speed, wherein the retrieved media data for a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment and the retrieved media data for a second media segment of the plurality of media segments ends with an I-frame of the second media segment. - View Dependent Claims (6, 7, 8, 31)
-
-
9. A non-transitory computer readable storage medium that stores instructions configured to cause a computing device to:
-
receive, at a client device from a server device, an indication of a maximum byte offset defining a byte range within a plurality of media segments, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one intra-coded frame (I-frame) within the byte range, wherein each of the plurality of media segments comprises a respective file associated with a respective one of a plurality of uniform resource locators (URLs), and wherein the plurality of media segments represent a video presentation configured to be displayed at a first playback speed; in response to a determination to present the video representation using a trick mode, send, by the client device, requests to the server device to retrieve media data from each of the plurality of media segments corresponding to the byte range based on the indication, wherein the requests specify the URL associated with a respective one of the media segments and specify the byte range, such that each of the requests specifies a different one of the URLs but specifies the same byte range; and use the retrieved media data within the byte range to present a high speed version of the video representation that includes the at least one I-frame at a second playback speed higher than the first playback speed, wherein the retrieved media data for a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment and the retrieved media data for a second media segment of the plurality of media segments ends with an I-frame of the second media segment. - View Dependent Claims (10, 11, 12, 32)
-
-
13. A device, comprising:
-
a memory configured to store a plurality of media segments; and at least one processor configured to; receive an indication of a maximum byte offset defining a byte range within the plurality of media segments, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one intra-coded frame (I-frame) within the byte range, wherein each of the plurality of media segments comprises a respective file associated with a respective one of a plurality of uniform resource locators (URLs), and wherein the plurality of media segments represent a video presentation configured to be displayed at a first playback speed; in response to a determination to present the video representation using a trick mode, send requests to the server device to retrieve media data from each of the plurality of media segments corresponding to the byte range based on the indication, wherein the requests specify the URL associated with a respective one of the media segments and specify the byte range, such that each of the requests specifies a different one of the URLs but specifies the same byte range; and use the retrieved media data within the byte range to present a high speed version of the video representation that includes the at least one I-frame at a second playback speed higher than the first playback speed, wherein the retrieved media data for a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment and the retrieved media data for a second media segment of the plurality of media segments ends with an I-frame of the second media segment. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method comprising:
-
receiving a plurality of media segments, each of the plurality of media segments comprising a respective sequence of encoded video frames comprising at least one intra-coded frame (I-frame), and wherein each of the plurality of media segments comprises a respective file; determining a maximum of byte offsets to last bytes of the intra-coded frames of the plurality of media segments to determine a maximum byte offset for the plurality of media segments; generating an indication of the maximum byte offset defining a byte range within the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one I-frame within the byte range, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, and wherein a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment within the byte range and a second media segment of the plurality of media segments ends with an I-frame of the second media segment at the byte range; and outputting the indication of the maximum byte offset. - View Dependent Claims (19, 20, 21, 33)
-
-
22. A device comprising:
-
means for receiving a plurality of media segments, each of the plurality of media segments comprising a respective sequence of encoded video frames comprising at least one intra-coded frame (I-frame), and wherein each of the plurality of media segments comprises a respective file; means for determining a maximum of byte offsets to last bytes of the intra-coded frames of the plurality of media segments to determine a maximum byte offset for the plurality of media segments; means for generating an indication of the maximum byte offset defining a byte range within the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one I-frame within the byte range, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, and wherein a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment within the byte range and a second media segment of the plurality of media segments ends with an I-frame of the second media segment at the byte range; and means for outputting the indication of the maximum byte offset. - View Dependent Claims (23, 24, 25, 34)
-
-
26. A non-transitory computer readable storage medium that stores instructions configured to cause a computing device to:
-
receive a plurality of media segments, each of the plurality of media segments comprising a respective sequence of encoded video frames comprising at least one intra-coded frame (I-frame), and wherein each of the plurality of media segments comprises a respective file; determine a maximum of byte offsets to last bytes of the intra-coded frames of the plurality of media segments to determine a maximum byte offset for the plurality of media segments; generate an indication of the maximum byte offset defining a byte range within the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one I-frame within the byte range, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, and wherein a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment within the byte range and a second media segment of the plurality of media segments ends with an I-frame of the second media segment at the byte range; and output the indication of the maximum byte offset. - View Dependent Claims (27, 35, 37)
-
-
28. A device comprising:
-
a memory configured to store a plurality of media segments; and one or more processors configured to; receive the plurality of media segments, each of the plurality of media segments comprising a respective sequence of encoded video frames comprising at least one intra-coded frame (I-frame), and wherein each of the plurality of media segments comprises a respective file; determine a maximum of byte offsets to last bytes of the intra-coded frames of the plurality of media segments to determine a maximum byte offset for the plurality of media segments; generate an indication of the maximum byte offset defining a byte range within the plurality of media segments, wherein the indication of the maximum byte offset further indicates that each of the media segments includes at least one I-frame within the byte range, wherein the maximum byte offset is less than the total number of bytes in each of the plurality of media segments, and wherein a first media segment of the plurality of media segments includes data for a non-I-frame following an I-frame of the first media segment within the byte range and a second media segment of the plurality of media segments ends with an I-frame of the second media segment at the byte range; and output the indication of the maximum byte offset. - View Dependent Claims (29, 36, 38)
-
Specification