A complete, cross-platform solution to record, convert and stream audio and video.
FFmpeg 是一个跨平台的音视频解决方案,可以进行音视频录制、格式转换以及流处理等操作。
下载
可以使用 Homebrew 下载
$ brew install ffmpeg
转换格式
转换格式只需一命令:
$ ffmpeg -i input.mp4 output.avi
参数介绍
ffmpeg 的命令行基本参数如下:
$ ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url}...
ffmpeg 可以有多个输入输出。每个输入输出都可以包含多种数据流(video/audio/subtitle/attachment/data)。容器格式决定着数据流的种类和数量。哪些输入数据流会进入输出流会自动决定,或通过 -map
选项指定。
在选项中引用输入文件时,可以使用索引值(从 0 开始)。比如,第一个输入文件的索引值是 0,第二个是 1。依次类推。
不要将输入输出文件搞混。首先指定所有的输入文件,然后指定所有的输出文件。
注意,所有的选项仅对相邻的输入或输出文件有效,在不同文件之间,选项会被重置。
下面是一些例子:
# 设置输出文件的视频比特率为 64 kbit/s
$ ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
# 将输出文件的帧率强制设定为 24fps
$ ffmpeg -i input.avi -r 24 output.avi
# 将输入文件的帧率设定为 1fps,输出文件设为 24fps
$ ffmpeg -r 1 -i input.m2v -r 24 output.avi
详细介绍
ffmpeg 的转码流程由如下阶段构成。
TODO doc