我在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>>
答案 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