3

我一直在一个视频网站 [平台:php] 工作,我需要在 Amazon S3 服务器中上传视频并提取缩略图。

我已经创建了一个存储桶并在该存储桶中成功上传了视频文件。但我不知道如何从上传的视频中提取缩略图。所以,这就是我坚持的地方。

任何帮助将不胜感激。提前致谢!

4

2 回答 2

5

在这里,您有一些选择。

首先- 您可以在将视频上传到 AWS 之前从视频中“提取”缩略图。例如:将视频上传到您的服务器,如果需要将其转换为适当的格式,拍摄一个(或多个缩略图),将它们保存在某个地方(例如,在 S3 或您的本地服务器上),然后将视频上传到 S3。这种方法的缺点是您的本地服务器将不得不做很多额外的工作,而不是为您的网络访问者提供服务。

其次- 您可以为此使用 Amazon EC2 计算服务:将视频上传到 S3,触发 EC2(例如使用 cron 作业)从 S3 获取视频,转换它,获取缩略图并将最终结果(转换后的视频 + 缩略图)上传回S3。缺点是:实现这种“通信”并不容易(你必须解决很多问题,比如确保稳定的转换、创建作业队列等),另外你还必须使用另外一项 AWS 服务S3。

视频转换和获取缩略图是怎么回事?有很多工具和程序可以做到这一点。我喜欢使用ffmpeg进行视频转换(也有 PHP 包装器用于将其功能与 php - php-ffmpeg一起使用,但使用 ffmpeg 本身(例如使用 php 的exec()函数)将为您提供更多的灵活性和功能,请阅读文档以获取更多详细信息)。FFMpeg 也可以从视频中提取缩略图,但是这需要一些时间(关于如何有效地做到这一点有很多讨论),但我建议您为此目的使用ffmpegthumbnailer 。它的使用更简单,并且特别针对从视频文件中获取缩略图进行了优化。

于 2013-01-10T12:54:40.140 回答
1

您应该在用于上传的机器上执行此操作。在这里,您可以直接通过文件系统访问该文件。一旦它在 S3 中,它就只能通过 HTTP 访问。

ffmpeg工具可用于创建多种视频格式的缩略图。

例子:

ffmpeg -i "video.flv" -ss 00:00:10 -f image2 "thumbnail.jpg"

将在视频秒 10 处创建一个缩略图并将其保存为 thumbnail.jpg 使用 PHP 时,您可以使用它system来执行

于 2013-01-10T13:11:18.080 回答