Skip to content

Optimizing videos before deploying to mobile platforms

0

I've been using solution like this to optimize images on AWS before: example.cloudfront.net/image.jpg?height=500&width=300

If there is an image in the cloudfront cache, it is retrieved, otherwise the image is resized and brought according to the given parameters.

I want to do a similar solution for videos. I realized that AWS Elemental MediaConvert might be good for this job. but I couldn't find any example of this. also the elemental looks very complicated. Is there a recommended solution for MP4 - H.264?

Is it a good approach to split videos into multiple sizes?

3 Answers
0

Hi, AWS Elemental MediaConvert can convert in parallel to several resolutions: see https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html

To create such a job: see https://docs.aws.amazon.com/mediaconvert/latest/ug/setting-up-a-job.html

Best,

Didier

EXPERT
answered 3 years ago
0

Hi Murat, thanks for your question. If you are looking to offer videos for streaming, you may want to consider using an Adaptive Bit Rate (ABR) protocol, such as HLS or DASH. ABRs will created multiple versions of the video, at different resolutions and bitrates, that are synced together. Video players on web and mobile devices can then jump between different ABR renditions, based on their connection bandwidth. AWS MediaConvert can create ABR assets from video files, such as MP4s for on-demand based streaming. You can view two VOD file based solutions here. Both are focused on the creation and delivery of the ABR assets. Other functions, such as user authentication and access may be added to them. https://aws.amazon.com/solutions/implementations/video-on-demand-on-aws/

If you application needs to support delivery of live streams, then you may need to use AWS MediaLive, which can transcode live video signals into the ABR protocol. Here is a link to live streaming example solutions. Again, this focuses on video processing and not other possible system functions. https://aws.amazon.com/solutions/implementations/live-streaming-on-aws/

AWS
answered 3 years ago
0

To address the part of your question about URL parameters: AWS MediaPackage provides manifest filtering to return a customized manifest filtered by passed parameters such as video_height, codec, bitrate, etc. This mirrors what you were doing with the image URL. Note, all the target resolutions must be present in the transcoded manifest in advance - they are not converted on the fly. You could transcode the asset once at perhaps 8 sizes, then select the closest size. A Lambda function could be used to do the manifest filtering if your player or web page cannot do it.

Another alternative is to use a video player object that accepts a scaling factor on playback, so you can always retrieve a 1080 rendition and scale/crop in the player.

See more on manifest filtering at https://docs.aws.amazon.com/mediapackage/latest/ug/manifest-filtering.html

answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.