跳转到内容

FFMPEG 中级指南

25% developed
来自维基教科书,开放世界中的开放书籍

FFmpeg 是一个自由软件项目,它生成用于处理多媒体数据的库和程序。FFmpeg 包括 libavcodec,一个由其他多个项目使用的音频/视频编解码库,libavformat,一个音频/视频容器复用器和解复用器库,以及 ffmpeg 命令行程序,用于转码多媒体文件。FFmpeg 主要在 GNU 宽通用公共许可证 v2.1 下发布,某些组件可能在 GNU 通用公共许可证 v2 下获得许可。该程序及其库也受到全球公司和消费者的广泛使用。

对于初学者来说,文档可能很可怕而且令人不知所措,因此本手册将指导您了解使用 FFmpeg 的基础知识。它包含最佳实践,定义概念,也可能包含一些问题解决方法。欢迎您参与本手册的开发。


基础知识

[编辑 | 编辑源代码]

FFmpeg 是一款音频和视频转码器,它与计算机的终端进行交互。这意味着,如果您想直接使用 ffmpeg,则必须使用终端。但是,如果您愿意,可以安装图形界面。

FFmpeg 在最基本的情况下,会解码输入文件并将其编码为输出文件。这些文件可以是您想要的任何文件,可以在您想要的任何位置。

 ffmpeg -i input.avi output.mp4

让我们逐个介绍这行代码的每个部分,看看它们意味着什么

  • ffmpeg

这是一个名为 FFmpeg 的程序,我们告诉它从我们的环境路径或我们所在的文件夹运行,具体取决于您安装它的位置。环境路径是一个系统范围的目录,它允许您从系统中的任何其他位置访问其他命令,例如 cd。如果您收到类似于“找不到 ffmpeg”的消息,则意味着您需要在同一个文件夹中运行 FFmpeg,或者将其移动到已设置为命令行环境路径的文件夹中。这在每个系统的安装部分中都有介绍。

  • -i

这是一个标志,它告诉 FFmpeg 为其使用一个值。在这种情况下,i 表示 **输入**。我们希望告诉 FFmpeg 我们的输入文件位于哪里。请务必包含扩展名。

  • output.mp4

然后,我们简单地告诉 FFmpeg 将新文件放在哪里。在这个例子中,我们没有明确地告诉 FFmpeg 使用什么格式;当我们在输出中键入扩展名时,它会假设我们想要使用最匹配的结果(在本例中是 MP4)。

请注意,FFmpeg 预计在每个空格后输入新的命令/设置。如果您要指向一个文件夹或文件路径包含空格的位置,请在路径周围加上引号,如下面的示例所示。在没有空格的情况下通常不需要这样做,但在有空格的情况下是必需的。

 ffmpeg -i "video 2011-05.mpg" -b 3000k "video 2011-05.mov"
  • -b

这是另一个标志,它告诉 FFmpeg 视频在播放的每秒中应该放入多少位。更高的比特率并不总是意味着更高的质量。请参阅一般部分以了解解释。

现在您已经了解了 FFmpeg 中创建视频文件的 basics,您可以继续学习其他部分。我个人建议先学习音频,这样您就可以对音频的自定义有一个直观的了解。

华夏公益教科书