我有一个使用Paperclip的Rails应用程序在Amazon S3上上传和存储视频。我不是特别感兴趣将视频文件转换成另一种格式,或添加水印,没什么特别的。我只是想从视频中创建缩略图,以便在我的视频播放器上用作海报图片。
我看到Amazon Elastic Transcoder允许免费创建缩略图(或者更确切地说,他们不会为缩略图创建收费),并且因为我已经在使用Amazon服务,所以我想看看我是否可以将它用于我的缩略图
有没有人知道如何设置输入/输出选项,除了缩略图之外不会生成任何文件?我可以这样做吗?
transcoder = AWS::ElasticTranscoder::Client.new
transcoder.create_job(
pipeline_id: APP_CONFIG[Rails.env][:pipeline_id],
input: {
key: VIDEOPATH,
frame_rate: 'auto',
resolution: 'auto',
aspect_ratio: 'auto',
interlaced: 'auto',
container: 'auto'
},
output: {
key: , #LEAVE THIS BLANK TOO?
preset_id: , #LEAVE THIS BLANK?
thumbnail_pattern: "thumbnail",
rotate: '0'
}
)
答案 0 :(得分:5)
没有
没有用于仅创建缩略图的功能。
如果不实际转码任何内容,也无法创建新的转码作业。输入参数至少需要输入视频的名称。输出参数至少需要输出文件的名称和预设ID。在开始作业之前检查参数,并且没有选项会阻止作业在创建缩略图时执行。
您可以在此处阅读所有可用功能:
http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html
给ffmpeg看一下。安装可能有点麻烦,但它可以通过视频创建缩略图。
答案 1 :(得分:0)
Amazon Elastic Transcoder确实提供缩略图功能。 http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/preset-settings.html#preset-settings-thumbnails
看起来您确实需要对视频文件进行转码才能获得缩略图。
答案 2 :(得分:0)
如其他评论所述,您需要为 Elastic 转码器支付转码费用才能生成缩略图。
亚马逊提供的另一个类似选项是 MediaConvert。使用 MediaConvert,您可以添加多个图像文件的附加输出,这些文件将使用您需要提供的公式拍摄(每 X 帧选取一个图像)。与 Elastic Transcoder 一样,仅获取缩略图的成本很高,而且您仍然不确定所获得的缩略图是否是良好的图像(不模糊且不代表视频)。
正如在另一条评论中提到的,相比之下,使用 FFMpeg 会更好。如果您可以维护执行此操作的基础设施(某种处理队列、运行 ffmpeg,然后上传缩略图),这是一个很好的解决方案。
完全披露:我们遇到了类似的问题。我们的体积足够大,手动生成缩略图变得很麻烦,而且我们经常会得到空白的缩略图,因为很难预测不同视频中哪个帧是好的。因此,我们开发了一款产品来为我们(以及同船的其他人)解决这个问题:https://mediamachine.io/
我们使用 ML 算法来获取视频中最具代表性的缩略图,而不是获取毫无意义的随机缩略图(最糟糕的是,为它们付费),从而节省时间和金钱。