amazon-web-serviceshttp-live-streaminghls.jsaws-media-convert

Convert video into different qualities AWS MediaConvert


I have a test.mp4 file (for example). I need to convert it so that there was an option to select the quality on the client-side in the player.

For example, if the video is in 4k resolution, then the client should be able to select the quality of auto, 4k, 1080p, 720p, and 480p. If the video is 1080p, the choice should be auto, 1080p, 720p and 480p. And so on.

I know I should choose to convert to Apple HLS and get an m3u8 file in the output. Tried using ABR, but that's not what I need.

I use AWS MediaConvert to convert.


Solution

  • What you are describing sounds like an HLS bitrate stack. I'll answer based on that assumption.

    It will be the responsibility of the playback software to present a menu of the available resolutions. If you want the player to disable its adaptive rendition selection logic and permit the viewer to stay on a specified rendition regardless of segment download times, that workflow needs to be configured within the video player object. In either case you will need an asset file group consisting of manifests and segments.

    FYI, MediaConvert has both an automatic ABR mode (which determines the number of renditions & bitrate settings automatically) and a 'manual mode' where you provide the parameters of each child rendition. In this mode, each child rendition is added as a separate Output under the main Apple HLS Output Group. More information can be found here: https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html.