FFmpeg 入门指南

作者:刘专,日期:2018 年 01 月 06 日

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 的转码流程由如下阶段构成。

ffmpeg diagram

TODO doc

REF

  1. FFmpeg 官方网站
  2. ffmpeg Documentation