现在社交软件中, 各种各样的动图为大家交流很大的乐趣.  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按键事件处理流程 -- KeyEvent

    刚接触Android开发的时候,对touch.key事件的处理总是一知半解,一会是Activity里的方法,一会是各种View 中的,自己始终不清楚到底哪个在先哪个在后,总之对整个处理流程没能很好的把 ...

  2. [转载]50个Demo展示HTML5无穷的魅力

    Flash和HTML5的比较已经成为现在最热门的主题之一,我们不去争论哪个好哪个不好.和HTML5在很酷的动画和简单的游戏等方面一样,除非HTML5在未来几年有一些重大发展,否则Flash在富内容网页 ...

  3. 基于Attribute的Web API路由设置

    路由对于MVC应用程序来说都是至关重要的一个部门,不管是asp.net mvc或者Ruby on Rails(当然还有其它的,我只熟悉这两个:) )  asp.net mvc自带的路由配置是在Glob ...

  4. [20130704] Intra-Query Parallel Thread Deadlocks

    今天碰到了  Intra-Query Parallel Thread Deadlocks 简单的说就是并发查询把自己给锁住了. 原理: 在并发查询运行是,有一个生产者和一个消费者,生产者等待消费者产生 ...

  5. mysql源码解读之配置文件

    要研究mysql,最好的资源莫过于源码了,所以本人打算通过调试源码的方式来深入理解mysql的点点滴滴.搭建mysql调试环境很简单,从官方下载mysql源码,利用cmake工具生成工程即可.为了方便 ...

  6. c# 注册全局热键

    //引入系统API [DllImport("user32.dll")] static extern bool RegisterHotKey(IntPtr hWnd, int id, ...

  7. SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)

      SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很 ...

  8. groups, usermod, chown, chgrp, chmod

    Linux文件权限简介 Linux的每个文件可以由三种用户访问 属主权限:创建人的权限 属组权限:与创建同一个用户组的权限 其他权限:和创建人不在同一个用户组的用户的权限 当然,root用户拥有最高权 ...

  9. android-The method findViewById(int) is undefined for the type ContactMainFragment报错

    @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view ...

  10. 006.udp转发包并代理访问服务器总结

    背景: 当加速器(client)拦截了游戏客户端发送的完整数据包(package)时,将package传给中间服务器(mid_server),经过自己的链路传输数据之后,中间服务器模拟游戏客户端将数据 ...