通过ffprobe查看多媒体文件的信息

2023-11-23 16:59

本文主要是介绍通过ffprobe查看多媒体文件的信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

./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:

image.png


如上图所示: -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.png


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

 

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

-show_frames

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

image.png

 

字段说明
media_type帧的类型(视频、音频、字幕等)
key_frame是否关键帧
pkt_ptsFrame包的pts
pkt_pts_timeFrame包的pts的时间显示
pkt_dtsFrame包的dts
pkt_durationFrame包的时长
pkt_posFrame包所在文件的偏移位置
width帧显示的宽度
height帧显示的高度
pix_fmt帧的图像色彩格式
pict_type帧类型

-show_streams

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

image.png

 

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



 

这篇关于通过ffprobe查看多媒体文件的信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419403

相关文章

Linux中查看操作系统及其版本信息的多种方法

《Linux中查看操作系统及其版本信息的多种方法》在服务器运维或者部署系统中,经常需要确认服务器的系统版本、cpu信息等,在Linux系统中,有多种方法可以查看操作系统及其版本信息,以下是一些常用的方... 目录1. lsb_pythonrelease 命令2. /etc/os-release 文件3. h

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分