本文转载自:https://blog.csdn.net/u012964944/article/details/50464263
*录制屏幕
1)打开Ubuntu软件中心,安装RecordMyDesktop
2)安装之后,打开RecordMyDesktop,点击选择窗口,也可以在任务栏上右键该应用的图标(红点),点击“选择区域”,更加精确地选择录制区域(必须回到桌面才能选择)。选择好录制区域和录制信息后,点击“录制”,开始录制屏幕。在任务栏上右键该应用的图标可以停止或暂停录制。假设录制好的视频为out.ogv.
*将视频转换成gif
方法一
1)打开Ubuntu软件中心,GNOME MPlayer和ImageMagick。
2),打开命令行终端,输入命令 mplayer -ao null out.ogv -vo jpeg:outdir=. ,会在当前目录下把视频生成一张张的jpg图片。
3)紧接着在终端中输入命令 convert *.jpg video.gif , 把jpg图片合并成gif动图。
方法二(推荐)
通过GNOME MPlayer和ImageMagick把视频转换成gif,会发现转换后的gif体积会大很多,因此这里推荐另一种把视频转换成gif的方式:
1)下载ffmpeg
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-3
$ sudo apt-get update
$ sudo apt-get install ffmpeg
2)将视频转化为Gif
$ ffmpeg -i out.ogv out.gif
3)另外还可指定转换参数
$ ffmpeg -ss 2 -t 10 -i out.ogv -s 649x320 -r 15 out.gif
其中, -ss 2 -t 12 表示从从视频的第2秒开始转换, 转换时间长度为10秒. -s用于设定大小, -r 用于设定帧数.
消除图片抖动
使用默认的ffmpeg转换后的gif图片像素会有抖动,因此需要使用滤镜:
#!/bin/sh
palette="/tmp/palette.png"
filters="fps=15,scale=320:-1:flags=lanczos"
ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2
将上面的内容保存为脚本gifenc.sh,执行脚本:
./gifenc.sh out.ogv anim.gif
参考:http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
Ubuntu下录制屏幕并转换成gif【转】的更多相关文章
-
Linux之Ubuntu下安装屏幕录像软件(SimpleScreenRecorder)【摘抄】
本博文全文属于摘抄自: (见文末处参考文献)(由于担心原博文丢失,以后查找不到,故此原文摘抄,以备日后多次查阅) 在日常工作中,有时需要对屏幕进行录像,以制作讲解文档等.下面介绍在Linux上安装屏幕 ...
-
联想Y450在Ubuntu下调节屏幕亮度
今天觉得ubuntu下编程时屏幕太亮,上网查了下怎样设置屏幕亮度,按住Fn 的同时调节,结果木有反应啊,杯催.... 继续搜索,最终解决了, happy... 1. 设置屏幕亮度初始值,解决reboo ...
-
在Linux下将HTML文件转换成PDF文件
今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可 ...
-
Ubuntu下录制和制作Gif图片--实战版
1.背景 ubuntu下,写文章的时候,经常用到Gif图片,这个自己怎么制作呢? 网上查了一下资料,大致的流程就是:安装 录屏软件(kazam) 和 视频 转 Jpeg 的工具(mplayer) ,使 ...
-
把ASM下的HDD VM转换成ARM下Managed Disk的SSD VM
在ASM下,要把HDD的VM转换成SSD的VM步骤非常复杂.需要手工把Disk从普通存储账户复制到高级存储账户.再通过这个Disk创建VM. 目前在有了ASM到ARM的迁移工具,以及Managed D ...
-
win7下将主分区转换成逻辑分区
在了解怎么转换之前,先搞清楚主分区,扩展分区,逻辑分区的基本概念. 主分区,也称为主磁盘分区,和扩展分区.逻辑分区一样,是一种分区类型.主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑 ...
-
flask框架下读取mysql数据 转换成json格式API
研究了一天 因为需要从数据库拿数据然后转换成json的格式 expose出去为 API 发现一条数据是容易,两条以上我居然搞了这么久 好歹出来了 先贴一下 后面更新 mysql的操作 比较容易了htt ...
-
linux下如何将dts转换成dtb?
答: 使用dtc工具,如: <kernel source code dir>/scripts/dtc/dtc -I dts -O dtb -o <dtb filename> & ...
-
64位编译器下,将指针转换成UINT32,不需要修改编译选项的编码方式
一些严格的64位编译器,将指针转换成UINT32,会报各种丢失精度的错误. 但很显然,有些时候,我们就是需要转换,且并不会真正丢失精度. 此时不需要修改编译选项的编码方式,有些用处了 示例如下: un ...
随机推荐
-
PCL安装使用
一. 下载安装 http://pointclouds.org/downloads/windows.html 1. QT安装在默认路径下(否则后续会出现问题),添加环境变量QTDIR(c:\Qt\4.8 ...
-
VISA资源名称控件
NI-VISA能自动检测端口.通过前面板上的VISA资源名称控件或VISA查找资源函数可查看端口列表.在任何平台上,NI-VISA支持的最大串口数量为256,串口的默认数量取决于操作系统. VISA资 ...
-
iOS 获取系统目录
//获取根目录 NSString *homePath = NSHomeDirectory(); NSLog(@"Home目录:%@",homePath); //获取Document ...
-
FreeBSD上构架Nginx服务器
这篇文章主要记录作者如何在FreeBSD上构架Nginx服务器.作者采用下载该程序的一个源代码包手动编译的方法,而不是使用包管理工具.这样做有两个原因:首先包质量不能保证,或无效或版本旧:其次需要在编 ...
-
Redis的持久化
Redis的持久化有两种方式: RDB方式(默认支持):在指定的时间间隔内将内存中的数据集快照写入磁盘 优势 整个Redis数据库将只包含一个文件,对于文件备份来说是完美的,系统出现灾难性的故障时容易 ...
-
Thanks David&#39;s Share
2019.4.12 Today, we got the invitation letter from US, when we discuss the journey, i saw perfect sh ...
-
纯CSS画的基本图形(圆形、三角形、多边形、爱心、八卦等)
1.圆形 .circle { width: 100px; height: 100px; background: red; border-radius: 50px; } 2.椭圆 .oval { wid ...
-
jackson @ResponseBody 处理日期类型的字段
前言:以前只知道一种方式(@JsonFormat)来处理日期格式问题,今天才发现还有两种方式,并且可以全局设置格式,这里记录一下. 首先,pom.xml 中需要先引入如下 jackson 的依赖: & ...
-
python读取/写入文件
<Python编程:从入门到实践>读书笔记 1.读取文件并且对文件内容进行打印有三种方式: with open('test.txt') as fo: for lins in fo: pri ...
-
訪问的网页自己主动打开QQ对话
今天訪问中国论文网,自己主动就弹出与QQ的对话框,非常是好奇.于是查看网页源码发现例如以下可疑处: <script type="text/javascript"> fu ...