Content-aware predictive bitrate ladder
Methods, systems, and apparatuses may encode a media content item based on metadata from previous encoding. The encoding may also generate encoding metadata, which may comprise a qualitative or quantitative characterization of the encoded media content item. A prediction engine may, based on this metadata, determine new encoding settings for the same or a different video resolution. The prediction engine may cause an encoded media content item to be stored and may cause encoding of the media content item using the new encoding settings.
1. One or more non-transitory computer-readable media storing instructions that, when executed, cause:
receiving, by a computing device, metadata indicative of encoding of a media content item at a first resolution and a first bitrate;
determining, based on a quality of the encoding of the media content item at the first resolution and the first bitrate, to encode the media content item at a second resolution, wherein the second resolution is higher than the first resolution;
determining, based on the metadata and based on the determining to encode the media content item at the second resolution, a second bitrate for encoding the media content item at the second resolution; and
sending, to an encoder, an indication of the determined second bitrate for encoding of the media content item at the second resolution.
2. The non-transitory computer-readable media of claim 1 , wherein the instructions, when executed, further cause:
determining, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, a third bitrate for encoding the media content item at the second resolution; and
sending an indication of the determined third bitrate for encoding the media content item at the second resolution.
3. The non-transitory computer-readable media of claim 1 , wherein the instructions, when executed, further cause:
determining, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is not optimized; and
sending, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is not optimized, an indication of a higher bitrate for encoding the media content item at the second resolution.
4. The non-transitory computer-readable media of claim 1 , wherein the instructions, when executed, further cause:
determining, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is optimized; and
sending, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is optimized, an indication of a new bitrate for encoding the media content item at a third resolution higher than the second resolution.
5. The non-transitory computer-readable media of claim 1 , wherein the instructions, when executed, further cause:
determining, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is not optimized; and
sending, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is not optimized, an indication of a lower bitrate for encoding the media content item at the second resolution.
6. One or more non-transitory computer-readable media storing instructions that, when executed, cause:
receiving, by a computing device, metadata indicative of encoding of a media content item at a first resolution and a first bitrate;
determining, based on the metadata, that a quality of the media content item encoded at the first resolution and the first bitrate is optimized;
determining, based on the quality of the media content item encoded at the first resolution and the first bitrate being optimized, to encode the media content item at a second resolution higher than the first resolution;
determining, based on the metadata and based on the determining to encode the media content item at the second resolution, a second bitrate for encoding the media content item at the second resolution; and
sending, to an encoder, an indication of the second bitrate.
7. The non-transitory computer-readable media of claim 6 , wherein the instructions, when executed, further cause:
sending, to a second encoder different from the encoder, and based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, an indication to encode the media content item.
8. The non-transitory computer-readable media of claim 6 , wherein the instructions, when executed, further cause:
determining, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is not optimized; and
sending, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is not optimized, an indication of a higher bitrate for encoding the media content item at the second resolution.
9. The non-transitory computer-readable media of claim 6 , wherein the instructions, when executed, further cause:
determining, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is optimized; and
sending, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is optimized, an indication of a new bitrate for encoding the media content item at a third resolution higher than the second resolution.
10. The non-transitory computer-readable media of claim 6 , wherein the instructions, when executed, further cause:
determining, based on the metadata, a frame rate for encoding the media content item at the second resolution; and
sending, to the encoder, an indication of the frame rate for encoding the media content item at the second resolution.
11. A system comprising:
a computing device; and
an encoder;
wherein the computing device comprises:
one or more first processors; and
first memory storing first instructions that, when executed by the one or more first processors, cause the computing device to:
receive metadata indicative of encoding of a media content item at a first resolution and a first bitrate;
determine, based on a quality of the encoding of the media content item at the first resolution and the first bitrate, to encode the media content item at a second resolution, wherein the second resolution is higher than the first resolution;
determine, based on the metadata and based on the determining to encode the media content item at the second resolution, a second bitrate for encoding the media content item at the second resolution; and
send, to the encoder, an indication of the determined second bitrate for encoding of the media content item at the second resolution; and
wherein the encoder comprises:
one or more second processors; and
second memory storing second instructions that, when executed by the one or more second processors, cause the encoder to:
encode the media content item at the second resolution.
12. The system of claim 11 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, a third bitrate for encoding the media content item at the second resolution; and
send an indication of the determined third bitrate for encoding the media content item at the second resolution.
13. The system of claim 11 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is not optimized; and
send, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is not optimized, an indication of a higher bitrate for encoding the media content item at the second resolution.
14. The system of claim 11 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is optimized; and
send, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is optimized, an indication of a new bitrate for encoding the media content item at a third resolution higher than the second resolution.
15. The system of claim 11 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is not optimized; and
send, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is not optimized, an indication of a lower bitrate for encoding the media content item at the second resolution.
16. A system comprising:
a computing device; and
an encoder;
wherein the computing device comprises:
one or more first processors; and
first memory storing first instructions that, when executed by the one or more first processors, cause the computing device to:
receive metadata indicative of encoding of a media content item at a first resolution and a first bitrate;
determine, based on the metadata, that a quality of the media content item encoded at the first resolution and the first bitrate is optimized;
determine, based on the quality of the media content item encoded at the first resolution and the first bitrate being optimized, to encode the media content item at a second resolution higher than the first resolution;
determine, based on the metadata and based on the determining to encode the media content item at the second resolution, a second bitrate for encoding the media content item at the second resolution; and
send, to the encoder, an indication of the second bitrate; and
wherein the encoder comprises:
one or more second processors; and
second memory storing second instructions that, when executed by the one or more second processors, cause the encoder to:
encode the media content item based on the second bitrate.
17. The system of claim 16 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
send, to a second encoder different from the encoder, and based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, an indication to encode the media content item.
18. The system of claim 16 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is not optimized; and
send, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is not optimized, an indication of a higher bitrate for encoding the media content item at the second resolution.
19. The system of claim 16 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on second metadata indicative of encoding of the media content item at the second resolution and the second bitrate, that a quality of the media content item encoded at the second resolution and the second bitrate is optimized; and
send, based on the determining that the quality of the media content item encoded at the second resolution and the second bitrate is optimized, an indication of a new bitrate for encoding the media content item at a third resolution higher than the second resolution.
20. The system of claim 16 , wherein the first instructions, when executed by the one or more first processors, further cause the computing device to:
determine, based on the metadata, a frame rate for encoding the media content item at the second resolution; and
send, to the encoder, an indication of the frame rate for encoding the media content item at the second resolution.