3

我们有这个配置工作:

1- Display a JS Upload Form to the visitor
2- Upload file chosen direclty to Amazon S3
3- Transcode the Video in MP4 using Amazon Elastic Transcoder with options:
       * resolution: auto
       * thumbnails: on, every 2sec

一切正常。但是,我需要获得原始视频分辨率/比率有两个原因。第一个原因是能够为缩略图生成设置一个好的比例。(有时是 16/9、4/3、iphone 视频...)第二个原因是显示具有完美比例的 HTML5 视频播放器,以避免播放器两侧出现空白。

由于Amazon Elastic Transcoder已经自动检测到视频分辨率,我在想他们可能有办法返回检测到的分辨率,但是......似乎并非如此!

任何人都可以考虑获得视频分辨率/比例的方法吗?我目前的解决方案是从我的服务器上的 S3 下载视频,并使用FFmpegor检测分辨率FFprobe。显然,这并不理想。

4

2 回答 2

1

我有一种方法可能对您有用,但我只想提一下,无法直接访问有关上传视频的元数据会直接限制弹性转码器服务的实用性,以至于我强烈建议您使用类似的替代方法encoding.com(具有讽刺意味的是,他们自己的服务器托管在 AWS 上)。


所以我的解决方案是,您可以使用预设编码作业,通过将其设置为“自动”来创建与原始上传视频的纵横比相匹配的缩略图文件:

缩略图的纵横比。如果您希望 Elastic Transcoder 自动检测输入文件中的纵横比并将该值用于缩略图,请选择自动。如果要指定缩略图的纵横比,请选择适用的值。

此时,您现在有两种方法可以实际访问原始视频的宽高比(这两种方法都涉及 JavaScript):

1. 编写下载第一个缩略图文件的JS,并显式解析图像尺寸并通过宽除高计算纵横比。

或者

2.ThumbnailPattern 当您创建原始作业时,使用“ {resolution} ”占位符指定将生成包含图像文件分辨率的缩略图文件名:

缩略图文件名模式

{resolution}(可选):如果您希望 Elastic Transcoder 在文件名中包含分辨率,请在字段中包含 {resolution}。

然后你就可以了,所以你只需要获取编码视频的第一个图像缩略图,并使用 JS 解析文件名以获得分辨率并计算纵横比。

这两种方法都有点老套,但受益于不需要进行任何额外的视频处理,并且将来当/如果 AWS 允许您访问元数据时,您应该有一个非常简单的升级路径来消除这种混乱。

根据亚马逊论坛中 AWS 开发人员的回复,访问视频元数据可能会在不久的将来变得可用,所以我猜您还有第三种选择等待,这个问题可能会自行解决。

于 2013-03-21T05:08:41.523 回答
0

现在可以检索有关作业的输入视频和输出视频的任何信息:http:
//docs.aws.amazon.com/elastictranscoder/latest/developerguide/get-job.html

于 2017-06-13T19:44:03.867 回答