生活的道路一旦选定,就要勇敢地走到底,决不回头。

发掘积累过程的快感

首页 » BIBLE模型 » Linux » ffmpeg命令-ffmpeg中的过滤器基本使用方法

ffmpeg命令-ffmpeg中的过滤器基本使用方法


过滤器ffmpeg 中最为强大的功能。在 ffmepg 中有数不甚数的过滤器存在,可以满足各种编辑需要。因为过滤器实在太多了,这里只会简单讲述几个常用的。
使用 过滤的基本结构是:

ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4
ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav

可以指定视频过滤器 (-vf, -filter:v 的简写) 和 音频过滤器 (-af, -filter:a 的简写). 过滤器的内容写到双引号里面 () 并且可以使用逗号(,)连接。你可以使用任意数量的过滤器(我写了个 etc 代表更多的,这不是做一个真实的过滤器)。
过滤器设定的通常格式是:

filter=setting_2=value_2:setting_2=value_2

过滤器不同的值使用冒号分割。
你甚至可以在值里面使用进行数学符号计算。

Note: 参考 ffmpeg 过滤器手册 查看更多高级用法
这里举几个例子来说明视频和音频的过滤器。

1. 视频缩放

这是个简单过滤器,设定里只有 widthheight:

ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4

我说过你可以使用数学运算来给值:

ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv

很明显,这个命令让输入的尺寸变成了输入尺寸(in_w, in_h)的 1/2.

2. 视频裁剪

类似缩放,这个设定也有 widthheight ,另外可以指定裁剪的原点(默认是视频的中心)

ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4
ffmpeg -i input.mkv -vf "crop=w=400:h=400" output.mkv

第二个命令裁剪原点是视频的中心点(因为我没有给 x 和 y 坐标),第一个命令会从左上角开始裁剪 (x=0:y=0).
这里也有一个使用数学计算的例子:

ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv

这会把视频裁剪剩下原大小的 3/4/。

3. 视频旋转

你可以指定一个弧度,顺时针旋转视频。为了让计算简单一些,你可以给角度然后乘以 PI/180:

ffmpeg -i input.avi -vf "rotate=90*PI/180"
ffmpeg -i input.mp4 -vf "rotate=PI"

第一个命令将视频顺时针旋转 90°,第二个则是上下颠倒了视频(翻转了 180°)。

4. 音频声道重映射

有的时候,你的音频只有右耳可以听到声音,那么这个功能就很有用了。你可以让声音同时在左右声道出现:

ffmpeg -i input.mp3 -af "channelmap=1-0|1-1" output.mp3

这将右声道(1)同时映射到左(0)右(1)两个声道(左边的数字是输入,右边的数字是输出)。

5. 更改音量

你可以将音量大小乘以一个实数(可以是整数也可以不是),你只需要给出那个数大小就行了。

ffmpeg -i input.wav -af "volume=1.5" output.wav
ffmpeg -i input.ogg -af "volume=0.75" output.ogg

第一个将音量变为 1.5 倍,第二个则让音量变成了原来的 1/4 那么安静。

技巧:更改播放速度

这里会介绍视频(不影响音频)和音频的过滤器。

  1. 视频
    视频过滤器是 setpts (PTS = presentation time stamp). 这个参数以一种有趣的方式工作,因为我们修改的是 PTS,所以较大的数值意味着较慢的播放速度,反之亦然:
ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4

第一个命令让播放速度加倍了,第二个则是让播放速度降低了一半。

  1. 音频
    这里的过滤器是 atempo. 这里有个限制,它只接受 0.5(半速) 到 2 (倍速)之间的值。为了越过这个限制,你可以链式使用这个过滤器:
ffmpeg -i input.wav -af "atempo=0.75" output.wav
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3

第一个命令让音频速度慢了 1/4,第二个则是加速到原来的 4(2*2)倍。

Note: 如果想在同一个命令中同时修改视频和音频的速度,你得查看一下 filtergraphs.

互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件 1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2024. All rights reserved. 本站由 Helay 纯手工打造. 蜀ICP备15017444号