ffmpegffprobe查看⾳频视频⽂件信息并输出为json格式ffprobe -i 输⼊视频路径 -v quiet -print_format json -show_format -show_streams
./ffprobe -select_streams v -show_packets -of json 1.ts
如果是⾳频,改 -select_streams a
如果要选择⾳轨,可以这样 -select_streams a:0
./ffprobe -select_streams a:0 -show_packets -of json 1.ts
--------------------
ffprobe主要⽤来查看多媒体⽂件的信息。本⽂带领⼤家学习ffprobe的常⽤命令。
并输出常⽤参数⽐较多,可以使⽤ffprobe --help来查看详细的帮助信息
image.png
上图输出的帮助信息即使ffprobe的常⽤的操作参数,也是ffprobe的基础参数。例如查看log,查看每⼀个⾳频数据包含信息或者视频数据包信息,查看每⼀个流有多少帧以及每⼀个流有多少⾳视频包,查看视频
像素点的格式等等。
下⾯根据以上的输出参数重点举⼏个栗⼦:
-show_packets 和 -show_data
使⽤ffprobe -show_packets input.mp4:
-show_packets查看的多媒体数据包信息使⽤PACKET标签扩起来了,其中包含的信息内容如下表所⽰:packet字段说明
字段说明
codec_type多媒体类型,如视频包、⾳频包等
stream_index多媒体的stream索引
pts多媒体的显⽰时间值
pts_time根据不同格式计算过的多媒体的显⽰时间
dts多媒体解码时间值
dts_time根据不同格式计算后的多媒体解码时间值
duration多媒体包占⽤的时间值
duration_time根据不同格式计算后的多媒体包占⽤的时间值
size多媒体包的⼤⼩
pos多媒体包所在的⽂件偏移位置
flags多媒体包标记,如关键包与⾮关键包的标记
除了以上字段和信息之外,还可以通过ffprobe -show_data -show_packets input.mp4组合参数来查看包中的具体数据,输出结果我就不截图展⽰了,就是在每个packet数据下⾯有⼀段data数据。
通过ffprobe读取packets来进⾏对应的数据分析,使⽤-show_packets和-show_data配合可以进⾏更加精确的分析
-show_format命令
通过ffprobe -show_format 命令可以查看多媒体饿封装格式,其使⽤FORMAT标签扩起来显⽰:
对输出信息关键字段说明:
字段说明
filename⽂件名
nb_stream多媒体中包含的流的个数
字段说明
nb_programs节⽬数
format_name使⽤的封装模块的名称
format_long_name封装的完整的名称
start_time媒体⽂件的起始时间
duration媒体⽂件的总时间长度
size媒体⽂件的⼤⼩
bit_rate媒体⽂件的码率
-show_frames
通过ffprobe -show_frames 命令可以查看视频⽂件中的帧信息,输出的帧信息使⽤FRAME标签扩起来:
字段说明
media_type帧的类型(视频、⾳频、字幕等)
key_frame是否关键帧
pkt_pts Frame包的pts
pkt_pts_time Frame包的pts的时间显⽰
pkt_dts Frame包的dts
pkt_duration Frame包的时长
pkt_pos Frame包所在⽂件的偏移位置
width帧显⽰的宽度
height帧显⽰的⾼度
pix_fmt帧的图像⾊彩格式
pict_type帧类型
-show_streams
通过ffprobe -show_frames 命令可以查看视频⽂件中的帧信息,输出的帧信息使⽤STREAM标签扩起来:
字段说明
index流所在的索引区域
codec_name编码名
codec_long_name编码全名
profile编码的profile
level编码的level
has_b_frame包含B帧信息
codec_type编码类型
codec_time_base编码的时间戳计算基础单位
pix_fmt图像显⽰的⾊彩格式
coded_width图像的宽度
coded_height图像的⾼度
codec_tag_string编码的标签数据
r_frame_rate实际帧率
avg_frame_rate平均帧率
time_base时间基数(⽤来计算timestamp)
bit_rate码率
max_bit_rate最⼤码率
nb_frames帧数
格式化 ffprobe的命令的输出格式
默认的输出格式都是以key - value的格式的显⽰⽅式,由于每个⼈的阅读习惯不⼀样,有⼈认为⽅便有⼈认为不⽅便;ffprobe⽀持多种格式的输出,包括XML、INI、JSON、CSV、FLAT等。
如何定制输出格式呢,ffprobe -print_format 或者 ffprobe -of 来格式化。举个栗⼦:
ffprobe -of xml -show_streams input.mp4
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论