美文网首页
ffmpeg/ffprobe查看音频视频文件信息并输出为json

ffmpeg/ffprobe查看音频视频文件信息并输出为json

作者: whgfu | 来源:发表于2023-11-29 17:43 被阅读0次

|

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

image.png

上图输出的帮助信息即使ffprobe的常用的操作参数,也是ffprobe的基础参数。例如查看log,查看每一个音频数据包含信息或者视频数据包信息,查看每一个流有多少帧以及每一个流有多少音视频包,查看视频像素点的格式等等。
下面根据以上的输出参数重点举几个栗子:

-show_packets 和 -show_data

使用ffprobe -show_packets input.mp4:

image

-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标签扩起来显示:

image

对输出信息关键字段说明:

字段 说明
filename 文件名
nb_stream 多媒体中包含的流的个数
nb_programs 节目数
format_name 使用的封装模块的名称
format_long_name 封装的完整的名称
start_time 媒体文件的起始时间
duration 媒体文件的总时间长度
size 媒体文件的大小
bit_rate 媒体文件的码率

-show_frames

通过ffprobe -show_frames 命令可以查看视频文件中的帧信息,输出的帧信息使用FRAME标签扩起来:

image
字段 说明
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标签扩起来:

image
字段 说明
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

image

源地址:ffmpeg/ffprobe查看音频视频文件信息并输出为json格式 - VirusCIH - 博客园 (cnblogs.com)

相关文章

  • ffmpeg实用功能

    ffmpeg/ffprobe查看音频视频文件信息并输出为json格式,这是一个很实用的功能,特别是外部程序调用并处...

  • FFMpeg的常用命令与使用

    FFMpeg 常用命令的理解与使用 ffprobe 输出封装格式信息 // 以json格式输出 // 输出流信息 ...

  • FFmpeg笔记(二)-- 命令行工具

    ffprobe 主要用于查看文件的格式和详细信息。 1.查看音频文件: 可得到结果: 2.查看视频文件: 可以显示...

  • FFmpeg命令行工具的使用:ffprobe

    ffprobe---查看多媒体文件格式的工具 首先用ffprobe查看一个音频文件 图中红框部分是该音频的元信息,...

  • FFmpeg 命令行工具ffprobe

    查看音视频文件的基本信息: 查看格式信息: 以json格式输出具体每一个流最详细的信息: 显示帧信息: 查看包信息:

  • 调试

    ffprobe分析视频文件dts、pts等信息 ./ffprobe -show_frames -select_st...

  • ffprobe常用命令

    ffprobe -of son -show_packets input.flv 输出json格式 ffprobe ...

  • FFmpeg命令行练习(5)

    ffprobe工具 查看多媒体数据包信息 通过组合参数查看包中的具体数据 查看多媒体的封装格式 查看视频文件中的帧...

  • FFmpeg4Android:音频解码

    6 FFmpeg4Android:音频解码 音频解码,就是将视频文件中的音频部分抽离出来,生成PCM文件,并使用A...

  • ffprobe 使用小结

    ffprobe 是ffmpeg的一个工具包,主要用于探测音视频文件的各种信息,这篇文章主要是总结记录下ffprob...

网友评论

      本文标题:ffmpeg/ffprobe查看音频视频文件信息并输出为json

      本文链接:https://www.haomeiwen.com/subject/irefgdtx.html