Ubuntu下录制屏幕并转换成gif【转】
本文转载自: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 ...
随机推荐
- BNU4206:单向行走
给定一个m*n的矩阵,请写一个程序计算一条从左到右走过矩阵且权和最小的路径.一条路径可以从第1列的任意位置出发,到达第n列的任意位置.每一步只能从第i列走到第i+1列的同一行或者相邻行(第一行和最后一 ...
- Go基础---->go的基础学习(一)
这里面记录一些学习go的基础知识.我希望爱我的人不寂寞,我希望我爱的人喜欢我 go的基础知识 一.go中的map的使用 package main import ( "fmt" ) ...
- css - Position定位属性与层级关系
今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: <!DOCTYPE html> <html> <he ...
- 使用MySQLMTOP监控MySQL性能(一)
一.环境说明 1.服务器角色 服务器角色 172.18.35.29 10.160.22.14 (MySQL Master) 10.160.22.47 (MySQL Slave) 监控点 YES NO ...
- 朴素贝叶斯算法的python实现 -- 机器学习实战
import numpy as np import re #词表到向量的转换函数 def loadDataSet(): postingList = [['my', 'dog', 'has', 'fle ...
- LightBGM之train
用于模型的训练 1.说明: lightgbm.train(params, train_set, num_boost_round=100, valid_sets=None, valid_names=No ...
- python中super的使用
转自:http://python.jobbole.com/86787/ super() 的入门使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能, ...
- jquery tab选项卡、轮播图、无缝滚动
最近做一个页写了一个星期,觉得自己对jquery还是很不熟悉 自己查了一下资料写了几个封装好的tab选项卡.轮播图.无缝滚动 $(function(){ //tab选项卡 jQuery.tab=fun ...
- 9.GIt删除操作
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: 创建一个文件test.txt,写入一句话`this is new file !`. $ echo ' ...
- ppt 文字按笔画进入。
1:在word里面写一个字(艺术字或非艺术字都可),字体格式设置为 楷体_gb23212, 没有则下载安装,http://www.cnblogs.com/liyafei/p/8747992.html ...