Media playback point seeking using data range requests
First Claim
1. A method comprising:
- receiving, by a device, a demand to present a segment of a media object, wherein the media object includes key frames and frames encoded based upon the key frames, the segment begins at a starting playback point of the media object after an initial playback point of the media object, and the device has not yet received any data that is within the segment when the demand to present the segment of the media object is received;
outputting, by the device, in response to receiving the demand, a request for range identification data associated with the media object, wherein the request specifies a resource identifier associated with all data in the media object and the range identification data includes;
information for identifying at least one portion of the media object that includes the metadata; and
a key frame list comprising respective byte indexes associated with key frames of the media object;
receiving, by the device, the range identification data in response to the request for range identification data;
determining, by the device, a first range of the media object based upon the information, wherein the first range includes metadata employable for converting the data in the media object within a second range from a first encoding format into a second encoding format and the data that is within the segment of the media object is within the second range;
identifying, by the device, a lower end of the second range as a first byte index associated with a first key frame closest to the starting playback point of the segment; and
identifying, by the device, an upper end of the second range as a second byte index associated with a second key frame closest to an ending playback point of the media object corresponding to an end of the segment.
6 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for downloading user-selected segments of media objects. As described herein, a user may demand that a client device present a segment of a media object when the client device has not yet downloaded the data that represents the partial segment of the media object. The client device may then output two separate requests to a server that hosts the media object. The first request specifies a resource identifier of the media object and a first data range. Data in the first range specifies a format of data of the media object. The second request specifies the resource identifier of the media object and a second data range. Data in the second range represents the requested partial segment of the media object. When the client device receives the data, the client device uses the data in the first range to present the data in the second range.
86 Citations
27 Claims
-
1. A method comprising:
-
receiving, by a device, a demand to present a segment of a media object, wherein the media object includes key frames and frames encoded based upon the key frames, the segment begins at a starting playback point of the media object after an initial playback point of the media object, and the device has not yet received any data that is within the segment when the demand to present the segment of the media object is received; outputting, by the device, in response to receiving the demand, a request for range identification data associated with the media object, wherein the request specifies a resource identifier associated with all data in the media object and the range identification data includes; information for identifying at least one portion of the media object that includes the metadata; and a key frame list comprising respective byte indexes associated with key frames of the media object; receiving, by the device, the range identification data in response to the request for range identification data; determining, by the device, a first range of the media object based upon the information, wherein the first range includes metadata employable for converting the data in the media object within a second range from a first encoding format into a second encoding format and the data that is within the segment of the media object is within the second range; identifying, by the device, a lower end of the second range as a first byte index associated with a first key frame closest to the starting playback point of the segment; and identifying, by the device, an upper end of the second range as a second byte index associated with a second key frame closest to an ending playback point of the media object corresponding to an end of the segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A device comprising:
-
a processor; a memory communicatively coupled to processor, the memory having stored therein computer-executable instructions, comprising; a media player configured to receive a demand to present a segment of a media object, wherein the media object includes key frames and frames encoded based upon the key frames, the segment begins at a starting a playback point of the media object after an initial playback point of the media object, and the device has not yet received any data that is within the segment when the demand to present the segment of the media object is received; a download agent configured to; output, in response to receiving the demand, a request for range identification data associated with the media object, wherein the request specifies a resource identifier associated with all data in the media object and wherein the range identification data includes; information for identifying at least one portion of the media object that includes the metadata; and a key frame list comprising respective byte indexes associated with key frames of the media object; receive the range identification data in response to the request for range identification data; determine a first range of the media object based upon the information, wherein the first range includes metadata employable for converting the data in the media object within a second range from a first encoding format into a second encoding format and the data that is within the segment of the media object is within the second range; identify a lower end of the second range as a first byte index associated with a first key frame closest to the starting playback point of the segment; and identify an upper end of the second range as a second byte index associated with a second key frame closest to an ending playback point of the media object corresponding to an end of the segment. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more processors of a device, cause the one or more processors to perform operations comprising:
-
receiving a demand to present a segment of a media object, wherein the media object includes key frames and frames encoded based upon the key frames, the segment begins at a starting playback point of the media object after an initial playback point of the media object, and the device has not yet received any data that is within the segment of the media object when the demand to present the segment of the media object is received; outputting, in response to receiving the demand, a request for range identification data associated with the media object, wherein the request specifies a resource identifier associated with all data in the media object and the range identification data includes; information for identifying at least one portion of the media object that includes the metadata; and a key frame list comprising respective byte indexes associated with key frames of the media object; receiving, the range identification data in response to the request for range identification data; determining a first range of the media object based upon the information, wherein the first range includes metadata employable for converting the data in the media object within a second range from a first encoding format into a second encoding format and the data that is within the segment of the media object is within the second range; identifying a lower end of the second range as a first byte index associated with a first key frame closest to the starting playback point of the segment; and identifying an upper end of the second range as a second byte index associated with a second key frame closest to an ending playback point of the media object corresponding to an end of the segment. - View Dependent Claims (22, 23)
-
-
24. A system comprising:
-
means for receiving a demand to present a segment of a media object, wherein the media object includes key frames and frames encoded based upon the key frames, the segment begins at a starting playback point of the media object after an initial playback point of the media object, and the device has not yet received any data that is within the segment of the media object when the demand to present the segment of the media object is received; means for outputting, in response to receiving the demand, a request for range identification data associated with the media object, wherein the request specifies a resource identifier associated with all data in the media object and the range identification data includes; information for identifying at least one portion of the media object that includes the metadata; and a key frame list comprising respective byte indexes associated with key frames of the media object; receiving, the range identification data in response to the request for range identification data; means for determining a first range of the media object based upon the information, wherein the first range includes metadata employable for converting the data in the media object within a second range from a first encoding format into a second encoding format and the data that is within the segment of the media object is within the second range; means for identifying a lower end of the second range as a first byte index associated with a first key frame closest to the starting playback point of the segment; and means for identifying an upper end of the second range as a second byte index associated with a second key frame closest to an ending playback point of the media object corresponding to an end of the segment. - View Dependent Claims (25, 26, 27)
-
Specification