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

原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/9686102.html