1 概要

  • ffmpeg 命令格式:

    1
    
    ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
    

2 说明

  • ffmpeg是一个通用媒体转换器。它可以读取各种输入 - 包括实时抓取/记录设备 - 过滤并将其转码为多种输出格式。

  • ffmpeg从选项指定的任意数量的输入“文件”(可以是常规文件、管道、网络流、抓取设备等)读取,并写入 -i任意数量的输出“文件”,这些文件由选项指定一个简单的输出 url。在命令行上找到的任何不能解释为选项的内容都被视为输出 url。

  • 原则上,每个输入或输出 URL 可以包含任意数量的不同类型的流(视频/音频/字幕/附件/数据)。允许的流数量和/或类型可能受到容器格式的限制。选择哪些输入将进入哪些输出的流可以自动完成,也可以使用选项-map(请参阅流选择章节)。

  • 要引用选项中的输入文件,您必须使用它们的索引(从 0 开始)。例如,第一个输入文件是0,第二个输入文件是1,等等。类似地,文件中的流由它们的索引引用。例如2:3指第三个输入文件中的第四个流。另请参阅流说明符一章。

  • 作为一般规则,选项将应用于下一个指定的文件。因此,顺序很重要,您可以在命令行上多次使用相同的选项。然后,每次出现的情况都会应用于下一个输入或输出文件。此规则的例外是全局选项(例如详细级别),应首先指定它。

  • 不要混合输入和输出文件 - 首先指定所有输入文件,然后指定所有输出文件。也不要混合属于不同文件的选项。所有选项仅适用于下一个输入或输出文件,并在文件之间重置。

  • 下面是一些简单的例子

    • 通过重新编码媒体流,将输入媒体文件转换为不同的格式:

      1
      
      ffmpeg -i input.avi output.mp4
      
    • 将输出文件的视频比特率设置为 64 kbit/s:

      1
      
      ffmpeg -i input.avi -b:v 64k -bufsize 64k output.mp4
      
    • 将输出文件的帧速率强制为 24 fps:

      1
      
      ffmpeg -i input.avi -r 24 output.mp4
      
    • 强制输入文件的帧速率(仅对原始格式有效)为 1 fps,输出文件的帧速率为 24 fps:

      1
      
      ffmpeg -r 1 -i input.m2v -r 24 output.mp4
      

3 详细说明