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

时间:2012-02-13 04:09:39

标签: video amazon-s3 ffmpeg thumbnails h.264

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

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

我的计划是通过HTTP字节范围请求以某种方式下载视频文件的标题,猜测我应该查找缩略图的字节范围,通过HTTP字节从文件的该部分下载大约一秒钟的视频-range请求,然后在本地保存标题和小视频。我使用ffmpeg从中拉出缩略图并删除临时视频。

我不知道这究竟是如何工作的(我相信我正在使用的H.264 MP4文件有一个动态长度标题,另一个问题)。 有任何建议或更好的想法吗?

编辑:为了澄清,Zencoder缩略图很棒,但它们只允许缩放创建与转码相结合。我不想在每次创建新缩略图时对我的视频进行转码,因此我需要在没有Zencoder的情况下自行完成此操作。

1 个答案:

答案 0 :(得分:1)

更新

正如预期的那样,快速搜索 Zencoder documentation会发现类似的功能,请查看Thumbnails的API参考:

  • interval - 以均匀的间隔拍摄缩略图,以秒为单位。 Zencoder将为文件的每N秒返回一个缩略图。 [...]
  • interval_in_frames - 以帧为单位以均匀间隔拍摄缩略图。 Zencoder将为文件的每N帧返回一个缩略图。 [...]
  • times - 获取缩略图的一系列时间(以秒为单位)。小数是有效的。因此设置为[12.5,25]的时间将获得两个缩略图,一个在12.5秒,一个在25秒。 [...]

(类似于 Transloadit ), Zencoder 似乎也支持从您的Amazon S3存储桶上传和下载文件,请参阅{ {3}}了解详情。

祝你好运!


由于您正在使用云编码服务,我将在这里采取“任何建议或更好的想法?”并建议最终查看Using Zencoder with S3提供包括您所需的功能(我实际上希望它可以从 Zencoder 以及 Zencoder 提供类似的功能,请参阅上面的更新) - 从视频中提取缩略图有几个Transloadit,例如demos

  

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

See full documentationoffset参数允许您在文件持续时间的任意一秒或相应的百分比值中指定更精细的缩略图位置。

Transloadit 也支持在Amazon S3中存储文件,例如,演示/video/thumbs robot,用于解决您的用例的组合解决方案。