2017-07-20 104 views
0

我得到视频文件的参数我怎样才能得到第一帧作为图片从这个视频使用回形针或carrierwave或其他宝石?获取视频轨道的第一帧

视频PARAMS如下:

#<ActionDispatch::Http::UploadedFile:0x007fc598ab45b8 
@content_type="video/mp4", 
@headers="Content-Disposition: form-data; name=\"file\"; filename=\"Resource 
Prospector Mobility Test.mp4\"\r\n" + "Content-Type: video/mp4\r\n", 
@original_filename="Resource Prospector Mobility Test.mp4", 
@tempfile=# 
<File:/var/folders/cy/q0_j47kn24l58ff4tqlxzsjc0000gq/T/RackMultipart20170720- 
6218-1cna8ld.mp4>> 

回答

0

您将无法单独使用一个文件上传宝石做到这一点 - 你将不得不使用别的东西,就像使用ImageMagick(或RMagick或类似的)来处理上传图像的缩略图。

convert input.mp4[X] thumbnail.png其中X是一个帧。

更在http://www.imagemagick.org/Usage/video/#gif

最好的服务器端的选择是可能的ffmpeg。您应该能够遵循与ImageMagick缩略图(上传,后台作业等)相同的一般步骤。

如果您使用的是第三方视频解决方案(YouTube,Wistia等),则可能会在您将文件发送到其服务后用于生成缩略图的API调用。

+0

我尝试使用的ffmpeg,写下这行 FFMPEG :: Movie.new(Rails.root.join( 'lovetherents.mov')。to_s) 并得到一个错误“无法从FFProbe解析输出“ 它可能是什么? 路径正确 –

0

使用的ffmpeg

宝石 'streamio-的ffmpeg',解决 '〜> 3.0', '> = 3.0.2'

曾与麻烦 “无法从FFProbe解析输出”但重新安装的ffmpeg

酿造安装的ffmpeg --with-FDK-AAC --with-libass --with-SDL2 --with-X265 --with-freetype的--with-libvorbis --with解决它-libvpx --with-opus

+0

甜!很高兴解决了这个问题 - 它总是用Linux媒体转换工具来计算额外的库:/ –