Carrierwave gem通过旋转生成视频上传和缩略图

时间:2015-09-09 11:11:11

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-3.1 carrierwave

我正在使用Carrierwave gem上传从iPhone录制的视频,并使用carrierwave-video-thumbnailer gem创建上传视频的缩略图。

现在我面临着由carrierwave-video-thumbnailer gem生成的旋转缩略图问题。我需要根据视频方向旋转到肖像。

请参阅下面的我的VideoUploader课程。

class VideoUploader < CarrierWave::Uploader::Base
  include CarrierWave::Video
  include CarrierWave::Video::Thumbnailer

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

  storage :file

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

  version :thumb do
    process thumbnail: [{format: 'jpg', quality: 7, size: 640, strip: false, logger: Rails.logger}]
    def full_filename for_file
      png_name for_file, version_name
    end
    process :set_content_type_jpg
  end

  def png_name for_file, version_name
    %Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.jpg}
  end

  def set_content_type_jpg(*args)
    Rails.logger.debug "#{file.content_type}"
    self.file.instance_variable_set(:@content_type, "image/jpeg")
  end
end

1 个答案:

答案 0 :(得分:0)

你应该包括:

include CarrierWave::RMagick

并基于this

process :do_stuff

def do_stuff(blur_factor)
  manipulate! do |img|
    img = img.auto_orient
    # or something similar
  end
end

可以找到RMagick的完整操作列表here