【问题标题】:Carrierwave gem Video upload and thumbnail generation with rotationCarrierwave gem 视频上传和缩略图生成与旋转
【发布时间】:2015-09-09 11:11:10
【问题描述】:

我正在使用 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

【问题讨论】:

  • 这个 gem 还能用吗?几年没更新了。

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


【解决方案1】:

你应该包括:

include CarrierWave::RMagick

并基于this

process :do_stuff

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

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

【讨论】:

  • 我试过了,但我得到了` ["无法使用 rmagick 进行操作,也许它不是图像?原始错误:委托失败 \"ffmpeg\" -v -1 -mbd rd -trellis 2 -cmp 2 -subcmp 2 -g 300 -i \"%M%%d.jpg\" \"%u.%m\" 2&gt; \"%Z\"' @ error/delegate.c/InvokeDelegate/1065"]}&gt; 这里代码试图将 MP4 作为输入。
猜你喜欢
  • 2021-03-08
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 2011-07-04
相关资源
最近更新 更多