英文原文链接:https://ffmpeg.org/ffprobe.html
结合机翻,不保证准确性
文章目录
- [1 用法](#1 用法)
- [2 说明](#2 说明)
- [3 选项](#3 选项)
-
- [3.1 流说明符](#3.1 流说明符)
1 用法
bash
ffprobe [options] input_url
2 说明
ffprobe从多媒体流从收集信息,然后以人类可读或机器可读的格式输出。
例如ffprobe可以用于检查多媒体流使用的容器的格式以及其中每个媒体流的格式与类型。
如果指定了输入文件路径,ffprobe会尝试打开指定文件,并解析其内容。如果路径不能被打开或识别为多媒体文件,ffprobe会返回一个正值的退出码。
如果没有用指定输出,ffprobe会写到标准输出。
ffprobe既可以用作独立的应用程序,也可以与文本过滤器结合使用,后者可以执行更复杂的处理,例如统计处理或绘图。
[options]
用于列出ffprobe支持的一些格式,或指定要显示的信息,以及设置ffprobe显示信息的方式。
ffprobe输出被设计可以通过文本过滤器轻松解析,并且由output_format
选项指定的输出格式定义的表单的一个或多个部分组成。
部分可以包含其他嵌套的部分,并且由名称(可以由其他部分共享)和唯一名称标识。请参见各部分的输出。
存储在容器或流中的元数据标签被识别并打印在相应的"FORMAT"、"STREAM"、"STREAM_GROUP_STREAM"或"DATA_STREAM"部分中。
3 选项
所有数值选项,如果没有另外指定,则接受表示数字的字符串作为输入,该字符串可以后跟SI单位前缀之一,例如:'K','M'或'G'。
如果"i"被附加到SI单位前缀,则完整的前缀将被解释为基于1024的幂而不是1000的幂的二进制倍数的单位前缀。将"B"插入SI单位前缀将值乘以8。这允许使用例如:'KB','MiB','G'和'B'作为数字后缀。
不带参数的选项是布尔选项,并将相应的值设置为true。可以通过在选项名称前加上"no"来将它们设置为false。例如,使用"-nofoo"会将名为"foo"的布尔选项设置为false。
接受参数的选项支持一种特殊的语法,在这种语法中,命令行给出的参数被解释为加载实际参数值的文件的路径。要使用此功能,请在选项名称前(前导破折号后)添加正斜杠"/"。例如
bash
ffmpeg -i INPUT -/filter:v filter.script OUTPUT
将从名为filter.script的文件中加载过滤器图描述。
3.1 流说明符
某些选项是按每个流使用的,例如比特率或编解码器。流说明符用于精确指定给定选项属于哪个流。
流说明符是一个字符串,通常附加在选项名之后,并用冒号与选项名分隔。例如,-codec:a:1 ac3
包含a:1
流说明符,它与第二个音频流匹配。因此,它将为第二音频流采用ac3编解码器。
一个流说明符可以匹配多个流,以便选项可以批量应用。例如,流说明符-b:a 128k
匹配所有音频流。
空流说明符匹配所有流。例如,-codec copy
或-codec: copy
将复制所有流而不重新编码。
流说明符的可能形式有:
stream_index
将流与此索引匹配。例如,-threads:1 4
会将第二个流的线程数设置为4。如果stream_index
被用作一个额外的流指定符(见下文),那么它会从匹配的流中选择流编号为stream_index
的流。流编号基于libavformat
检测到的流顺序,除非还指定了流组说明符或程序ID。在这种情况下,它基于组或程序中的流的排序。stream_type[:additional_stream_specifier]
stream_type
是以下类型之一:'v'或'V'表示视频,'a'表示音频,'s'表示字幕,'d'表示数据,'t'表示附件。'v'匹配所有视频流,'V'只匹配不是附加图片、视频缩略图或封面艺术的视频流。如果使用了additional_stream_specifier
,则它匹配具有此类型并匹配additional_stream_specifier
的流。否则,它将匹配指定类型的所有流。g:group_specifier[:additional_stream_specifier]
匹配group_specifier
组中的流。如果使用了additional_stream_specifier
,则它匹配都是该组的一部分并且与additional_stream_specifier
匹配的流。group_specifier
可以是以下之一:group_index
将流与此组索引匹配。#group_id or i:group_id
将流与此组ID匹配。
p:program_id[:additional_stream_specifier]
匹配程序中具有idprogram_id
的流。如果使用了additional_stream_specifier
,则它匹配既是程序的一部分又匹配additional_stream_specifier
的流。#stream_id or i:stream_id
通过流id匹配流(例如,MPEG-TS容器中的PID)。m:key[:value]
匹配具有指定值的元数据标记key
的流。如果未指定value
,则匹配包含给定标记的流的任何值。key
或value
中的冒号字符":"需要进行反斜杠转义。disp:dispositions[:additional_stream_specifier]
匹配具有给定处理的流。dispositions
是一个或多个处置的列表(由-dispositions
选项输出)并用'+'连接。u
匹配与可用配置匹配的流,编解码器必须被定义以及基本信息,如视频尺寸或音频采样率必须存在。
注意,在ffmpeg
中,通过元数据进行匹配只对输入文件有效。