通过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

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

使用Python检查CPU型号并弹出警告信息

《使用Python检查CPU型号并弹出警告信息》本教程将指导你如何编写一个Python程序,该程序能够在启动时检查计算机的CPU型号,如果检测到CPU型号包含“I3”,则会弹出一个警告窗口,感兴趣的小... 目录教程目标方法一所需库步骤一:安装所需库步骤二:编写python程序步骤三:运行程序注意事项方法二