Just-in-time (JIT) encoding for streaming media content
First Claim
Patent Images
1. A method comprising:
- during a first time period;
receiving source data having media content at a just-in-time (JIT) encoder executing on a computing system, the media content containing compressed video and compressed audio;
inspecting the media content to locate key frames and audio boundaries without decoding the media content;
creating, responsive to the inspecting and without decoding the media content, an index indicating the key frames and audio boundaries of the media content, wherein the creating the index comprises creating a metadata descriptor file of the media content, wherein the metadata descriptor file specifies a plurality of different quality profiles and locations of where the media content encoded according to the plurality of different quality profiles will be stored during a second time period; and
storing the index for subsequent just-in-time encoding of the media content;
during the second time period, which comes after the first time period;
receiving, at the computing system from a second computing system, a request for a specified time range of the media content at a first quality level of a plurality of specified quality levels, wherein the first quality level corresponds to a specified quality profile of the plurality of different quality profiles;
inspecting, by the JIT encoder, the metadata descriptor file to identify a location associated with the specified quality profile;
finding, by the JIT encoder, a latest key frame before a first frame of the media content at the specified time range in the index;
decoding, by the JIT encoder, the media content from the latest key frame through a last frame of the media content of the specified time range, to generate decoded media content;
re-encoding, by the JIT encoder, the decoded media content according to the first quality level, to generate re-encoded media content;
creating, by the JIT encoder, one or more slices of the re-encoded media content for the specified time range; and
storing, by the JIT encoder, the one or more slices at the location specified in the metadata descriptor file for the specified quality profile.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for just-in-time (JIT) encoding of media content is described. The JIT encoder allows a server to create one or more slices of requested portions of the media content according to one of the available quality profiles when requested without previously creating and storing different copies of the media content at the different quality profiles.
-
Citations
20 Claims
-
1. A method comprising:
-
during a first time period; receiving source data having media content at a just-in-time (JIT) encoder executing on a computing system, the media content containing compressed video and compressed audio; inspecting the media content to locate key frames and audio boundaries without decoding the media content; creating, responsive to the inspecting and without decoding the media content, an index indicating the key frames and audio boundaries of the media content, wherein the creating the index comprises creating a metadata descriptor file of the media content, wherein the metadata descriptor file specifies a plurality of different quality profiles and locations of where the media content encoded according to the plurality of different quality profiles will be stored during a second time period; and storing the index for subsequent just-in-time encoding of the media content; during the second time period, which comes after the first time period; receiving, at the computing system from a second computing system, a request for a specified time range of the media content at a first quality level of a plurality of specified quality levels, wherein the first quality level corresponds to a specified quality profile of the plurality of different quality profiles; inspecting, by the JIT encoder, the metadata descriptor file to identify a location associated with the specified quality profile; finding, by the JIT encoder, a latest key frame before a first frame of the media content at the specified time range in the index; decoding, by the JIT encoder, the media content from the latest key frame through a last frame of the media content of the specified time range, to generate decoded media content; re-encoding, by the JIT encoder, the decoded media content according to the first quality level, to generate re-encoded media content; creating, by the JIT encoder, one or more slices of the re-encoded media content for the specified time range; and storing, by the JIT encoder, the one or more slices at the location specified in the metadata descriptor file for the specified quality profile. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium comprising instructions that, when executed by a server computing system, cause the server computing system to:
-
during a first time period; receive source data having media content at a just-in-time (JIT) encoder executing on the server computing system, the media content containing compressed video and compressed audio; inspect the media content to locate key frames and audio boundaries without decoding the media content; create, responsive to inspecting the media content and without decoding the media content, an index indicating the key frames and audio boundaries of the media content, wherein to create the index comprises to create a metadata descriptor file of the media content, wherein the metadata descriptor file specifies a plurality of different quality profiles and locations of where the media content encoded according to the plurality of different quality profiles will be stored during a second time period; and store the index for subsequent just-in-time encoding of the media content; during the second time period, which comes after the first time period; receive, at the server computing system, a request for a specified time range of the media content at a first quality level of a plurality of specified quality levels, wherein the first quality level corresponds to a specified quality profile of the plurality of different quality profiles; inspect, by the JIT encoder, the metadata descriptor file to identify a location associated with the specified quality profile; find, by the JIT encoder, a latest key frame before a first frame of the media content at the specified time range in the index; decode, by the JIT encoder, the media content from the latest key frame through a last frame of the media content of the specified time range, to generate decoded media content; re-encode, by the JIT encoder, the decoded media content according to the first quality level, to generate re-encoded media content; create, by the JIT encoder, one or more slices of the re-encoded media content for the specified time range; and storing, by the JIT encoder, the one or more slices at the location specified in the metadata descriptor file for the specified quality profile. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A first computing system, comprising:
-
a data storage device; and a processing device, coupled to the data storage device, to execute a just-in-time (JIT) encoder, wherein the JIT encoder is to; during a first time period; receive source data having media content containing compressed video and compressed audio; inspect the media content to locate key frames and audio boundaries without decoding the media content; create, responsive to inspecting the media content and without decoding the media content, an index indicating the key frames and audio boundaries of the media content, wherein to create the index comprises to create a metadata descriptor file of the media content, wherein the metadata descriptor file specifies a plurality of different quality profiles and locations of where the media content encoded according to the plurality of different quality profiles will be stored during a second time period; and store the index for subsequent just-in-time encoding of the media content; during the second time period, which comes after the first time period; receive, from a second computing system, a request for a specified time range of the media content at a first quality level of a plurality of specified quality levels, wherein the first quality level corresponds to a specified quality profile of the plurality of different quality profiles; inspect the metadata descriptor file to identify a location associated with the specified quality profile; find a latest key frame before a first frame of the media content at the specified time range in the index; decode the media content from the latest key frame through a last frame of the media content of the specified time range, to generate decoded media content; re-encode the decoded media content according to the first quality level, to generate re-encoded media content; create one or more slices of the re-encoded media content for the specified time range; and storing, by the JIT encoder, the one or more slices at the location specified in the metadata descriptor file for the specified quality profile. - View Dependent Claims (17, 18, 19, 20)
-
Specification