我们有此配置工作:

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下载视频,并使用FFmpegFFprobe检测分辨率。显然,这并不理想。

最佳答案

我有一种可能对您有用的方法,但是我想提一下,无法直接访问有关上传视频的元数据将 flex 转码器服务的实用性直接限制到了我强烈建议您使用的替代方法,例如encoding.com(具有讽刺意味的是,它们自己的服务器是hosted on AWS)。

因此,我的解决方案是您可以通过将预设设置为“自动”来使用预设来编码creates thumbnail files that match the aspect ratio of the original uploaded video的作业:



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

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

要么

2.使用when you create the original job占位符,指定ThumbnailPattern {resolution}将生成包括图像文件分辨率的缩略图文件名:



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

两种方法都具有一定的技巧,但无需进行任何额外的视频处理,因此可以从中受益,并且在将来/如果AWS允许您访问元数据,您应该拥有一个非常简单的升级途径,从而消除了这种麻烦。

根据亚马逊论坛上AWS开发人员的响应,访问视频元数据可能会在不久的将来变得可用,因此我想您还有等待的第三种选择,这个问题可能会解决。

关于javascript - 使用Amazon Elastic Transcoder获取视频文件的视频分辨率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15514074/

10-11 22:20
查看更多