【问题标题】:ffmpegthumbnailer on Windows 10 [Ruby on Rails]Windows 10 上的 ffmpegthumbnailer [Ruby on Rails]
【发布时间】:2016-03-24 12:35:08
【问题描述】:

您好,我最近在 Windows 10 x64 机器上启动了一个 Ruby on Rails 项目。 在这个项目中,我有一个带有 Carrierwave 的上传表单来上传一些视频文件。 要从上传的视频中获取缩略图,我想使用carrierwave-video-thumbnailer gem。

https://rubygems.org/gems/carrierwave-video-thumbnailer

我已经在我的电脑上安装了 FFMPEG。 正如我正确理解的那样,要使用我需要安装 FFMPEGthumbnailer 的 gem,但我不知道如何在 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

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

【问题讨论】:

    标签: ruby-on-rails windows video carrierwave ffmpegthumbnailer


    【解决方案1】:

    您可能正在打一场艰苦的战斗。 ffmpegthumbnailer 似乎并未正式支持 Windows。然而,看起来至少有一个人设法让它在 Cygwin 中编译。来自this issue thread

    我设法编译了它...

    1. 下载 fffmpegthumbnailer 2.0.6

    2. 在此处应用这两个补丁:https://github.com/dirkvdb/ffmpegthumbnailer/issues/78

    3. 下载moviedecoder.cpp的工作版本††http://code.google.com/p/ffmpegthumbnailer/source/browse/trunk/libffmpegthumbnailer/moviedecoder.cpp?r=225

      将其替换到libffmpegthumbnailer 文件夹中

    4. 在此处下载 ffmpeg:http://www.ffmpeg.org/

    5. lib开头的文件夹解压放到cygwin根文件夹的lib文件夹中

    6. ./configure 然后makemake install

    7. 享受吧!

    你可以在这里找到版本:https://github.com/dirkvdb/ffmpegthumbnailer/releases

    ††由于该项目已迁移到 GitHub,因此此链接已损坏,我不知道此链接对应于 moviedecoder.cpp 的哪个修订版。也许the version tagged 2.0.7 是个不错的选择?

    假设这对你有用,一旦你编译了它(并通过在命令行上测试它确认它可以工作)你需要确保carrierwave-video-thumbnailer知道在哪里可以找到可执行文件,或者确保它在您的$PATH 或设置FFMpegThumbnailer.binary 选项中。我认为它看起来像这样:

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

    请注意,我没有对此进行任何测试,您的里程会有所不同。

    【讨论】:

    • 好的,谢谢您的回答。不幸的是,我仍在为安装而苦苦挣扎。我想我会先完成我的项目并在我将应用程序部署到 linux 服务器后创建缩略图。
    猜你喜欢
    • 2018-03-08
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多