ruby – 如何使用CarrierWave更正用于缩略图生成电影的文件扩展名

ruby – 如何使用CarrierWave更正用于缩略图生成电影的文件扩展名,第1张

概述我想上传文件并转换缩略图. 我的代码是: require 'streamio-ffmpeg'module CarrierWave module FFMPEG module ClassMethods def resample(bitrate) process :resample => bitrate end def gen_vide 我想上传文件并转换缩略图.

我的代码是:

require 'streamio-ffmpeg'module CarrIErWave  module FFMPEG    module ClassMethods      def resample(bitrate)        process :resample => bitrate      end      def gen_vIDeo_thumb(wIDth,height)        process :gen_vIDeo_thumb => [wIDth,height]      end    end    #def is_vIDeo?    #  ::FFMPEG::MovIE.new(file.open(store_path)).frame_rate != nil    #end    def gen_vIDeo_thumb(wIDth,height)      directory = file.dirname(current_path)      tmpfile = file.join(directory,"tmpfile")      fileUtils.move(current_path,tmpfile)      file = ::FFMPEG::MovIE.new(tmpfile)      file.transcode(current_path,"-ss 00:00:01 -an -r 1 -vframes 1 -s #{wIDth}x#{height}")      fileUtils.rm(tmpfile)    end    def resample(bitrate)      directory = file.dirname(current_path)      tmpfile = file.join(directory,"tmpfile")      file.move(current_path,tmpfile)      file = ::FFMPEG::MovIE.new(tmpfile)      file.transcode(current_path,:audio_bitrate => bitrate)      file.delete(tmpfile)    end  endend

我的上传者有

version :thumb do    process :resize_to_fill => [100,70],:if=> :image?    process :gen_vIDeo_thumb => [100,:if=> :vIDeo? do      process :convert => 'png'    end  end

和功能是.

protected  def image?(new_file)    ::FFMPEG::MovIE.new(new_file.file.path).frame_rate == nil  end  def vIDeo?(new_file)    ::FFMPEG::MovIE.new(new_file.file.path).frame_rate != nil  end

但问题是,视频上传,视频thubmail生成非常好.但它没有png扩展名.如果我上传一个mp4文件,它的缩略图也有一个mp4扩展名.但这是一个可以在浏览器中查看的图像.

如何纠正扩展问题?任何人都可以在代码中指出问题吗?

解决方法 我最近通过覆盖:thumb版本的full_filename方法解决了这个问题

version :thumb do  # do your processing  process :whatever  # redefine the name for this version  def full_filename(for_file=file)    super.chomp('mp4') + 'png'  endend

我调用super来获取默认值:thumb filename,然后将扩展名从mp4更改为png,但你可以做任何事情.

有关更多信息,carrierwave wiki在How to: Customize your version file names上有一篇很好的文章.查看其他维基页面了解很多想法.

总结

以上是内存溢出为你收集整理的ruby – 如何使用CarrierWave更正用于缩略图生成电影的文件扩展名全部内容,希望文章能够帮你解决ruby – 如何使用CarrierWave更正用于缩略图生成电影的文件扩展名所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存