In some embodiments, a method generates a first representation of a first relationship between bitrate and quality based on first features of a first portion of a video. Also, the method generates a second representation of a second relationship between bitrate and quality based on second features of a second portion of a video. The first representation is analyzed to determine a first list of bitrates for the first portion of video and the second representation is analyzed to determine a second list of bitrates for the second portion of video. The first list of bitrates is different from the second list of bitrates. The method outputs the first list of bitrates for use encoding the first portion of video and the second list of bitrates for use encoding the second portion of video.
BACKGROUND (1) One method of delivering videos to client devices uses Adaptive Bitrate Streaming (ABR). Adaptive bitrate streaming is predicated on providing multiple streams (often referred to as variants or profiles) that are encoded at different levels of video attributes, such as different levels of bitrate and/or quality. A profile ladder lists different profiles that are available for a client to use when streaming segments of a video. Clients can dynamically select profiles based on network conditions and other factors. The video is segmented (e.g., split into discrete segments, usually a few seconds long each), and clients can switch from one profile to another at segment boundaries as network conditions change. For example, a video delivery system would like to provide clients with a profile that has a higher bitrate when network conditions with higher available bandwidth are being experienced, which improves the quality of the video being streamed. When network conditions with lower available bandwidth are being experienced, the video delivery system would like to provide clients with a profile with a lower bitrate such that the clients can play the video without any playback issues, such as rebuffering or downloading failures.
1. A method comprising: generating, by a computing device, a first representation of a first relationship between bitrate and quality based on first features of a first portion of a video; generating, by the computing device, a second representation of a second relationship between bitrate and quality based on second features of a second portion of the video; analyzing, by the computing device, the first representation to determine a first list of bitrates for the first portion of video and analyzing the second representation to determine a second list of bitrates for the second portion of video, wherein the first list of bitrates is different from the second list of bitrates, wherein analyzing the first representation or analyzing the second representation comprises: generating a list of potential bitrates based on the first representation or the second representation, and refining the list of potential bitrates based to a quality associated with the potential bitrates to determine the first list of bitrates or the second list of bitrates, wherein refining the list of potential bitrates comprises: adding a first potential bitrate to the list of potential bitrates; and outputting, by the computing device, the first list of bitrates for encoding the first portion of video and the second list of bitrates for encoding the second portion of video. ||
16. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for: generating a first representation of a first relationship between bitrate and quality based on first features of a first portion of a video; generating a second representation of a second relationship between bitrate and quality based on second features of a second portion of the video; analyzing the first representation to determine a first list of bitrates for the first portion of video and analyzing the second representation to determine a second list of bitrates for the second portion of video, wherein the first list of bitrates is different from the second list of bitrates, wherein analyzing the first representation or analyzing the second representation comprises: generating a list of potential bitrates based on the first representation or the second representation, and refining the list of potential bitrates based on a quality associated with the potential bitrates to determine the first list of bitrates or the second list of bitrates, wherein refining the list of potential bitrates comprises: adding a first potential bitrate to the list of potential bitrates; and outputting the first list of bitrates for use encoding the first portion of video and the second list of bitrates for use encoding the second portion of video. ||
20. An apparatus comprising: one or more computer processors; and a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable for: generating a first representation of a first relationship between bitrate and quality based on first features of a first portion of a video; generating a second representation of a second relationship between bitrate and quality based on second features of a second portion of the video; analyzing the first representation to determine a first list of bitrates for the first portion of video and analyzing the second representation to determine a second list of bitrates for the second portion of video, wherein the first list of bitrates is different from the second list of bitrates, wherein analyzing the first representation or analyzing the second representation comprises: generating a list of potential bitrates based on the first representation or the second representation; and refining the list of potential bitrates based on a quality associated with the potential bitrates to determine the first list of bitrates or the second list of bitrates, wherein refining the list of potential bitrates comprises: adding a first potential bitrate to the list of potential bitrates; and outputting the first list of bitrates for use encoding the first portion of video and the second list of bitrates for use encoding the second portion of video.