[转]将视频 MP4 转化为 GIF

原文地址:http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/
在 Mac OSX 上使用 Homebrew 安装 ffmpeg

brew install ffmpegbrew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-libass --with-libquvi --with-libvorbis --with-libvpx --with-opus --with-x265brew update && brew upgrade ffmpeg

将视频 MP4 转化为 GIF

ffmpeg -i small.mp4 small.gif```

[转化视频中的一部分为 GIF](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#gif)

ffmpeg -t 3 -ss 00:00:02 -i small.webm small-clip.gif


从视频中第二秒开始,截取时长为3秒的片段转化为 gif
[转化高质量 GIF](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#gif-1)
默认转化是中等质量模式,若要转化出高质量的 gif,可以修改比特率
ffmpeg -i small.mp4 -b 2048k small.gif

[视频属性调整](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#section)
[缩放视频尺寸](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#section-1)

ffmpeg -i big.mov -vf scale=360:-1 small.mov


注意 sacle
 值必须是偶数,这里的 -1
 表示保持长宽比,根据宽度值自适应高度。
如果要求压缩出来的视频尺寸长宽都保持为偶数,可以使用 -2

[加倍速播放视频](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#section-2)

ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" output.mov


定义帧率 16fps:

ffmpeg -i input.mov -r 16 -filter:v "setpts=0.125*PTS" -an output.mov


[慢倍速播放视频](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#section-3)

ffmpeg -i input.mov -filter:v "setpts=2.0*PTS" output.mov


[静音视频(移除视频中的音频)](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#section-4)

ffmpeg -i input.mov -an mute-output.mov


`-an`
 就是禁止音频输出
[将 GIF 转化为 MP4](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#gif--mp4)

ffmpeg -f gif -i animation.gif animation.mp4


也可以将 gif 转为其他视频格式

ffmpeg -f gif -i animation.gif animation.mpegffmpeg -f gif -i animation.gif animation.webm


[获取 GIF 的第一帧图片](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#gif-)
使用 [ImageMagick](http://www.imagemagick.org/) 可以方便第提取 gif 图片的第 N 帧图像。
安装 ImageMagick

brew install imagemagick

提取第一帧

convert 'animation.gif[0]' animation-first-frame.gif


通过 [0]
 就可以提取出 gif 的第一帧图像。
[GIF 转出来的 MP4 播放不了?](http://note.rpsh.net/posts/2015/04/21/mac-osx-ffmpeg-mp4-gif-convert/#gif--mp4-)
有些 GIF 转化出来的 MP4 不能被 Mac QuickTime Player.app 播放,需要添加 pixel formal
 参数

ffmpeg -i input.gif -vf scale=420:-2,format=yuv420p out.mp4


使用 yunv420p
 需要保证长宽为偶数,这里同时使用了 scale=420:-2
 。
[wiki 解释](https://trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers): QuickTime Player 对 H.264 视频只支持 YUV 色域 4:2:0 方式的二次插值算法。
参考资料
[FFmpeg CompilationGuide/MacOSX](https://trac.ffmpeg.org/wiki/CompilationGuide/MacOSX)
[Convert Video to GIF or GIF to Video](http://davidwalsh.name/convert-video-gif)
[Get the First Frame of an Animated GIF with ImageMagick](http://davidwalsh.name/first-frame-animated-gif)
[Create an Image Preview from a Video](http://davidwalsh.name/create-image-preview-video)
[How to speed up / slow down a video](https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video)
[ffmpeg useful commands (FFMPEG 命令大全)](http://siwei.me/blog/posts/ffmpeg-useful-commands)
[ffmpeg 文档](http://siwei.me/blog/posts/ffmpeg-useful-commands)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接 GIF替代方案 维基百科的解释Video alternative to GIF已经提出来的替代gif的方...
    TryEnough阅读 7,697评论 0 4
  • 0 概述 FFmpeg是一套领先的音视频多媒体处理开源框架,采用LGPL或GPL许可证。它提供了对音视频的采集、编...
    但行耕者阅读 11,892评论 0 19
  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 10,290评论 0 3
  • 宝宝最近好像很爱看书啊!曾经不被待见的《拉拉布书》、曾经撕不动就扔的《小波纸板书系列》《小兔比利触摸书》、当然也包...
    给你们_乐乐与开心阅读 1,499评论 0 1
  • *感赏自己今天好勤快,早上起来没吃早点就开始收拾楼上屋子…… ...
    我就是我hxh阅读 1,625评论 0 0

友情链接更多精彩内容