为亚马逊 s3 上的每个视频商店创建缩略图的最佳方法是啥?

Posted

技术标签:

【中文标题】为亚马逊 s3 上的每个视频商店创建缩略图的最佳方法是啥?【英文标题】:What is the best way to create thumbnail for every video store on amazon s3?为亚马逊 s3 上的每个视频商店创建缩略图的最佳方法是什么? 【发布时间】:2020-06-08 21:31:03 【问题描述】:

我使用 amazon s3 和 sse-c 来存储视频,每个用户都有一个特定的 sse-c 客户密钥。现在我想为每个视频生成缩略图,最好的方法是什么?

Amazon Elastic Transcoder 或 Elemental MediaConvert 对我有好处吗?

感谢您的宝贵时间!!

【问题讨论】:

可以找到相关here 【参考方案1】:

我找到了解决这个问题的方法,写在这里,希望对大家有所帮助。

就我而言,每个视频都可能有一个特定的 sse-c 客户密钥,而有些视频可能很大(5GB)。所以下载视频然后在 Lambda 上生成缩略图并不是一个好办法(lambda 只有 512MB 磁盘空间)。幸运的是,FFmpeg 可以使用 URL 和 seek,所以我们不需要下载视频。我将 sse-c 视频处理为无加密视频,然后为其生成 presignedURL,并将 url 传递给 FFmpeg,然后我得到缩略图。

请注意,复制视频可能需要很长时间。

【讨论】:

【参考方案2】:

正如另一条评论中提到的,如果视频文件大小大于 512MB,下载视频以在 lambda 上处理可能会出现问题。

亚马逊对此有一个选择,但它带来了(昂贵的)成本:MediaConvert。假设您正在使用 MediaConvert 对视频进行转码。在这种情况下,您可以添加将使用您需要提供的公式获取的多个图像文件的附加输出(每 X 帧选择一个图像)。仅获取缩略图的成本很高,但您不确定所获得的缩略图是否是好的图像(不模糊且能代表视频)。

OP 提出的解决方案,即使用 FFMpeg 并使用 FFMpeg 本身获取和查找视频,相比之下会更好。如果您可以维护基础设施来执行此操作(某种处理队列、运行 ffmpeg,然后上传缩略图),这是一个很好的解决方案。

完全披露:我们遇到了类似的问题。我们的体积足够大,以至于手动生成缩略图变得很麻烦,而且我们经常会得到空白缩略图,因为很难预测哪个帧在不同的视频中是好的。因此,我们开发了一款产品来为我们(以及其他人)解决这个问题:https://mediamachine.io/

我们使用机器学习算法来获取最具代表性的视频缩略图,而不是获取毫无意义的随机缩略图(最糟糕的是,为它们付费),从而节省时间和金钱。

【讨论】:

以上是关于为亚马逊 s3 上的每个视频商店创建缩略图的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

为应用程序库制作缩略图的最佳方法

创建网页缩略图的最佳方法是啥?

使用 ffmpeg 或其他软件从视频中每个场景变化的中间生成缩略图

Fine Uploader 无法从亚马逊 S3 绘制缩略图

时间戳未打印在 FFMPEG 的缩略图上

如何同时将视频上传到 s3 为其创建缩略图并使用 nodejs 将其保存到同一存储桶中的另一个文件夹中?