8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

写博客时常常需要将 MP4 视频转换成 gif,方便插入。网上有挺多网站可以在线转,但是质量一般,有的还有文件大小或数量限制,其中,在 Linux 命令行下,很容易就能实现这个功能。

工具选择:截取视频中的图片:mplayer

合并处理 gif:imagemagick

安装命令1

2sudo apt-get install mplayer

sudo apt-get install imagemagick

完成转换需要完成三项工作:将视频转换为 jpeg,将 jpeg 合成 gif,压缩 gif 文件

假设 MP4 文件在 ~/Video/ 目录下,文件名为 screenrecorder.mp41

2cd ~/Video

mplayer -ao null screenrecorder.mp4 -vo jpeg:outdir=.tmp

-ao null 表示不输出音频

-vo jpeg 表示将视频输出为 jpeg

:outdir=.tmp 表示将 jpeg 输出到当前目录下的 .tmp 文件夹中

接下来需要用 imagemagick 将多张图片合成 gif。1convert .tmp/*.jpge screen.gif

这个操作极为耗时,而且会报下面一个错误:

这个错误之所以出现,是因为 ImageMagick 在其安全策略配置文件中,将 ImageMagick-6 的内存使用限制为 256MB,导致 ImageMagick 不能获得足够的内存来完成图片合成。

ImageMagick 的安全策略配置文件位置可以通过 identify -list policy 获取,一般为 /etc/ImageMagick-6/policy.xml。然后用你喜欢的编辑器打开文件找到下面一行进行编辑即可,注意,编辑此文件需要管理员权限。1

具体改成多少可以看你机器的配置而定。

直接合成的 gif 图片尺寸过大,以我 28 秒录屏为例,生成 865 张图片,合成的 gif 体积高达 109.1MB,如果直接使用,简直是不可想象的,因此还需要使用 ImageMagick 进一步压缩。1

2

3

4

5

6

7

8原尺寸

ls -l screen.gif

-rw-rw-r-- 1 zeamonk zeamonk 109146833 10月 4 22:48 screen.gif

压缩

convert screen.gif -fuzz 15% -layers Optimize 1.gif

压缩后尺寸

ls -l 1.gif

-rw-rw-r-- 1 zeamonk zeamonk 1.7M 10月 5 01:19 1.gif

-fuzz 选项启用后会将相近的颜色会被压缩为同一种颜色,后面的值表示颜色相近区域的范围,数越大代表范围越大,图片失真越严重。实测 15% 的情况下失真是可以接收的,如果将 -fuzz 设为 20%,文件尺寸可以进一步压缩到 900k,但失真会比较严重。

下图是 15% 压缩的图片

为了方便使用,还是写个脚本吧。1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16# 生成 jpg 文件

echo "Generate pictures..."

out1=`mplayer -ao null $1 -vo jpeg:outdir=.tmp > /dev/null`

# 预处理,对文件进行压缩

echo "Compress picture..."

out2=`find .tmp/*.jpg -exec convert {} -strip -resize 75% -quality 75% {} ;`

# 合成 gif

echo "Start converting jpgs to gif..."

out3=`convert .tmp/*.jpg -delay 20 .tmp/tmp.gif`

# 压缩 gif

echo "Optimize gif..."

out4=`convert .tmp/tmp.gif -fuzz 15% -layers Optimize output.gif`

# 清理残余文件

echo "Clear tmp files..."

rm .tmp/* > /dev/null 2>&1

echo "Completed..."

关注下公众号好不好

windows下的gjf转到Linux,通过命令行将 MP4 转换成 gif相关推荐

  1. linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)

    那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...

  2. Linux通过命令行将英文改成中文

    1.首先查看当前系统是否有中文语言包 locale -a 如果没有zh_CN.utf8,就需要下载中文语言包,否则,如果有中文语言包,跳过第二步. 2.安装中文语言包 Ubuntu: sudo apt ...

  3. Windows 下目录及文件向Linux同步

    本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介 ...

  4. 将Windows下的文件同步到Linux下

    需求:把Windows下的某些文件自动传送到Linux指定目录下 实现: 1. Windows下安装 WinSCP工具,并把Liunx服务器信息保存 2. 编写脚本,实现双击工具就把Windows下的 ...

  5. windows 调用linux .a lib,动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a)...

    动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a) 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.例如:libhello.so libhello ...

  6. 如何将Windows下的文件传到Linux中

    将Windows下的文件传到Linux,这里有一款叫做WinSCP的软件,感觉很好用,能直接拖拉过去的. 先给出它的官方链接https://winscp.net/eng/download.php 下载 ...

  7. linux添加windows字体文件夹里,如何把Windows下的字体添加到Linux中

    如何把Windows下的字体添加到Linux中 Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以 ...

  8. windows下的可执行程序可以再linux下运行吗?

    windows下的可执行程序可以再linux下运行吗? 答案:不能 原因有以下: (1) 可执行的二进制文件包含了:机器指令.数据资源.程序运行资源(物理的和虚拟的内存空间.进程.线程资源等).因此说 ...

  9. Windows下使用VSCode远程搭建Linux开发平台

    Windows下使用VSCode远程搭建Linux开发平台 前言 1.开启Windows的SSH功能 1.1.打开设置,进入应用 1.2.进入可选功能 1.3.安装SSH功能 2.开启Linux的SS ...

最新文章

  1. 斯坦福马腾宇:用显式正则器提升深度神经网络的泛化能力
  2. ICLR 2021 | 基于自监督学习的小样本分类,代码已开源
  3. LeetCode Water and Jug Problem(巧妙转换为gcd问题)
  4. zookeeper应用实例
  5. SAP Fiori Service Modeler
  6. windowbuilder怎么加背景图_小红书引流:爆款笔记封面图怎么做?(内附教程)...
  7. md5不是对称密码算法_密码学中的消息摘要算法5(MD5)
  8. flv 开源 修复_如何修复开源软件中的错误
  9. 大一计算机应用的实验报告,大一《计算机应用基础》实验报告1.doc
  10. MATALAB动态爱心代码
  11. idea调代码时返回到上一步的快捷键
  12. linux下隐藏文件 和 显示隐藏文件命令
  13. Android 模拟器的本地ip
  14. 手Q游戏中心上线 完美释放娱乐基因
  15. python爬虫scrapy爬取新闻标题及链接_python爬虫框架scrapy爬取梅花网资讯信息
  16. oj苹果和虫子c语言,用C++实现苹果和虫子问题
  17. 【目标跟踪】Long-term Correlation Tracking 阅读笔记
  18. ios打没有签名的ipa包
  19. ffmpeg 拼接mp4_通过 ffmpeg 无损剪切/拼接视频
  20. android imgView.setImageBitmap(bitmap) 空白图片

热门文章

  1. 盘点小米入局这5年,手机厂商的10位离任“霸道”总裁
  2. 美华裔警官控告州警调派歧视案将重审 原判决遭撤
  3. 微软上海招 PM 咯!
  4. Hive进行身份证合法性校验
  5. Netcat使用学习
  6. 安卓开发——如何完美隐藏底部虚拟导航栏
  7. uniapp软键盘把界面顶起问题解决
  8. python:Django
  9. 在windows 7 建立一个弹出光驱的快捷方式
  10. 操作系统虚拟内存的基本概念(内存空间的扩充)