前两天我们介绍了一些FFmpeg的常用命令,今天我们继续这个话题。
FFmpeg命令可以转化各种格式的多媒体文件。
按照功能分类可以分为如下常用几种类型
- 信息查询部分
- 通用参数
- 视频参数
- 音频参数
可以通过FFmpeg --help查看支持的上述命令
查询参数的部分如下:
比如可以通过FFmpeg -codecs查看支持的编码类型
下面重点说下通用类型、音频参数和视频参数
一、通用参数
二 音频参数
三 视频参数
下面来看下一些比较常用的命令事例
1. flac格式 --》转成mp3
输入的音频文件为in.flac,指定编码格式为libmp3lame(即mp3的编码库),音频采样率44100,比特率为320kb/s,声道数量为2,输出文件为out.mp3
2. 转换视频格式
码率控制模式: -qp -crf -b
-qp(Constant Quantizer)恒定量化器模式
-crf(Constant Rate Factor) 恒定速率因子模式
-b (bitrate) 固定目标码率模式
VBR(Variable Bit Rate)动态比特率 简单的给少些码率、负责的多放些码率
CBR(Constant Bit Rate)恒定比特率 在vbr的基础上改进 码率固定在一个值上
3. 提取视频
还可以从视频文件中直接提取出裸h264数据
FFmpeg -i in.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb out.h264
其中mp4toannexb是一种bitmapfilter类型
4. 提取音频
如果多个音频流 通过 -map 0:3来分别提取
再合并回去
5. 截取
把-ss放在-i之前,FFmpeg会启用关键帧技术,加速它的操作,但这样提取出来的时期,在播放时显示的起止不一定准确,可以通过 -copyts 拷贝时间戳,保证时间的正确性
还可以截取多个文件
6. 把多个视频连接成一个视频
多个视频的宽高、码率一致
如果参数不一致推荐使用Avidemux这款软件处理
7. 截图
上述指令是指 在第五秒截图
还可以采用更加方便的方式截一系列的图
上述命令指定每4秒截取一帧画面生成一张图片,
8. 水印
通过两个-i指定两个输入源,一个是视频,一个是水印,通过filter_complex指定水印的位置_
9. 动图
指定分辨率为640x320,帧率为15
或者可以通过如下命令指定宽高
宽高比不变,宽度指定为100
还可以把一组图片生成一张动图
10.淡入淡出效果
给一个音频做一个淡入的效果,可以通过如下命令
前5秒做个淡入效果
淡出效果可以采用如下命令
从200秒开始做5秒的淡出效果
11. 倍速
两倍速处理音频
0.5倍速处理音频
12.混音
将两个声音进行合并
本期《音视频神器FFmpeg常用命令》已经介绍完了,下一期我们谈谈《RTP与RTCP:实时音视频传输的基础协议》,关注美畅物联,了解更多视频汇聚及AIoT底座相关的技术分享。