windows下的gjf转到Linux,通过命令行将 MP4 转换成 gif
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相关推荐
- linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)
那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...
- Linux通过命令行将英文改成中文
1.首先查看当前系统是否有中文语言包 locale -a 如果没有zh_CN.utf8,就需要下载中文语言包,否则,如果有中文语言包,跳过第二步. 2.安装中文语言包 Ubuntu: sudo apt ...
- Windows 下目录及文件向Linux同步
本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介 ...
- 将Windows下的文件同步到Linux下
需求:把Windows下的某些文件自动传送到Linux指定目录下 实现: 1. Windows下安装 WinSCP工具,并把Liunx服务器信息保存 2. 编写脚本,实现双击工具就把Windows下的 ...
- windows 调用linux .a lib,动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a)...
动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a) 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.例如:libhello.so libhello ...
- 如何将Windows下的文件传到Linux中
将Windows下的文件传到Linux,这里有一款叫做WinSCP的软件,感觉很好用,能直接拖拉过去的. 先给出它的官方链接https://winscp.net/eng/download.php 下载 ...
- linux添加windows字体文件夹里,如何把Windows下的字体添加到Linux中
如何把Windows下的字体添加到Linux中 Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以 ...
- windows下的可执行程序可以再linux下运行吗?
windows下的可执行程序可以再linux下运行吗? 答案:不能 原因有以下: (1) 可执行的二进制文件包含了:机器指令.数据资源.程序运行资源(物理的和虚拟的内存空间.进程.线程资源等).因此说 ...
- Windows下使用VSCode远程搭建Linux开发平台
Windows下使用VSCode远程搭建Linux开发平台 前言 1.开启Windows的SSH功能 1.1.打开设置,进入应用 1.2.进入可选功能 1.3.安装SSH功能 2.开启Linux的SS ...
最新文章
- C#:将另一个应用程序的主窗口移至屏幕最前
- 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?
- javascript: new Date(string)在IE中显示NaN的问题!
- Spring Cloud 学习笔记(四)-Spring Cloud Hystrix
- PostgreSQL在何处处理 sql查询之三十八
- 做向量召回 All You Need is 双塔
- HarmonyOS之深入解析图像的编码和解码
- 【.Net基础02】XML序列化问题
- goods.java_javaweb网上书城项目 1.用户管理:注册会员 - 下载 - 搜珍网
- solr crud_Spring Data Solr教程:CRUD(差不多)
- linux添加nginx启动脚本_linux环境开机自启动nginx
- python之模块的导入和用户的交互格式化输出
- Python学习笔记五
- linux进程间通信练习:对于text.txt文件,子进程将字符串“something communication”写入text.txt,父进程读取text.txt文件内容并打印。
- 4K视频质量测试/4K质量评价
- LOJ6437 PKUSC2018 PKUSC
- 调查 问卷 设计 注意 - Web
- c语言打印变量高低字节,亲自动手——C语言变量所占字节,及自动类型转换
- 构建基于MX1919的超声波阵列驱动板
- xmind打不开java_xmind打开出错(JVM terminated. Exit code=-1) | 学步园
热门文章
- 华为OD机试用Python实现 -【士兵过河】| 含思路
- 搜狗手机浏览器测试管理方法(二)-----项目测试流程
- Nginx玩法 — 反向代理
- 應該是要敗大光圈定焦鏡頭35mmF2D 還是閃光燈呢 SB-600? SB-800??~~
- 【业务知识】Super-Smack和迅雷休闲游戏架构
- 比特中文android版,比特精灵安卓版本6.1
- 【发布】iOS百度贴吧助手1.0
- 健身行业需求分析与解决方案-捷径体系
- YYN图论学习路线(推荐)
- 4.20 使用自动色调、自动对比度和自动颜色命令调整图像色调 [原创Ps教程]