Back to results
US 10,484,446 B1Granted
VBR encoding of live content
AssigneeAmazon Technologies, Inc.
InventorsCharles Benjamin Franklin Waggoner, Marc Joliveau, Stefan Christian Richter, Yongjun Wu
Life of this patent
Estimating the term…
Abstract
Techniques are described that enable the use of variable bit rate (VBR) encoding for live content.
Claims23
A computer-implemented method, comprising:
- receiving media content representing a live event while the live event is ongoing;
- encoding segments of the media content while the live event is ongoing with a plurality of variable-bit-rate (VBR) encoders operating in parallel thereby generating a plurality of encodings of the media content, each encoding corresponding to one of a plurality of quality levels and including a fragment for each of the segments of the media content;
- providing manifest data to each of a plurality of client devices, the manifest data indicating a URL template for generating HTTP requests that enable each client device to generate requests corresponding to the segments of the media content including future segments of the media content that have yet to be encoded;
- receiving a first request indicating a first index value corresponding to a first segment of the media content from a first client device;
- selecting a first fragment corresponding to the first segment of the media content and a first encoding based on one or more of a first quality level specified in the first request, a supported frame size of the first client device, a video decode buffer constraint of the first client device, or a network bandwidth associated with the first client device;
- associating metadata with the first fragment, the metadata representing a set of fragments corresponding to a second segment of the media content subsequent to the first segment and including a duration of the second segment and a plurality of fragment sizes, each of the fragment sizes corresponding to one or more of the plurality of quality levels of the media content;
- transmitting the first fragment to the first client device for playback while the live event is ongoing;
- receiving a second request indicating a second index value corresponding to the second segment of the media content and one of the plurality of quality levels from the first client device, the second request having been generated using at least the duration of the second segment indicated in the metadata, the duration of the first segment being different from the duration of the second segment;
- selecting a second fragment from among the set of fragments based on the second request;
- and
- transmitting the second fragment to the first client device for playback while the live event is ongoing.
8 more elements
A computer-implemented method, comprising:
- receiving media content representing a live event while the live event is ongoing;
- encoding segments of the media content while the live event is ongoing with a plurality of variable-bit-rate (VBR) encoders operating in parallel thereby generating a plurality of encodings of the media content, each encoding corresponding to one of a plurality of quality levels and including a fragment for each of the segments of the media content;
- providing manifest data to each of a plurality of client devices, the manifest data being configured to enable each client device to generate requests corresponding to the segments of the media content including future segments of the media content that have yet to be encoded;
- receiving a first request corresponding to a first segment of the media content from a first client device;
- selecting a first fragment corresponding to the first segment of the media content and a first encoding based on one or more of a first quality level specified in the first request, a characteristic of the first client device, a processing resource constraint of the first client device, or a network condition associated with the first client device;
- associating metadata with the first fragment, the metadata representing a fragment characteristic of a second fragment corresponding to a second segment of the media content subsequent to the first segment, the fragment characteristic corresponding to one of the plurality of VBR encoders;
- and
- transmitting the first fragment and the associated metadata to the first client device for playback while the live event is ongoing.
5 more elements
A system, comprising one or more computing devices configured to:
- receive media content representing a live event while the live event is ongoing;
- encode segments of the media content while the live event is ongoing with a plurality of variable-bit-rate (VBR) encoders operating in parallel thereby generating a plurality of encodings of the media content, each encoding corresponding to one of a plurality of quality levels and including a fragment for each of the segments of the media content;
- provide manifest data to each of a plurality of client devices, the manifest data being configured to enable each client device to generate requests corresponding to the segments of the media content including future segments of the media content that have yet to be encoded;
- receive a first request corresponding to a first segment of the media content from a first client device;
- select a first fragment corresponding to the first segment of the media content and a first encoding based on one or more of a first quality level specified in the first request, a characteristic of the first client device, a processing resource constraint of the first client device, or a network condition associated with the first client device;
- associate metadata with the first fragment, the metadata representing a fragment characteristic of a second fragment corresponding to a second segment of the media content subsequent to the first segment, the fragment characteristic corresponding to one of the plurality of VBR encoders;
- and
- transmit the first fragment and the associated metadata to the first client device for playback while the live event is ongoing.
5 more elements
Dependencies are inferred from the claim text.