.a文件转换为.lib文件_[日常]mov文件转换为gif

因为需要将之前mac下用QuickTime录屏生成的文件(mov格式)转换成gif文件, 便于传到某些博客平台, 于是找到了这个转换工具, 已将原代码的命名中文化并简化. Ruby和视频转换都是新手, 请多指教.

之前JavaScript实现ZLOGO: 前进方向和速度有两个mov文件, 下面是"田字格"转换出的gif("轮胎"也转换成功, 但也许过大(2.3MB)上传失败):

e876513da5c75f99d6727df1435e5b3f.gif


下面是命名中文化后的源码. 注意: 需将mov文件置于media目录下, 并自行修改mov文件名mov视频大小值.

# encoding: utf-8

APP_ROOT = File.dirname(__FILE__)

@@mov文件名 = "1214_田字格"

class Converter
  @@mov视频大小 = "1032x542" # 查看mov文件属性
  # Default path to ffmpeg installed by homebrew
  @@ffmpeg   = File.join('/', 'usr', 'local', 'bin', 'ffmpeg')
  # Default path to gifsicle installed by homebrew
  @@gifsicle = File.join('/', 'usr', 'local', 'bin', 'gifsicle')

  @@像素格式 = "rgb8"
  # Tell ffmpeg to reduce the frame rate from to 30
  @@帧数 = 30

  # Tell gifsicle to delay 30ms between each gif (in ms)
  @@延时 = 3
  # Requests that gifsicle use the slowest/most file-size optimization
  @@优化 = 3
  
  def initialize(输入, 输出)
    命令 = %{#{@@ffmpeg} -i #{输入} -s #{@@mov视频大小} -pix_fmt #{@@像素格式} -r #{@@帧数} -f gif - | #{@@gifsicle} --optimize=#{@@优化} --delay=#{@@延时} > #{输出}}
    
    %x[ #{命令} ]
  end  
end

# Be careful not to use spa ces.
输入 = File.join(APP_ROOT, 'media', @@mov文件名 + '.mov')
输出 = File.join(APP_ROOT, 'media', @@mov文件名 + '.gif')

Converter.new(输入,输出)

中文命名相关问题

开头需加# encoding: utf-8, 否则报错

invalid multibyte char (US-ASCII)

如果类名改为转换器, 运行报错如下. 不知是否Ruby的限制.

$ ruby 转换器.rb  转换器.rb:7: class/module name must be CONSTANT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值