在 FFmpeg套件中,除了ffmpeg作为多媒体处理工具之外,还有ffprobe多媒体信息查看工具,ffprobe主要用来查看多媒体文件的信息,下面是ffprobe中常见的基本命令。
FFmpeg工具(一) — ffmpeg视频处理命令行大全
FFmpeg工具(二) — ffprobe常用命令
FFmpeg工具(三) — ffplay常用命令
ffprobe常用命令行参数
1、查看详细的帮助信息
ffprobe -help
2、查看多媒体数据包信息 show_packets
ffprobe -show_packets input.mp4
通过show_packets查看的多媒体数据包信息使用标签括起来,其中包含的信息主要为:
字段 | 说明 |
---|---|
codec_type | 多媒体类型,如视频包、音频包等 |
stream_index | 多媒体的stream索引 |
pts | 多媒体的显示时间值 |
pts_time | 根据不同格式计算过后的多媒体的显示时间 |
dts | 多媒体的解码时间值 |
dts_time | 根据不同格式计算过后的多媒体解码时间 |
duration | 多媒体占用的时间值 |
duration_time | 根据不同格式计算过后的多媒体所占用的时间值 |
size | 多媒体包的大小 |
pos | 多媒体所在的文件偏移位置 |
flags | 多媒体包标记,如关键包与非关键包的标记 |
除了以上字段和信息之外,还可以通过以下组合参数来查看包中的具体数据:
ffprobe -show_data -show_packets input.mp4
3、查看多媒体的封装格式 show_format
ffprobe -show_format input.mp4
通过show_format查看的多媒体数据包信息使用标签括起来,其中包含的信息主要为:
字段 | 说明 |
---|---|
filename | 文件名 |
nb_streams | 媒体中包含的流的个数 |
nb_programs | 节目数 |
format_name | 使用的封装模块的名称 |
format_long_name | 封装的完整名称 |
start_time | 媒体文件的起始时间 |
duration | 媒体文件的的总时间长度 |
size | 媒体文件的大小 |
bit_rate | 媒体文件的码率 |
4、查看视频文件中的帧信息 show_frames
ffprobe -show_frames input.mp4
通过show_frames查看的视频文件中的帧信息使用标签括起来,其中包含的信息主要为:
属性 | 说明 | 值 |
---|---|---|
media_type | 帧的类型(视频、音频、字幕等) | video |
stream_index | 帧所在的索引区域 | 0 |
key_frame | 是否为关键帧 | 1 |
pkt_pts | Frame包的pts | 23100 |
pkt_pts_time | Frame包的pts的时间显示 | 38.500000 |
pkt_dts | Frame包的dts | 80 |
pkt_dts_time | Frame包的dts的时间显示 | 0.080000 |
pkt_duration | Frame包的时长 | 20 |
pkt_duration_time | Frame包的时长时间显示 | 0.03333 |
pkt_pos | Frame包所在文件的偏移位置 | 344 |
width | 帧显示的宽度 | 544 |
height | 帧显示的高度 | 960 |
pix_fmt | 帧的图像色彩格式 | yuv420p |
pict_type | 帧类型 | I 帧/ P帧 / B帧 |
pkt_size | 每帧的大小 |
5、查看多媒体文件中的流信息 show_streams
ffprobe -show_streams input.mp4
通过show_streams查看的视频文件中的帧信息使用标签括起来,其中包含的信息主要为:
属性 | 说明 | 值 |
---|---|---|
index | 流所在的索引区域) | 0 |
codec_name | 编码名 | h264 |
codec_long_name | 编码全名 | MPEG-4 part 1 |
profile | 编码的profile | High |
level | 编码的level | 31 |
has_b_frames | 包含B帧信息 | 1 |
codec_type | 编码类型 | video |
codec_time_base | 编码的时间戳计算基础单位 | 1/60 |
codec_tag_string | 编码的标签数据 | avc1 |
pix_fmt | 图像显示的色彩格式 | yuv420p |
coded_width | 图像的宽度 | 544 |
coded_height | 图像的高度 | 960 |
r_frame_rate | 实际帧率 | 30/1 |
avg_frame_rate | 平均帧率 | 30/1 |
time_base | 时间基数(用来进行timestamp) | 1/600 |
bit_rate | 码率 | 1197127 |
max_bit_rate | 最大码率 | N/A |
nb_frames | 帧数 | 1156 |
6、以上显示方式是键值对的方式显示,ffprobe支持多种显示格式显示,包括xml,json,flat等等。下面列举常见的格式输出的例子:
ffprobe -of json -show_streams input.mp4 // 以json显示方式
ffprobe -of xml -show_streams input.mp4 // 以xml显示方式
7、使用select_streams可以只查看音频(a)、视频(v)、字幕(s)的信息,例如配合show_frames查看视频的frames的信息:
ffprobe -show_frames -select_streams v -of xml input.mp4
总之,使用ffprobe还可以查看很多信息,可以通过help方法查看更多更详细的信息。