直接进入主题
主要参数:
-i
——设置输入文件名。-f
——设置输出格式。-y
——若输出文件已存在时则覆盖文件。-fs
——超过指定的文件大小时则结束转换。-t
——指定输出文件的持续时间,以秒为单位。-ss
——从指定时间开始转换,以秒为单位。-t
从-ss
时间开始转换(如-ss 00:00:01.00 -t 00:00:10.00
即从00:00:01.00开始到00:00:11.00)。-title
——设置标题。-timestamp
——设置时间戳。-vsync
——增减Frame使影音同步。-c
——指定输出文件的编码。-metadata
——更改输出文件的元数据。-help
——查看帮助信息
影像参数:
-b:v
——设置影像流量,默认为200Kbit/秒。(单位请引用下方注意事项)-r
——设置帧率值,默认为25。-s
——设置画面的宽与高。-aspect
——设置画面的比例。-vn
——不处理影像,于仅针对声音做处理时使用。-vcodec( -c:v )
——设置影像影像编解码器,未设置时则使用与输入文件相同之编解码器。
声音参数:
-b:a
——设置每Channel(最近的SVN版为所有Channel的总合)的流量。(单位请引用下方注意事项)-ar
——设置采样率。-ac
——设置声音的Channel数。-acodec ( -c:a )
——设置声音编解码器,未设置时与影像相同,使用与输入文件相同之编解码器。-an
——不处理声音,于仅针对影像做处理时使用。-vol
——设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推。)
FFmpeg实践
将一个视频的 音频 和加入另一个视频 三秒搞定
ffmpeg -i 1.webm -i 2.mp4 -c copy -map 0 -map 1:1 -y -shortest output.mp4
提取音频
可是如何提取出音频文件呢?通过Google了解到可以通过【-map】 参数去指定文件中的流文件进行输出,这个维基百科上没有提到啊,看来还有很多命令需要去慢慢挖掘。于是我通过下面命令试了一下,成功的将音频提取出来了。-map 0:1 将第一个输入文件的第二个流文件输出到out.wav中,因为上面已经看到了音频流都是在第二个位置。
ffmpeg -i 2.mp4 -map 0:1 out.wav
已经将第二个视频的音频提取出来了,接下来将提取出来的音频添加到第一个视频就完事了。这个可以通过 copy 命令来实现,因为两个文件音频编码都是一致的,无需重新编码,故使用 -c 不重新编码,没有质量损失,-shortest选项将导致输出持续时间与最短输入流的持续时间相匹配。
真是不折腾,不成长啊!
参考官网:
http://www.ffmpeg.org/documentation.html