经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Ruby » 查看文章
2019-01-13 [日常]mov文件转换为gif
来源:cnblogs  作者:吴烜  时间:2019/3/12 8:59:37  对本文有异议

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

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

"轮胎":

田字格:

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

  1. # encoding: utf-8
  2. APP_ROOT = File.dirname(__FILE__)
  3. @@mov文件名 = "1214_田字格"
  4. class Converter
  5. @@mov视频大小 = "1032x542" # 查看mov文件属性
  6. # Default path to ffmpeg installed by homebrew
  7. @@ffmpeg = File.join('/', 'usr', 'local', 'bin', 'ffmpeg')
  8. # Default path to gifsicle installed by homebrew
  9. @@gifsicle = File.join('/', 'usr', 'local', 'bin', 'gifsicle')
  10. @@像素格式 = "rgb8"
  11. # Tell ffmpeg to reduce the frame rate from to 30
  12. @@帧数 = 30
  13. # Tell gifsicle to delay 30ms between each gif (in ms)
  14. @@延时 = 3
  15. # Requests that gifsicle use the slowest/most file-size optimization
  16. @@优化 = 3
  17. def initialize(输入, 输出)
  18. 命令 = %{#{@@ffmpeg} -i #{输入} -s #{@@mov视频大小} -pix_fmt #{@@像素格式} -r #{@@帧数} -f gif - | #{@@gifsicle} --optimize=#{@@优化} --delay=#{@@延时} > #{输出}}
  19. %x[ #{命令} ]
  20. end
  21. end
  22. # Be careful not to use spa ces.
  23. 输入 = File.join(APP_ROOT, 'media', @@mov文件名 + '.mov')
  24. 输出 = File.join(APP_ROOT, 'media', @@mov文件名 + '.gif')
  25. Converter.new(输入,输出)

中文命名相关问题

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

  1. invalid multibyte char (US-ASCII)

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

  1. $ ruby 转换器.rb
  2. 转换器.rb:7: class/module name must be CONSTANT

原文链接:http://www.cnblogs.com/program-in-chinese/p/10514282.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号