Video 通过HTTP下载部分视频(用于远程缩略图)

Video 通过HTTP下载部分视频(用于远程缩略图),video,amazon-s3,ffmpeg,thumbnails,h.264,Video,Amazon S3,Ffmpeg,Thumbnails,H.264,我在AmazonS3上托管了视频。我用Zencoder对它们进行编码,并存储视频的缩略图,然后使用Zencoder。但是,我需要一种方法在视频中的某些点(即00:00:03、00:10:32、01:40:18)生成缩略图,并将它们存储在S3或我的服务器上 ffmpeg允许远程缩略图,但是从文件中间获取缩略图需要很长的时间(有时需要几分钟)——我相信这是因为它下载整个文件直到获取缩略图为止 我的计划是通过HTTP字节范围请求下载视频文件的头,猜测我应该在哪里查找缩略图的字节范围,通过HTTP字节范

我在AmazonS3上托管了视频。我用Zencoder对它们进行编码,并存储视频的缩略图,然后使用Zencoder。但是,我需要一种方法在视频中的某些点(即00:00:03、00:10:32、01:40:18)生成缩略图,并将它们存储在S3或我的服务器上

ffmpeg允许远程缩略图,但是从文件中间获取缩略图需要很长的时间(有时需要几分钟)——我相信这是因为它下载整个文件直到获取缩略图为止

我的计划是通过HTTP字节范围请求下载视频文件的头,猜测我应该在哪里查找缩略图的字节范围,通过HTTP字节范围请求从文件的该部分下载大约一秒钟的视频,然后在本地保存头和小视频。我使用ffmpeg从中提取缩略图并删除临时视频

我不知道这到底是如何工作的(我相信我正在处理的H.264 MP4文件有一个动态长度头,另一个问题)有什么建议或更好的主意吗?

编辑:为了澄清这一点,Zencoder的缩略图功能很棒,但它们只允许在转码的同时创建缩略图。我不想每次创建新的缩略图时都对我的视频进行转码,所以我需要在没有Zencoder的情况下自己进行转码。

Update 正如预期的那样,通过Zencoder快速搜索也会发现类似的功能,请查看他们的API参考:

  • -以秒为单位以均匀间隔绘制缩略图。Zencoder将为文件的每N秒返回一个缩略图。[……]
  • -以帧为单位,以均匀间隔绘制缩略图。Zencoder将为文件的每N帧返回一个缩略图。[……]
  • -获取缩略图的时间数组(以秒为单位)。小数是有效的。因此,将时间设置为[12.5,25]将获取两个缩略图,一个在12.5秒,一个在25秒。[……]
而且(类似于Transloadit),Zencoder似乎也支持从AmazonS3存储桶上传和下载文件,详情请参阅

祝你好运


既然您使用的是云编码服务,我将在这里逐字逐句地介绍“任何建议或更好的想法”,并建议您最终查看,因为他们的产品包括您所需的功能(我希望Zencoder也提供类似的功能,请参阅上面的更新)-从视频中提取缩略图有几种方法,例如:

这是从视频编码中提取缩略图的最简单演示。 默认情况下,它以相等的时间间隔提取8个缩略图 具有与视频相同的尺寸。»

offset
参数允许您在文件持续时间的秒数内或相应的百分比值内指定更细粒度的缩略图位置


Transloadit也支持在Amazon S3中存储文件,例如,请参阅针对您的用例的组合解决方案演示。

谢谢您的回答,但Zencoder缩略图的问题是,您只能在视频转码时生成一个缩略图,以后不能单独生成缩略图。我会看看Transloadit,但我们现在切换服务是不合理的。我真的很感激你能给我一个答案,在我自己的服务器上只使用脚本来处理这个问题。