直接进入主题
主要参数:
-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