现在社交软件中, 各种各样的动图为大家交流很大的乐趣.  Gif图片比视频小, 比静态JPG图片形象生动, 更适用于产品展示和步骤演示等. 这里简单介绍一下在window系统和ubuntu系统下gif图的制作.

ubuntu系统

工具: kazam和ffmpeg

kazam是linux下的一款简单但是功能强大的屏幕录制工具. 它可录制声音并选择全屏录制或局部区域录制.

安装方式:

在ubuntu上, 可以选择通过PPA安装.

$ sudo add-apt-repository ppa:kazam-team/unstable-series
$ sudo apt-get update && sudo apt-get install kazam

若安装成功, 在终端输入以下指令可打开该软件界面

$ kazam 

  

FFmpeg是用于录制、转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库。FFmpeg 在Linux上开发,当可以在大多数操作系统下编译,包括Windows。

安装方式:

在ubuntu上, 在终端输入以下命令:

$ sudo apt-repository ppa:kirillshkrogalev/ffmpeg-next
$ sudo apt-get update
$ sudo apt-get install ffmpeg

安装完成后, 在终端输入

$ ffmpeg -version

若出现以下信息, 说明安装成功.

ffmpeg version 2.4.-1ubuntu1~trusty6 Copyright (c) - the FFmpeg developers
built on Nov :: with gcc 4.8 (Ubuntu 4.8.-19ubuntu1)

 

Gif制作

1 视频录制.

打开Kazam软件. 其中Fullscreen 表示录制整个平面, Window表示录制特定的窗口, Area表示自己选取某个区域. 这个可根据自己需求自行选择.

选择好录制区域后, 点击Capture按钮, 此时屏幕开始倒计时录制. 倒计时时间可自己设置. 录制完成的视频保存为test.mp4文件.

  

  

2 将视频转化为Gif

ffmpeg功能强大, 这里只是介绍将视频转为Gif时常用的指令.

要将之前保存的test.mp4文件转化为Gif, 可简单的使用下面命令:

$ ffmpeg -i test.mp4 out.gif

这是按照默认的参数将, 其中test.mp4是输入的视频文件, out.gif 为输出文件. 但是问题来了, 此时的源视频可能为1080P的高清视频, 转化后的Gif文件很可能比源视频都大的多. 所以为了达到自己的要求, 需要添加相应的参数. 通常来讲, 下面的对下面指令的参数进行适当修改一般都可满足我们的要求.

$  ffmpeg -ss 2 -t 12 -i test.mp4 -s 649x320 -r  output1.gif

其中,  -ss 2 to 12 表示从从视频的第2秒开始转换, 转换时间长度为12秒后停止. -s用于设定分辨率, -r 用于设定帧数.  通常Gif有15帧左右就比较流程了.

windows和ubuntu下gif动态图片的制作的更多相关文章

  1. windows、ubuntu下eclipse搭建java、Python环境问题总结

    前两篇博文分别讲述了如何在windows.ubuntu下用eclipse搭建java.python环境,下面就针对本人遇到的问题做一个总结. 一.windows下关于java环境变量JAVA_HOME ...

  2. Ubuntu 下将 svg 图片转换为其他格式 (如 png)

    参考 How to Convert SVG Files to other Image Formats on Ubuntu 12.04/11.10 Ubuntu 下将 svg 图片转换为其他格式 (如 ...

  3. windows和ubuntu下git commit提交后如何保存和退出,回到命令行

    问题一: windows下git commit后会进入vim界面,不知道怎么操作 解决办法: 1.输入小写字母i,此时进入编辑模式,可以输入你想输入的内容 2.按下esc键,此时退出编辑模式,输入英文 ...

  4. Windows和ubuntu下更改pip国内镜像

    windows下更改pip国内镜像 # 在C:\Users\admin路径下创建pip文件夹,然后创建pip.ini文件, 并在文件下写入 [global] index-url = http://py ...

  5. Ubuntu下PHP动态编译出现Cannot find autoconf的解决方法

    执行phpize时出现Cannot find autoconf 错误 Ubuntu下解决方法 sudo apt-get install autoconf

  6. 如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘

    /** ****************************************************************************** * @author    Maox ...

  7. caffe 日志保存以及matlab绘制方法(windows以及ubuntu下)

    caffe 用matlab解析日志画loss和accuracy clc; clear; % load the log file of caffe model fid = fopen('log-prev ...

  8. [转]windows下和Ubuntu下adb找不到设备的解决方法

    最近在做flash手机项目,用fb选择android设备调试,总会出现找不到设备的情况.看了很多帖子都解决不了问题,后来终于研究出来是adb无法找到设备的问题.最后通知这篇帖子终于解决了问题. 使用电 ...

  9. windows调用ubuntu下的sublimeText2环境搭建

    部署需求: windows: windows 7 32 sp1 32位: linux :ubuntu 12.04 LTS 64位: 环境: windows安装:xmanager 4 linux安装:g ...

随机推荐

  1. Android 杀死进程

    当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.android.os.Process.killProcess(an ...

  2. 利用听云Server和听云Network实测Kubernetes和Mesos在高并发下的网络性能

    文章出自:听云博客 随着公司业务的不断增长,我们的应用数量也有了爆发式增长.伴随着应用爆发式的增长,管理的难度也随之加大.如何在业务爆发增长的同时快速完成扩容成了很大的挑战.Docker的横空出世恰巧 ...

  3. GCD中的dispatch_barrier_async函数的使用(栅栏函数)

    <一>什么是dispatch_barrier_async函数 毫无疑问,dispatch_barrier_async函数的作用与barrier的意思相同,在进程管理中起到一个栅栏的作用,它 ...

  4. The JSP specification requires that an attribute name is preceded by whitespace

    一个jsp页面在本地运行一点问题没有,发布到服务器就报错了: The JSP specification requires that an attribute name is preceded by ...

  5. redis使用笔记

    mysql---select * from table where xx;insert into table(name1,name2..) values(value1,value2);delete f ...

  6. jetty for linux 启用日志

    jetty7.8 文档 :https://wiki.eclipse.org/Jetty jetty9 文档: http://www.eclipse.org/jetty/documentation/cu ...

  7. 详解javascript,ES5标准中新增的几种高效Object操作方法

    1.Object 对象 (JavaScript) 提供对所有 JavaScript 对象通用的功能.参考网站:https://msdn.microsoft.com/zh-cn/library/kb6t ...

  8. 测试驱动开发(Test-Driven Development,简称TDD)--单元测试-->提高代码质量

    !!! 1.估算和做项目计划时要算上单元测试时间 2.开发之前写单元测试代码 盖房子的时候,工人师傅砌墙,会先用桩子拉上线,以使砖能够垒的笔直,因为垒砖的时候都是以这根线为基准的.TDD就像这样,先写 ...

  9. SQL Server字符串左匹配

    在SQL Server中经常会用到模糊匹配字符串的情况,最简单的办法就是使用like关键字(like语法http://msdn.microsoft.com/en-us/library/ms179859 ...

  10. js中的三个编码函数:escape,encodeURI,encodeURIComponent

    1. eacape(): 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / .其他所有的字符都会被转义序列替换.其它情况下es ...