MAC 系统安装FFmpeg一

2019-10-27 11:11:02

参考地址 MAC 系统安装FFmpeg

前言:话不多说,马上开始

准备:

如果你的本本应装上XCode最新的版本那就最好不过的了,如果不是最新的版本,得先上App Store更新(安装一系列的操作需要用到,可减少耗时),如果没有安装XCode的话,建议还是别玩MAC系统了

先安装Homebrew (官方网址:https://brew.sh/
命令行直接运行给出的命令即可(官网上最显著的命令):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

等待安装... ...

5FFDD542-BE0F-444B-AE90-1CF89BC2142F.png

出现Installation successful!运行brew 的命令检查下,出现有brew的详情就代表安装成功了

开始安装FFmpeg,运行命令:

 brew install ffmpeg

image.png

完成后检查用命令检查下

image.png

看见后版本输出即可

最后再附上FFmpeg常用命令:

将视频 MP4 转化为 GIF
ffmpeg -i small.mp4 small.gif
转化视频中的一部分为 GIF
ffmpeg -t 3 -ss 00:00:02 -i small.webm small-clip.gif
从视频中第二秒开始,截取时长为3秒的片段转化为 gif

转化高质量 GIF
默认转化是中等质量模式,若要转化出高质量的 gif,可以修改比特率

ffmpeg -i small.mp4 -b 2048k small.gif
视频属性调整
缩放视频尺寸
ffmpeg -i big.mov -vf scale=360:-1  small.mov
注意 sacle 值必须是偶数,这里的 -1 表示保持长宽比,根据宽度值自适应高度。

如果要求压缩出来的视频尺寸长宽都保持为偶数,可以使用 -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
慢倍速播放视频
ffmpeg -i input.mov -filter:v "setpts=2.0*PTS" output.mov
静音视频(移除视频中的音频)
ffmpeg -i input.mov -an mute-output.mov-an 就是禁止音频输出

将 GIF 转化为 MP4
ffmpeg -f gif -i animation.gif animation.mp4
也可以将 gif 转为其他视频格式

ffmpeg -f gif -i animation.gif animation.mpeg

ffmpeg -f gif -i animation.gif animation.webm
获取 GIF 的第一帧图片
使用 ImageMagick 可以方便第提取 gif 图片的第 N 帧图像。

安装 ImageMagickbrew install imagemagick
提取第一帧

convert 'animation.gif[0]' animation-first-frame.gif
通过 [0] 就可以提取出 gif 的第一帧图像。




  • 2019-11-19 01:20:18

    java8 forEach、filter、map

    filter()、findAny()、orElse()配合使用,可以根据条件获取某个元素,如果没有返回指定的值。

  • 2019-11-19 01:24:01

    使用JAVA8 filter对List多条件筛选

    记录项目开发的过程中遇到的一些问题及解决方法,由于公司操作数据库都是统一使用工具生成的存在一些多表查询模糊查询,这些操作只能在集合方面下手了,比如发送邮件记录方面查询,对用户的名字及邮件模糊检索 年龄匹配查询。

  • 2019-11-21 18:13:08

    如何在vue单页应用中使用百度地图

    百度开发者平台已经封装了基于vue的地图组件,详细使用,请参考官网: https://dafrok.github.io/vue-baidu-map/#/zh/start/installation 网上有一些是直接在index.html页面全部引用的,本人强烈反对此种使用方式,因为我们项目是组件化的单页应用,强行引入多页应用的开发方式,会破坏整个项目的框架,严重影响性能。有些甚至还在vue单页应用中引入jquery,感觉这都是一些反人类的骚操作,不到万不得已,不建议使用。

  • 2019-11-25 17:04:10

    Throttle 和 Debounce 的本质及一个简单的实现

    Throttle,Debounce 就不把这两个词翻译成中文了,直接解释他们的概念。实际上这两个东西本质上是一样的,作用都是「为了避免某个『事件』在『一个较短的时间段内』内连续被触发从而引起的其对应的『事件处理函数』不必要的连续执行」。那么区别在哪呢?

  • 2019-11-25 17:05:44

    js实现 throttle 和 debounce,节流,防抖详解

    throttle 节流:drag改变浏览器大小,触发onresize函数,实现拖动每过1秒输出一次,不足1秒,1秒后输出一次。多用于高频操作,如抢票、抢购等,无论点击多少次,只固定间隔执行一次,以减轻压力。debounce防抖:drag改变浏览器大小,触发onresize函数,实现拖动停顿1秒输出。多用于输入框,当某一次输入后停顿满n秒才会去触发远程搜索。