Synchronizing encoding between encoders
US-10313710-B1 · Jun 4, 2019 · US
US10812559B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10812559-B2 |
| Application number | US-201715409231-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 18, 2017 |
| Priority date | Jan 18, 2017 |
| Publication date | Oct 20, 2020 |
| Grant date | Oct 20, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques are described for just-in-time variable adaptive encoding and delivery of media content. Fragments of media content are encoded at bitrates corresponding to available bandwidth of client devices. If the available bandwidth changes, the bitrate at which fragments are being encoded is adjusted to correspond with the changed bandwidth.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: receiving a request from a first client device for a portion of first media content; receiving a request from a second client device for a portion of second media content; determining a complexity associated with the portion of the first media content; determining a complexity associated with the portion of the second media content; determining available bandwidth of the first client device; determining available bandwidth of the second client device; determining available resources of one or more media servers communicating with the first client device and the second client device; selecting a first bitrate according to the available bandwidth of the first client device, the complexity associated with the portion of the first media content, the complexity associated with the portion of the second media content, and the available resources of the one or more media servers; selecting a second bitrate according to the available bandwidth of the second client device, the complexity associated with the portion of the second media content, the complexity associated with the portion of the first media content, and the available resources of the one or more media servers; using a first encoder, encoding a first fragment corresponding to the portion of the first media content at the first bitrate; determining available resources of a second encoder; based on the available resources of the second encoder and using the second encoder, encoding a second fragment corresponding to the portion of second media content at the second bitrate; providing the first fragment to the first client device; providing the second fragment to the second client device receiving an additional request for an additional portion of the first media content, the additional portion of the first media content being next in a playback sequence to the portion of the first media content; determining an additional available bandwidth of the first client device; and using the second encoder, encoding a third fragment corresponding to the additional portion of the first media content, the third fragment being encoded at a third bitrate based at least in part on the additional available bandwidth, the third bitrate being different from the first bitrate, thereby using two different encoders to encode successive portions of the first media content; and providing the third fragment to the first client device. 2. The method of claim 1 , further comprising determining further available resources of the one or more media servers, and wherein transitioning encoding of the third fragment to the second encoder is based on the further available computing resources of the one or more media servers. 3. The method of claim 1 , wherein determining the available resources of the one or more media servers includes: determining a complexity associated with a portion of third media content; and determining a total complexity based on the complexity associated with the portion of the first media content, the complexity associated with the portion of the second media content, and the complexity associated with the portion of the third media content. 4. The method of claim 1 , wherein the first fragment includes a time range of the first fragment, a quality level of the first fragment, a media server identifier, and a Uniform Resource Locator (URL) of the first fragment. 5. A system, comprising: one or more processors and memory configured to: receive a first request from a first client device for a first portion of media content; determine a first available bandwidth of the first client device; responsive to determination of the first available bandwidth of the first client device, and using a first encoder, encode a first fragment corresponding to the first portion of the media content, the first fragment being encoded at a first bitrate based at least in part on the first available bandwidth; provide the first fragment to the first client device; receive a second request from the first client device for a second portion of the media content, the second portion of the media content being next in a playback sequence to the first portion of the media content; determine a second available bandwidth of the first client device, the second available bandwidth being different from the first available bandwidth; responsive to determination of the second available bandwidth of the first client device and based on available resources of a second encoder, using the second encoder to encode a second fragment corresponding to the second portion of the media content, the second fragment being encoded at a second bitrate based at least in part on the second available bandwidth, the second bitrate being different from the first bitrate, thereby using two different encoders to encode successive portions of the media content; and provide the second fragment to the first client device. 6. The system of claim 5 , wherein the one or more processors and memory are further configured to: determine a complexity associated with the first fragment; and determine a complexity associated with the second fragment, wherein the complexity of the second fragment is different than the complexity of the first fragment; and wherein the one or more processors and memory are configured to encode the second fragment additionally responsive to the determination that the complexity associated with the second fragment is different than the complexity associated with the first fragment. 7. The system of claim 5 , wherein the one or more processors and memory are further configured to: receive a request from a second client device for the first portion of the media content; determine available bandwidth of the second client device, the available bandwidth of the second client device being different from the first available bandwidth of the first client device; and using a third encoder, encode a third fragment corresponding to the first portion of the media content, the third fragment being encoded at a third bitrate different from the first bitrate. 8. The system of claim 5 , wherein the first encoder and the second encoder are associated with one or more media servers, and wherein the one or more processors and memory are further configured to transition encoding of the media content from the first encoder to the second encoder based on available computing resources of the one or more media servers. 9. The system of claim 5 , wherein the one or more processors and memory are further configured to: receive a third request from the first client device for a third portion of the media content; receive a request from a second client device for playback of a fourth portion of the media content; determine a complexity associated with the third portion of the media content; determine a complexity associated with the fourth portion of the media content; determine a third available bandwidth of the first client device; determine available resources of one or more media servers; and encode a third fragment corresponding to the third portion of the media content, the third fragment being encoded at a third bitrate based on the third available bandwidth, the complexity associated with the third portion of the media content, the complexity associated with the fourth portion of the media content, and the available resources of the one or more media servers. 10. The system of claim 5 , wherein the first fragment includes a time range of the first fragment, a quality level of the first fragment, a media server identifier, and a URL of the first fragment, and wherein the second request for the second portion of the me
involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)} · CPC title
Media network packetisation · CPC title
Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP] · CPC title
for unicast · CPC title
directed to server {(one-way streaming services wherein the source is controlled by the destination H04L65/613)} · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.