获取第一帧视频轨道

时间:2017-07-20 13:56:55

标签: ruby-on-rails video ffmpeg paperclip carrierwave

我在params中获取视频文件如何使用paperclip或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>>

2 个答案:

答案 0 :(得分:0)

您无法单独使用文件上传宝石 - 您必须使用其他东西,就像使用ImageMagick(或RMagick或类似工具)处理上传图像中的缩略图一样。

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

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

最好的服务器端选择可能是ffmpeg。您应该能够使用与ImageMagick相同的一般步骤来缩放图像(上传,在后台作业中处理等)。

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

答案 1 :(得分:0)

使用ffmpeg

解决
  

gem&#39; streamio-ffmpeg&#39;,&#39;〜&gt; 3.0&#39;,&#39;&gt; = 3.0.2&#39;

无法解决&#34;无法解析FFProbe&#34;但是通过重新安装ffmpeg来解决它

  

brew install ffmpeg --with-fdk-aac --with-libass --with-sdl2 --with-x265 --with-freetype --with-libvorbis --with-libvpx --with-opus