【FFMPEG笔记·命令行手册】部分关键概念及常用命令行整理


简记FFMPEG的部分关键概念,整理常用命令行手册以备查找。本文并非严格的学术文章,部分词汇按个人标准翻译,请认准英文。

FFMPEG命令行语法格式

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

FFMPEG的部分关键概念

FFMPEG多媒体编解码流程

FFmpeg多媒体编解码流程

  1. 输入解复用(demux)调用demuxer读取输入文件并获得数据包
  2. 解码(decode)解码器产生未压缩帧(原始视频/PCM音频等)
  3. 滤镜处理(filtering)使用滤镜处理未压缩数据
  4. 编码(encode)
  5. 混流(mux)后输出

以上功能单元(解复用器、混流器、编解码器、滤镜)由以下库提供,可查看相关文档或命令行帮助以获得全部名单及使用方式:

流拷贝(stream copy)模式

-codec[:stream_specifier] copy指定。若指定流拷贝模式,则跳过编解码与滤镜操作(当然亦无法执行滤镜处理操作),仅执行解复用与混流步骤,常用于修改容器格式或修改容器元数据。优势在于快速、无质量损失。

滤镜(filter)

也译为过滤器,是FFMPEG对各种未压缩流数据操作的基本功能单元的抽象。滤镜为逐流(per-stream)作用,需以流限定符(stream specifier)指定操作对象流。从作用对象分类,滤镜有视频滤镜V、音频滤镜A与字幕滤镜S之分(VAS)。从功能分类,滤镜可分为功能滤镜(filter)、源(source)、汇(sink),后二者可理解为FFMPEG自身提供的输入与输出文件。

滤镜图(filtergraph)

若干(或单一)滤镜链式连接形成的可用图表示其逻辑组合的功能单元,简单地理解为所有应用的滤镜的统称。以输入输出流数或流类型异同可区分两种滤镜图:简单(simple)滤镜图与复杂滤镜图,二者诸多方面有差异。

流(stream)

多媒体容器文件的基本单元,也是FFMPEG的基本处理对象,滤镜与编解码器应用的最小单位。在各种应用场景中,流常被封装于容器文件中,解复用步骤实际就是拆封从而拿到流。流有视频流、音频流、字幕流之分(VAS)。

自动流选择

流选择(stream selection)的一种(另一种是手动流选择,由map选项指定)。输出文件无map选项时自动应用该种流选择方案,其步骤为:

  1. 检查输出文件格式,确定合法的流类型
  2. 对于所有合法的流类型,从全部输入文件的流中对VAS各选择一条流,原则为
    - 视频流:分辨率最高
    - 音频流:声道最多
    - 字幕流:第一条,但是须符合输出文件格式要求的字幕类型(基于文本或图像)
    - 数据或附加流:无法自动选择,必须使用-map选项指定
  3. 满足选择标准的所有流中选择索引最小的那条

流限定符(stream specifier)

对于逐流(per-stream)操作的选项,使用流限定符指定作用的对象流。流限定符的形式为附加于选项名后以分号隔开的字符串,具体形式如下:

  • stream_index
  • stream_type[:additional_stream_specifier]
  • p:program_id[:additional_stream_specifier]
  • #stream_id(i:stream_id)
  • m:key[:value]
  • u

选项

指定参数、选择滤镜、限定对象…选项是FFMPEG命令行的基础。大致分为:

  • 通用选项(Generic options)
  • 主选项(Main options)
  • VAS选项
  • 额外的高级选项(Advanced options)

了解选项需关注以下方面:

  • 最小作用域(Least Range)全局G·输入输出文件F·逐流S
  • 输入?输出?(IO)
  • 参数
  • 功能

时间长度(duration)表示

libavutil库提供支持,建议查看官方文档。总的来说有两种表示方法:

[-][HH:]MM:SS[.m...]
[-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值