0

我已经用 Elastic Transcoder 测试了一段时间。我目前一直在使用 Zencoder,并计划用 Elastic Transcoder 替换它。我有一个关于具有多个输出的转码时间的问题,我试图找到一种解决方案来减少转码时间,如果无论如何要实现这一点。

我上传了一个输入视频文件,它可以是任何格式和任何分辨率。我希望 Elastic Transcoder 对它们进行编码以产生两种输出格式,mp4 和 webm,一个请求的分辨率为 640x360。我为此定义了两个预设。

第一个用于 mp4 文件,如下所示:

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

webm的第二个,像这样:

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

在 Zencoder 中,mp4 和 webm 的编码过程同时开始。因此,例如:如果输入视频持续时间为 13 秒,那么对于两个输出 mp4 和 webm,编码过程大约需要 13 秒。

在 Aws Elastic Transcoder 中,此编码过程大约需要 26 秒的时间。我认为这是因为它不会同时编码两个输出。所以,这是一个问题。我需要减少这个时间。

我可以在 Elastic Transcoder 中配置它以同时处理两个输出吗?或者我是否需要同时发送两个请求以获得两种输出格式以减少转码时间?

4

1 回答 1

2

我已经深入细节并找到了解决方案。

实际上,AWS 同时处理两个输出,但问题与 webm 相关的时间要长得多。这是因为 VP9 编解码器已在预设设置中配置,与 VP8 编解码器相比,它需要花费大量时间。将其更改为 VP8 解决了我的问题。

两种编解码器类型都有利有弊。但在我的情况下,没有什么比速度更重要的了。

于 2019-11-04T09:55:06.363 回答