[日常]mov文件转换为gif

简介: 用ruby调用ffmpeg转换mov文件为gif. Use ruby to call ffmpeg to transform mov to gif file.

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

之前JavaScript实现ZLOGO: 前进方向和速度有两个mov文件, 下面为转换出的gif:

"轮胎":
无法粘贴,详见原文:https://zhuanlan.zhihu.com/p/54832362
2019-01-13-logo轮胎

田字格:
2019_01_13_logo_

下面是命名中文化后的源码. 注意: 需将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

2019-01-13

相关文章
|
8月前
|
存储 编解码 iOS开发
视频文件格式:MOV与MP4格式的区别是什么?
视频文件有多种格式,很多人在下载时不知道该选择哪种文件格式。不同格式有不同特点,各自有优缺点。本文将详细介绍常见的MOV和MP4的特点与区别,以供读者了解及选择。
1095 2
视频文件格式:MOV与MP4格式的区别是什么?
|
Java API 图形学
JAVA读取EMF文件并转化为PNG,JPG,GIF格式
JAVA读取EMF文件并转化为PNG,JPG,GIF格式 使用第三方库下载地址为:http://java.freehep.org/vectorgraphics/index.html 主要思路: 使用EMFInputStream读取EMF文件,然后使用EMFRenderer对象将EMF绘制到创建 好的空白的BufferedImage里面。
1984 0
|
8月前
|
计算机视觉
将TIF图像格式转化为PNG或者JPG格式
安装好cv2库,如果没有安装,请使用pip install opencv-python进行安装。
119 0
|
12月前
*.pvr.ccz文件还原成png格式
*.pvr.ccz文件还原成png格式
145 0
将RGB转换为JPG格式到内存的代码
将RGB转换为JPG格式到内存的代码
123 0
RGB数据剪切后保存为JPG格式文件的代码(使用jpeglib)
RGB数据剪切后保存为JPG格式文件的代码(使用jpeglib)
140 0
|
并行计算
使用CUDA将NV12转换JPEG的代码
使用CUDA将NV12转换JPEG的代码
166 0
|
Java 文件存储 Maven
将PDF文件转换成PNG图片
有这样一个业务场景:需要在 WEB 页面中浏览 PDF 文件,PDF 文件存储在 FTP 服务器上,即 PDF 文件对外提供的访问地址的协议是 ftp 的。有如下几个硬条件、软需求的要求: - WEB 页面本身的可视区域不是很大; - 不想弹出对话框展示 PDF 文件; - 谷歌浏览器不支持在 http 协议的页面里内嵌 ftp 协议的路径; - 在 WEB 页面中使用系统默认的 PDF 阅读器的体验不是很好,滚动条啦,边框啦。
278 0
|
存储 编解码 C语言
C语言代码创建、解析BMP格式图片
BMP格式的图片是众多图片格式中的一种,也称为位图数据,BMP结构也比较简单,不需要依赖任何外部库,直接手撸几十行代码即可完成解码编码,非常方便。
352 0
|
存储
ps之解决eps图片不能保存为png格式问题
ps之解决eps图片不能保存为png格式问题
166 0