Ubuntu上将视频转化为GIF图像的简单方法
文章正文图片


今天需要制作GIF图像用于文章,之前都是在Windows上面弄,用神器LICEcap(http://www.cockos.com/licecap/)能轻松录制GIF文件,很方便。遗憾的是该软件只有MAC OS和Windows版本。所以换到Ubuntu后就得寻求另外的方法了,查询一番后找到了一个强大的工具ffmpeg。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg在Linux平台下开发,但也可在Windows和MAC OS中编译运行。
以上两个(LICEcapFFmpeg)都是开源软件,向开源软件的开发者们致敬!
在开始之前需要先安装FFmpeg。

安装过程
首先添加源:
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-3
其次更新源:
$ sudo apt-get update
最后安装:
$ sudo apt-get install ffmpeg
以上都是常规步骤,下面是具体的使用。可以在网上查找到很多相关说明,参数说明自然也不会少,我整理了以下一些常用的参数:
-ss T1 -t T2       //从视频时间T1到T2
-i  xxx.xxx        //源视频文件输入
-s  WIDTHxHEIGHT   //gif图像尺寸
-r  VALUE          //帧率
示例:
$ ffmpeg -ss 0 -t 10 -i test.mp4 -s 360x640 -r 24 test.gif
这样一来就大功告成了,但是仔细一看这生成的GIF图片效果不太正常,好像有很多格子,很粗糙。于是网上一查发现,以上步骤虽然可以生成gif,但是由于没有做优化,出来的效果就是这样的。解决方法就是用上滤镜,于是接着查找资料,整理了以下脚本文件:
 
    #!/bin/sh  

    #arg1:startTime  arg2:endTime  arg3:sourceFile  arg4:outputFile
      
    palette="/tmp/palette.png"  
      
    filters="fps=15,scale=320:-1:flags=lanczos"  
      
    ffmpeg -v warning -ss $1 -t $2 -i $3 -vf "$filters,palettegen" -y $palette  
    ffmpeg -v warning -ss $1 -t $2 -i $3 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $4  
将以上脚本保存并赋予执行权限(chmod)就可以方便地搞起GIF啦!更细化的需求可以自己更改脚本,这里我只弄了4个可变参数,依次为:起始时间点、结束时间点,当然还有另外两个必须的参数:源文件和输出目标文件。
若你发现这篇文章存在错误或者你有不同的见解,欢迎留言或者发送电子邮件:song@devsong.org
It's
欢迎访问本站,欢迎留言、分享、点赞。愿您阅读愉快!
*转载请注明出处,严禁非法转载。
https://www.devsong.org
QQ留言 邮箱留言
头像
引用:
取消回复
提交
涂鸦
涂鸦
热门