我一直在视频网站[平台:php]工作,我需要在Amazon S3服务器上传视频并提取缩略图。
我已经在该存储桶中成功创建了一个存储桶并上传了视频文件。但我不知道如何从上传的视频中提取缩略图。所以,那就是我卡住的地方。
任何帮助将不胜感激。提前谢谢!
答案 0 :(得分:5)
这里有一些选择。
首先 - 您可以在将视频上传到AWS之前从视频中“提取”缩略图。类似于:将视频上传到您的服务器,如果需要将其转换为适当的格式,使用缩略图(或缩略图),将它们保存在某处(例如在S3或本地服务器上),然后将视频上传到S3。这种方法的缺点是你的本地服务器必须做很多额外的工作,而不是为你的网络访问者提供服务。
第二 - 您可以使用Amazon EC2计算服务:将视频上传到S3,触发EC2(例如使用cron作业)从S3获取视频,转换视频,获取缩略图并上传最终结果(转换后的视频+缩略图)返回S3。缺点是:实现这种“沟通”并不是很容易(你必须解决许多问题,比如确保稳定的转换,创建作业队列等),此外你还需要再使用一个AWS服务。 S3。
关于视频转换和获取缩略图的内容是什么?有很多工具和程序。我喜欢使用ffmpeg进行视频转换(也有PHP包装器使用它的功能与php - php-ffmpeg,但使用ffmpeg本身(例如使用php的 exec()函数)将为您提供更多灵活性和功能,请阅读文档以获取更多详细信息)。 FFMpeg也可以从视频中提取缩略图,但这需要一些时间(有很多关于如何有效地进行讨论的讨论),但我建议您使用ffmpegthumbnailer来实现此目的。它使用更简单,并且特别针对从视频文件中获取缩略图进行了优化。
答案 1 :(得分:1)
您应该在用于上传的计算机上执行此操作。在这里,您可以直接对文件进行文件系统访问。一旦它在S3中,它只能通过HTTP访问。
工具ffmpeg可用于创建多种视频格式的缩略图。
示例:
ffmpeg -i "video.flv" -ss 00:00:10 -f image2 "thumbnail.jpg"
将在视频第二个10处创建缩略图并将其另存为thumbnail.jpg
使用PHP时,您可以使用system
执行