音视频入门基础:H.264专题(22)——通过FFprobe显示H.264裸流每个packet的信息

=================================================================

音视频入门基础:H.264专题系列文章:

音视频入门基础:H.264专题(1)------H.264官方文档下载

音视频入门基础:H.264专题(2)------使用FFmpeg命令生成H.264裸流文件

音视频入门基础:H.264专题(3)------EBSP, RBSP和SODB

音视频入门基础:H.264专题(4)------NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介

音视频入门基础:H.264专题(5)------FFmpeg源码中 解析NALU Header的函数分析

音视频入门基础:H.264专题(6)------FFmpeg源码:从H.264码流中提取NALU Header、EBSP、RBSP和SODB

音视频入门基础:H.264专题(7)------FFmpeg源码中 指数哥伦布编码的解码实现

音视频入门基础:H.264专题(8)------H.264官方文档的描述符

音视频入门基础:H.264专题(9)------SPS简介

音视频入门基础:H.264专题(10)------FFmpeg源码中,存放SPS属性的结构体和解码SPS的函数分析

音视频入门基础:H.264专题(11)------计算视频分辨率的公式

音视频入门基础:H.264专题(12)------FFmpeg源码中通过SPS属性计算视频分辨率的实现

音视频入门基础:H.264专题(13)------FFmpeg源码中通过SPS属性获取视频色彩格式的实现

音视频入门基础:H.264专题(14)------计算视频帧率的公式

音视频入门基础:H.264专题(15)------FFmpeg源码中通过SPS属性获取视频帧率的实现

音视频入门基础:H.264专题(16)------FFmpeg源码中,判断某文件是否为H.264裸流文件的实现

音视频入门基础:H.264专题(17)------FFmpeg源码中,获取H.264视频的profile的实现

音视频入门基础:H.264专题(18)------FFmpeg源码获取H.264裸流文件信息(视频压缩编码格式、色彩格式、视频分辨率、帧率)的总流程

音视频入门基础:H.264专题(19)------AVCDecoderConfigurationRecord简介

音视频入门基础:H.264专题(20)------FFmpeg源码中,获取avcC封装的H.264码流中每个NALU的长度的实现

音视频入门基础:H.264专题(21)------FFmpeg源码中,解码AVCDecoderConfigurationRecord的实现

音视频入门基础:H.264专题(22)------通过FFprobe显示H.264裸流每个packet的信息

=================================================================

通过FFprobe命令:

bash 复制代码
ffprobe -of json -show_packets XXX.h264

可以显示H.264裸流每个packet(也称为数据包或多媒体包)的信息:

其中:

codec_type:该数据包对应的这路流是视频还是音频。

stream_index:该数据包对应的这路流的流索引,即这路流是媒体文件中的第几路音视频流。

duration:即AVPacket结构体中的成员变量duration,为该视频packet占用的以AVStream的time_base为单位的时间值。

duration_time:该视频packet占用的以秒为单位的时间值。

size:即AVPacket结构体中的成员变量size,为AVPacket的成员变量data指向的缓冲区的大小,也就是该packet的大小(以字节为单位)。

这里对比通过同样的FFprobe命令显示WAV音频文件(具体参考:《音视频入门基础:WAV专题(10)------FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现》)、AAC裸流(具体参考:《音视频入门基础:AAC专题(10)------FFmpeg源码中计算AAC裸流每个packet的pts、dts、pts_time、dts_time的实现》)、FLV文件的信息,会发现通过FFprobe显示H.264裸流packet信息时没有显示pts和dts。这是因为H.264裸流是不携带任何时间戳信息的,时间戳是文件Header中携带的。比如对于FLV文件,其时间戳信息包含在每个Video Tag和Audio Tag的Tag header中。所以要想获取到H.264视频的时间戳得把H.264裸流封装成FLV或MP4等文件格式。

相关推荐
眺望电子-ARM嵌入式25 分钟前
RK3588+XS9922B:I2S-TDM多通道音频采集实例
音视频
DogDaoDao27 分钟前
AV1 帧内预测核心文件 reconintra.c 源码深度解析
音视频·实时音视频·视频编解码·av1·libaom·帧内预测·reconintra.c
不才小强1 小时前
live555源码分析--client流程分析2
音视频
南山有乔木7891 小时前
音频文件怎么从MP3转换成WAV?音频处理、剪辑导入都适用的教程
音视频
AI服务老曹2 小时前
统一安防底座:基于 GB28181 与 RTSP 的边缘计算 AI 视频管理平台架构演进(附 Docker 部署与源码交付机制)
人工智能·音视频·边缘计算
fangcaojushi2 小时前
文创图影 视频生成完整流程
音视频
DogDaoDao3 小时前
深入解析 libaom:AV1 开源编解码库技术分析
google·开源·音视频·视频编解码·hevc·av1·libaom
开开心心就好3 小时前
解决图片无页码添加功能的实用工具
javascript·python·安全·智能手机·pdf·音视频·1024程序员节
EasyCVR13 小时前
国标GB28181视频监控平台EasyCVR行业解决方案深度解读——雪亮工程、智慧城市与智慧交通
人工智能·音视频·智慧城市
“码”力全开16 小时前
打破芯片与协议壁垒:基于 Docker + 边缘计算的 GB28181/RTSP 视频智能管理平台架构设计与源码交付方案
docker·音视频·边缘计算