ffprobe文档

英文原文链接: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]
    匹配程序中具有id program_id的流。如果使用了additional_stream_specifier,则它匹配既是程序的一部分又匹配additional_stream_specifier的流。
  • #stream_id or i:stream_id
    通过流id匹配流(例如,MPEG-TS容器中的PID)。
  • m:key[:value]
    匹配具有指定值的元数据标记key的流。如果未指定value,则匹配包含给定标记的流的任何值。keyvalue中的冒号字符":"需要进行反斜杠转义。
  • disp:dispositions[:additional_stream_specifier]
    匹配具有给定处理的流。dispositions是一个或多个处置的列表(由-dispositions选项输出)并用'+'连接。
  • u
    匹配与可用配置匹配的流,编解码器必须被定义以及基本信息,如视频尺寸或音频采样率必须存在。
    注意,在ffmpeg中,通过元数据进行匹配只对输入文件有效。
相关推荐
曾小蛙2 小时前
【ComfyUI+视频生成】LTX-Video 快速生成视频 + 图生视频 (生成4秒 3090需要20秒)
音视频
追梦-北极星2 小时前
分割双声道音频-Audacity和ffmpeg
ffmpeg·音视频
cuijiecheng20182 小时前
音视频入门基础:MPEG2-TS专题(17)——FFmpeg源码中,解析TS program map section的实现
ffmpeg·音视频
嵌入(师)12 小时前
嵌入式驱动开发详解16(音频驱动开发)
驱动开发·音视频
gomogomono13 小时前
HDR视频技术之七:逆色调映射
音视频·hdr·yuv
m0_7482402514 小时前
vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频
音视频·webrtc
无法雾题啊18 小时前
一行一行出字的视频怎么做?简单的操作方法
音视频·视频编解码
人才程序员18 小时前
ffmpeg C语音 读取视频帧源码
c语言·c++·ffmpeg·音视频·webrtc·实时音视频·视频编解码
GOTXX19 小时前
基于MATLAB的图像增强
开发语言·图像处理·人工智能·计算机视觉·matlab·音视频·超分辨率重建