Increasing Speed of Transcoding Process in AWS Elastic Transcoder When Multiple Outputs Produced?

578 Views Asked by At

I've been testing with Elastic Transcoder for a while. I've been using Zencoder currently and plan to replace it with Elastic Transcoder. I've an issue about transcoding time with multiple outputs and I've trying to find a solution to reduce the time of transcoding if anyway to achieve that.

I've uploaded an input video file, it can be any format and any resolution. I want Elastic Transcoder encodes them to produce two output formats, mp4 and webm, with the resolution of 640x360 with one request. I've define two presets for this.

The first one is for mp4 files, like this:

Codec H.264
Codec Options                
InterlacedMode:Progressive,MaxReferenceFrames:3,Level:3,ColorSpaceConversionMode:None,Profile:baseline
Maximum Number of 
Frames Between Keyframes    90
Fixed Number of Frames 
Between Keyframes           false
Bit Rate                    720
Frame Rate                  29.97
Video Max Frame Rate
Max Width                   640
Max Height                  360
Sizing Policy               Fill
Padding Policy              NoPad
Display Aspect Ratio        auto

The second one for webm,like this:

Codec Options               
Maximum Number of 
Frames Between Keyframes    90
Fixed Number of Frames 
Between Keyframes           false
Bit Rate                    600
Frame Rate                  30
Video Max Frame Rate
Max Width                   640
Max Height                  360
Sizing Policy               Fill
Padding Policy              NoPad
Display Aspect Ratio        auto

In Zencoder, encoding process for mp4 and webm starts concurrently. So, for ex: if input video duration is 13 seconds then encoding process takes time 13 seconds approximately for two outputs, mp4 and webm.

In Aws Elastic Transcoder, this encoding process takes time 26 seconds approximately. I think it's because of, it doesn't encode two outputs at the same time. So, this is a problem. I need to reduce this time.

Can I configure it in Elastic Transcoder to process two outputs at the same time? Or Do I need to send two request at the same time for getting two output formats to reduce the transcoding time?

1

There are 1 best solutions below

0
On

I've go deeper into the details and found the solution.

Actually, AWS processes two outputs concurrently but the problem is related with the webm takes so much longer. It is because VP9 codec have been configured in preset settings and it takes so much time comparing to VP8 codec. Change it to VP8 has solved my problem.

Both of codec types has pros and cons. But nothing is important than speed in my situation.