ffmpeg之ffprobe使用

多年的音视频开发过程中,对于音视频文件的分析先后用过许多的工具:

Flv

Flv解析工具:FlvParse.exe
Flv标准文档:video_file_format_spec_v10

Mp4

Mp4解析工具:mp4info.exe
Mp4标准文档:ISO/IEC 14496-12

TS

TS解析工具:EasyICE、ElecardStreamEye Studio
TS标准文档:ISO/IEC 1-13818中2.4 Transport Stream bitstream requirements

PS

PS解析工具:ElecardStreamEye Studio
PS标准文档:ISO/IEC 1-13818中2.5 Program Stream bitstream requirements

...

一直以来对于命令行方式的视频分析工具ffprobe颇有抗拒,直到最近用了一次后才发现原来ffprobe的强大。他的强大在于他几乎是全能的,所有音视频格式都能用他来分析,而且输出简洁,给我了足够的自由度与灵活度。

是的,我决定以后音视频的分析全部用这个工具了,记录一些常用的指令如下:

-v参数

-v loglevel         set logging level
不想让log影响输出显示,一般设置为
ffprobe -v quiet

-of

设置输出打印格式。
例如:将输出打印为 JSON 格式:-of json
个人认为xml格式比较直观:ffprobe -of xml

-select_streams

只选择 stream_specifier 指定的流。该选项只影响那些与流相关的选项(例如:show_streams, show_packets, 等)。  
 举例:只显示音频流,使用命令:  
    ffprobe -show_streams -select_streams a INPUT  
只显示视频流,使用命令:
    ffprobe -show_streams -select_streams v INPUT

-show_format

显示输入多媒体流的容器格式信息  

-show_frames

显示输入多媒体流中的每一帧以及字幕的信息 

-show_packets

显示输入多媒体流中每一个包的信息,输出信息和show_frames差不多

-show_streams

显示输入多媒体流中每一个流的信息

-show_data

显示有效载荷数据,以十六进制和ASCII转储。
与 ‘-show_packets’ 结合使用,它将dump 包数据;
与 ‘-show_streams’ 结合使用,它将 dump codec 附加数据。 

-show_programs

显示输入多媒体流中程序以及它们的流的信息

-count_frames

计算每一个流中的帧数,在相应的段中进行显示  
如:ffprobe -show_streams -count_frames -i sample.mp4
 n_read_frames会有数据,否则为N/A

-count_packets

计算每一个流中的包数,在相应的段中进行显示 

-show_error

显示探测输入文件时的错误信息

你可能感兴趣的:(ffmpeg之ffprobe使用)