前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用FFmpeg处理音视频

使用FFmpeg处理音视频

作者头像
wxdut.com
发布2018-05-09 17:36:31
6.2K10
发布2018-05-09 17:36:31
举报
文章被收录于专栏:王肖的UT

本文主要是介绍如何使用ffmpeg命令行工具进行各式各样的音视频处理操作——缩放、裁剪、剪辑、旋转、格式转换,etc。。。学了本文,基本可以把格式工厂之类的音视频处理软件删了。。

一. 安装ffmpeg命令行工具

本文只介绍mac系统下的安装方法,Linux的用户安装也很简单,Win的用户也可以上网找找教程。。。

1. 安装Homebrew

Homebrew号称是“OS X 不可或缺的包管理器”,通过homebrew,可以很方便地在mac上安装常用的命令行工具。给出官网:http://brew.sh/

安装和使用方法官网说得很详细,恩。。

2. 安装ffmpeg

上面我们已经安装了Homebrew,接下来我们很方便地就可以安装ffmpeg,只需要一行命令:

代码语言:javascript
复制
$ brew install ffmpeg  //使用brew安装ffmpeg

执行了上面的命令后,brew会开启疯狂下载模式。。如果网速快的话,一会儿就可以下载完毕。然后brew还会自动把ffmpeg的启动路径加到path环境变量中,这样你就可以在任何地方使用ffmpeg了,不需要先cd到ffmpeg安装目录再执行命令了。

brew自动把ffmpeg的启动路径加到path环境变量时,可能会提示“permission denied”,这是因为brew没有更改相关文件的权限,手动加上就好了,举个例子:

代码语言:javascript
复制
$ sudo chmod 777 /usr/share/  // 这个命令是给所有程序添加/usr/share/的读、写、执行权限,执行成功之后就brew就可以更改/usr/share/下的内容了

上面的命令会让你输入当前登录用户的密码,输入你电脑的密码就好啦。

二. 视频处理

1. 剪辑

有时候我们需要截取一个长视频的其中某一段内容,比如从一个视频的第10秒开始,截取6秒的内容,也就是10~16秒的内容,输入一个out.mp4文件

代码语言:javascript
复制
$ ffmpeg -i in.mp4 -ss 00:00:10 -t 00:00:06 -acodec aac -vcodec h264 -strict -2 out.mp4   //从00:00:10开始,截取的长度为00:00:06

参数解释:

-i 代表输入待处理的文件

-ss 代表开始的时间

-t 代表截取的长度。

-acodec 音频编解码器,这个不懂的话也没关系,直接照抄就行。。

-vcodec 音频编解码器,这个不懂的话也没关系,直接照抄就行。。

2. 缩放

很多时候我们需要把一个高分辨率的视频处理成一个低分辨率的视频,以达到减小视频体积的目的。举个例子:把一个10801920的视频缩小到360640

代码语言:javascript
复制
$ ffmpeg -i in.mp4 -vf scale=360:640 -acodec aac -vcodec h264 out.mp4  // 1080*1920-->360*640

参数解释:

-i 代表输入,

-vf 的全称是video filter,即:视频滤镜,缩放其实就是给视频添加一个滤镜。

scale=360:640 scale是一种滤镜,缩放滤镜,格式是:scale=width:height,其中,width和height分别是处理后的宽和高

3. 裁剪

有时候我们想截取一个大视频的中间一部分画面,比如一个10801920的视频,我们想截取中间的10801080的部分,这个也可以实现的:

代码语言:javascript
复制
$ ffmpeg -i in.mp4 -strict -2 -vf crop=1080:1080:0:420 out.mp4 

参数解释:

crop 和上面的scale一样,也是视频滤镜的一种,crop是裁剪滤镜。四个参数分别是 width:height:x:y,其中width和height指的是裁剪的宽和高,x和y代表裁剪的区域的左上角的坐标,坐标系原点为原视频的左上角。比如 0:0就代表原视频的左上角,50:50就代表以原视频的左上角为原点的坐标系的50:50位置

4. 旋转

使用ffmpeg可以轻松地旋转视频。举个例子:将一个视频顺时针旋转90度

代码语言:javascript
复制
$ ffmpeg -i in.mp4 -vf rotate=PI/2:ow=1080:oh=1920 out.mp4

参数解释:

视频旋转其实也是一直滤镜。

rotate=PI/2 rotate是旋转滤镜,后面的“PI/2”旋转角度(正数代表顺时针),这里是90度

rotate除了指定旋转角度的参数外,还有其他一些参数:

ow 全称是out width,输出视频的宽度,如果不指定,默认是输入视频的宽度

oh 全称是out height,输出视频的高度,如果不指定,默认是输入视频的高度

5. 调节帧率

帧率会很大程度上影响画面的流畅度和视频的体积,帧率越大,画面越流畅,同时视频体积越大。

我们有时候需要通过降低帧率来减小视频的体积。

举个例子:将一个视频的帧率降到15

代码语言:javascript
复制
$ ffmpeg -i in.mp4 -r 15 out.mp4

参数解释:

-r 帧率

6. 格式转换

ffmpeg具备强大的格式转换功能,这里举几个常用的例子。

代码语言:javascript
复制
$ ffmpeg -i in.mov -vcodec copy -acodec copy out.mp4  // mov --> mp4
$ ffmpeg -i in.flv -vcodec copy -acodec copy out.mp4  // flv --> mp4
$ ffmpeg -i in.gif -vf scale=420:-2,format=yuv420p out.mp4  // gif --> mp4

7. 查看视频的详细信息

有的时候我们需要在处理之前先了解一下视频的参数信息,比如分辨率、比特率等等。可以使用下面的命令:

代码语言:javascript
复制
$ ffmpeg -i in.mp4   // 不加任何参数,只指定输入的视频

来个截图:

三. 音频处理

稍后继续。。。

四. Reference

FFmpeg有着强大的音视频处理能力,其官网给出了众多音视频处理滤镜的使用介绍,文中只提到了一些常用的操作,如果没有你想要的,可以直接去看下官网的滤镜介绍。

音视频滤镜介绍:http://ffmpeg.org/ffmpeg-filters.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/4/6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 安装ffmpeg命令行工具
    • 1. 安装Homebrew
      • 2. 安装ffmpeg
      • 二. 视频处理
        • 1. 剪辑
          • 2. 缩放
            • 3. 裁剪
              • 4. 旋转
                • 5. 调节帧率
                  • 6. 格式转换
                    • 7. 查看视频的详细信息
                    • 三. 音频处理
                    • 四. Reference
                    相关产品与服务
                    媒体处理
                    媒体处理(Media Processing Service,MPS)是智能、强大、全面的多媒体数据处理服务,行业支持最全面的音视频编码标准,基于自研编码内核和AI算法,提供音视频转码和增强、媒体智能、质检评测等能力,帮助您提升媒体质量、降低成本,满足各类场景的音视频处理需求。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档