2019-01-13 [日常]mov文件转换为gif
因为需要将之前mac下用QuickTime录屏生成的文件(mov格式)转换成gif文件, 便于传到某些博客平台, 于是找到了这个转换工具, 已将原代码的命名中文化并简化. Ruby和视频转换都是新手, 请多指教.
之前JavaScript实现ZLOGO: 前进方向和速度有两个mov文件, 下面为转换出的gif:
"轮胎":
田字格:
下面是命名中文化后的源码. 注意: 需将mov文件置于media
目录下, 并自行修改mov文件名
和mov视频大小
值.
# encoding: utf-8APP_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@@优化 = 3def 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
转载于:https://www.cnblogs.com/program-in-chinese/p/10514282.html
2019-01-13 [日常]mov文件转换为gif相关推荐
- [日常]mov文件转换为gif
因为需要将之前mac下用QuickTime录屏生成的文件(mov格式)转换成gif文件, 便于传到某些博客平台, 于是找到了这个转换工具, 已将原代码的命名中文化并简化. Ruby和视频转换都是新手, ...
- 百度网盘vep文件如何转换mp4_用这个软件,聊聊如何将MOV文件转换为MP4
MOV文件作为QuickTime电影播放器 的专有格式.现在被其他应用程序广泛使用,但已取代了MP4文件格式,它是电影文件空间中的主要播放器. MOV和MP4文件都可以存储和播放图像和声音.但是,MO ...
- html播放mov格式视频,video - ffmpeg将mov文件转换为mp4,用于HTML5视频标签IE9 - 堆栈内存溢出...
对于ffmpeg : ffmpeg -i {input}.mov -vcodec h264 -acodec aac -strict -2 {output}.mp4 您还可以添加-q:v / -q:a参 ...
- 2019.01.13 bzoj4137: [FJOI2015]火星商店问题(线段树分治+可持久化01trie)
传送门 题意:序列上有nnn个商店,有两种事件会发生: sss商店上进购标价为vvv的一个物品 求编号为[l,r][l,r][l,r]之间的位置买ddd天内新进购的所有物品与一个数xxx异或值的最大值 ...
- python编程比赛初赛 组成最小罗马数字_Python每日一编程小练习(2019.06.13)——罗马数转换为整数...
题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 1 ...
- 基于DOM4j和POI实现的XML文件转换为XLS(即标准EXCEL)的JAVA程序
基于DOM4j和POI实现的XML文件转换为XLS(即标准EXCEL)的JAVA程序 #第一次写博客有点小紧张,希望各位大牛多多包涵 大四狗最近来公司实习,经理大大给了一个测试开发能力的任务,读取xm ...
- css文件转换html,你怎么能编程方式(或工具).MHT MHTML文件转换为普通的HTML和CSS文件?(How can...
许多工具有办法导出.mht文件. 我想办法到单个文件转换为文件的集合,一个HTML文件,相关图片和CSS文件,我可以再上传到网站托管商,所有的浏览器是消耗品. 有谁知道任何工具或库或算法来做到这一点. ...
- OverTheWire:Bandit通关WriteUp(2019.01.17完)
OverTheWire:Bandit通关全攻略WriteUp 背景 通关过程 Level 0 Level 0-->Level 1 Level 1 - Level 2 Level 2 - Leve ...
- Squid第13章 日志文件
原贴: 第13章 日志文件 13.1 cache.log 13.1.1 debug级别 13.1.2 转发cache.log消息到系统日志 13.1.3 dump cache.log消息到终端 13. ...
最新文章
- R语言使用dplyr包基于因子变量(factor)将原dataframe拆分为每一个因子对应的单独数据集dataframe实战
- boost::multiprecision模块mpfr_float相关的测试程序
- 大数据架构的典型方法和方式
- require.jsAMD模块化编程
- android 动画结束停留,循环动画 tween durationMillis = 90195 动画将停留在最后一针
- python12_Python 12 基础知识
- Topaz DeNoise AI 3.6.2 for Mac(图片降噪软件)
- DPDK AF_XDP
- 莫兰迪紫rgb_莫兰迪色系颜色大全 莫兰迪色系适合什么人
- Java之支付宝支付(电脑网站支付)案例实战
- 浅谈 Lempel-Ziv压缩方法
- 今日头条的新闻推荐算法原理
- 年底买基金的六大建议!
- 嫦娥奔月(神话,非航天器)
- 你所不知的角落,有人在做没有深度学习的AI
- hosts文件详解--localhost和127.0.0.1
- 线性代数的本质--笔记整理
- 什么是人工智能(深度学习)
- Android平台上集成萤石SDK
- android语音识别Demo