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中,通过元数据进行匹配只对输入文件有效。
相关推荐
优联前端1 小时前
Web 音视频(二)在浏览器中解析视频
前端·javascript·音视频·优联前端·webav
我真不会起名字啊2 小时前
“深入浅出”系列之音视频开发:(3)音视频开发的学习路线和必备知识
音视频
是店小二呀3 小时前
【2024年CSDN平台总结:新生与成长之路】
数据库·人工智能·程序人生·aigc·音视频
无限大.3 小时前
优化使用 Flask 构建视频转 GIF 工具
python·flask·音视频
音视频牛哥8 小时前
RTMP|RTSP播放器只解码视频关键帧功能探讨
音视频·实时音视频·大牛直播sdk·rtsp播放器·rtmp播放器·rtsp player·rtmp player
普通网友17 小时前
Android MediaPlayer音频播放器详解
android·音视频
少油少盐不要辣18 小时前
js截取video视频某一帧为图片
javascript·音视频
来自外太空的鱼-张小张1 天前
阿里云oss简单获取视频第一帧工具类
windows·阿里云·音视频
算家云1 天前
LatentSync本地部署教程:基于音频精准生成唇形高度同步视频
人工智能·音视频·模型部署·字节跳动·算家云·latentsync
折途1 天前
I2S是什么通信协议?它如何传输音频数据?它和I2C是什么关系?
单片机·嵌入式硬件·物联网·音视频