我在Amazon S3上托管了视频。我使用Zencoder对它们进行编码,然后使用Zencoder存储视频的缩略图。但是,我需要一种方法在视频中的某些点(即00:00:03,00:10:32,01:40:18)生成缩略图,并将它们存储在S3或我的服务器上。
ffmpeg允许远程缩略图,但是从文件中间获取缩略图需要很长时间(有时是几分钟) - 我相信这是因为它会将整个文件下载到该点以获取缩略图
我的计划是通过HTTP字节范围请求以某种方式下载视频文件的标题,猜测我应该查找缩略图的字节范围,通过HTTP字节从文件的该部分下载大约一秒钟的视频-range请求,然后在本地保存标题和小视频。我使用ffmpeg从中拉出缩略图并删除临时视频。
我不知道这究竟是如何工作的(我相信我正在使用的H.264 MP4文件有一个动态长度标题,另一个问题)。 有任何建议或更好的想法吗?
编辑:为了澄清,Zencoder缩略图很棒,但它们只允许缩放创建与转码相结合。我不想在每次创建新缩略图时对我的视频进行转码,因此我需要在没有Zencoder的情况下自行完成此操作。
答案 0 :(得分:1)
正如预期的那样,快速搜索 Zencoder documentation会发现类似的功能,请查看Thumbnails的API参考:
(类似于 Transloadit ), Zencoder 似乎也支持从您的Amazon S3存储桶上传和下载文件,请参阅{ {3}}了解详情。
祝你好运!由于您正在使用云编码服务,我将在这里采取“任何建议或更好的想法?”并建议最终查看Using Zencoder with S3提供包括您所需的功能(我实际上希望它可以从 Zencoder 以及 Zencoder 提供类似的功能,请参阅上面的更新) - 从视频中提取缩略图3>有几个Transloadit,例如demos:
这是从视频编码中提取缩略图的最简单的演示。 默认情况下,它每个都以相等的时间间隔提取8个缩略图 与视频尺寸相同。 »Extract 8 thumbnails from an encoded video
See full documentation的offset
参数允许您在文件持续时间的任意一秒或相应的百分比值中指定更精细的缩略图位置。
Transloadit 也支持在Amazon S3中存储文件,例如,演示/video/thumbs robot,用于解决您的用例的组合解决方案。