Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows10[Ruby-on-Rails]上的ffmpegthumbnailer_Ruby On Rails_Windows_Video_Carrierwave_Ffmpegthumbnailer - Fatal编程技术网

windows10[Ruby-on-Rails]上的ffmpegthumbnailer

windows10[Ruby-on-Rails]上的ffmpegthumbnailer,ruby-on-rails,windows,video,carrierwave,ffmpegthumbnailer,Ruby On Rails,Windows,Video,Carrierwave,Ffmpegthumbnailer,嗨,我最近在Windows10x64机器上启动了一个RubyonRails项目。 在这个项目中,我有一个与Carrierwave上传一些视频文件的上传表单。 要从上传的视频中获取缩略图,我想使用carrierwave视频缩略图器gem 我已经在我的计算机上安装了FFMPEG。 正如我正确理解的,要使用gem,我需要将FFMPEGthumbnailer安装到,但我不知道如何在windows机器上安装它。 (刚刚找到Linux和OS X的安装指南) 我错过什么了吗 在我的上传文件中,我有以下代码:

嗨,我最近在Windows10x64机器上启动了一个RubyonRails项目。 在这个项目中,我有一个与Carrierwave上传一些视频文件的上传表单。 要从上传的视频中获取缩略图,我想使用carrierwave视频缩略图器gem

我已经在我的计算机上安装了FFMPEG。 正如我正确理解的,要使用gem,我需要将FFMPEGthumbnailer安装到,但我不知道如何在windows机器上安装它。 (刚刚找到Linux和OS X的安装指南) 我错过什么了吗

在我的上传文件中,我有以下代码:

class VideoUploader < CarrierWave::Uploader::Base

  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  # include CarrierWave::MiniMagick

  include CarrierWave::Video::Thumbnailer

  version :thumbail do
    process thumbnail: [{format: 'jpg', quality: 8, size: 360, logger: Rails.logger}]
    def full_filename for_file
      jpg_name for_file, version_name
    end
  end
  def jpg_name for_file, version_name
    %Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.jpg}
  end

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(mp4)
  end

  def filename 
    if original_filename 
      @name ||= Digest::MD5.hexdigest(File.dirname(current_path))
      "#{@name}.#{file.extension}"
    end
  end
end
class VideoUploader

到目前为止,视频已成功上传,但没有缩略图和错误代码。

您可能正在进行一场艰苦的战斗。ffmpegthumbnailer似乎并不正式支持Windows。然而,看起来至少有一个人设法让它在Cygwin中编译。发件人:

我设法编译了它

  • 下载FFFMPeggthumbnailer 2.0.6†

  • 在此处应用两个修补程序:

  • 下载电影解码器.cpp的工作版本†††:

    将其替换到
    libffmpegthumbnailer
    文件夹中

  • 在此处下载ffmpeg:

  • 提取并将以
    lib
    开头的文件夹放入cygwin根文件夹中的
    lib
    文件夹

  • /配置
    然后
    制作
    制作安装

  • 享受吧

  • †您可以在此处找到发行版:

    ††由于项目已迁移到GitHub,此链接已断开,我不知道此链接对应的版本。也许这是一个很好的赌注

    假设这对您有效,编译后(并通过在命令行上测试确认它有效),您需要确保carrierwave video thumbnailer知道在哪里可以找到可执行文件,方法是确保它位于
    $PATH
    中或设置选项。我想会是这样的:

    CarrierWave::Video::Thumbnailer::FFMpegThumbnailer.binary = "C:/path/to/ffmpegthumbnailer.exe"
    

    请注意,我没有测试任何一项,您的里程数会有所不同。

    好的,谢谢您的回答。不幸的是,我仍在努力安装。我想我会先完成我的项目,然后在linux服务器上部署应用程序后创建缩略图。