US 11,695,978 B2
Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
Jon Dahl, San Francisco, CA (US); Adam Brown, San Francisco, CA (US); Nick Chadwick, San Francisco, CA (US); Matt Ward, San Francisco, CA (US); Scott Kidder, San Francisco, CA (US); Masroor Hasan, San Francisco, CA (US); and Ben Dodson, San Francisco, CA (US)
Assigned to Mux, Inc., San Francisco, CA (US)
Filed by Mux, Inc., San Francisco, CA (US)
Filed on May 5, 2022, as Appl. No. 17/737,748.
Application 17/737,748 is a continuation in part of application No. 16/820,592, filed on Mar. 16, 2020, granted, now 11,343,492.
Application 16/820,592 is a continuation in part of application No. 16/458,630, filed on Jul. 1, 2019.
Claims priority of provisional application 62/819,277, filed on Mar. 15, 2019.
Claims priority of provisional application 62/694,408, filed on Jul. 5, 2018.
Prior Publication US 2022/0264168 A1, Aug. 18, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. H04N 7/173 (2011.01); H04N 21/2662 (2011.01); H04N 21/24 (2011.01); H04L 65/75 (2022.01); H04N 21/2343 (2011.01)
CPC H04N 21/2662 (2013.01) [H04L 65/764 (2022.05); H04N 21/23439 (2013.01); H04N 21/2402 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
ingesting a video;
extracting a set of video features representing properties of the video;
generating a set of bitrate-resolution pairs for the video based on the set of video features, each bitrate-resolution pair in the set of bitrate-resolution pairs:
defining a bitrate; and
defining a resolution predicted to yield a quality score within a target quality score range for the video encoded at the bitrate and the resolution;
accessing a distribution of audience bandwidths representative of likely viewers of the video;
selecting a subset of bitrate-resolution pairs, from the set of bitrate-resolution pairs, based on the distribution of audience bandwidths;
generating an encoding ladder comprising the subset of bitrate-resolution pairs;
transmitting a manifest file representing the encoding ladder to a first playback device prior to transcoding a first playback segment in the video;
receiving a first request for the first playback segment, at a first bitrate-resolution pair in the encoding ladder, from a first playback device based on the manifest file; and
in response to detecting absence of video segments, at the first bitrate-resolution pair and corresponding to the first playback segment, in a first rendition cache:
identifying a first set of mezzanine segments, in the video, corresponding to the first playback segment;
assigning the first set of mezzanine segments to a set of workers for transcoding into a first set of video segments according to the first bitrate-resolution pair;
storing the first set of video segments in the first rendition cache; and
based on the first request, releasing the first set of video segments to the first playback device.