音视频入门基础: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等文件格式。

相关推荐
却道天凉_好个秋17 分钟前
音视频学习(七十):SVC编码
学习·音视频
全栈软件开发2 小时前
音频在线剪切助手网页版源码
android·音视频
小柯博客4 小时前
STM32MP1 没有硬件编解码,如何用 CPU 实现 H.264 编码支持 WebRTC?
c语言·stm32·嵌入式硬件·webrtc·h.264·h264·v4l2
2501_927541096 小时前
Mac多功能音视频AI处理工具VideoProc Converter AI
macos·音视频
开开心心_Every10 小时前
专业视频修复软件,简单操作效果好
学习·elasticsearch·pdf·excel·音视频·memcache·1024程序员节
Funny_AI_LAB10 小时前
李飞飞联合杨立昆发表最新论文:超感知AI模型从视频中“看懂”并“预见”三维世界
人工智能·算法·语言模型·音视频
EasyCVR19 小时前
智能守护绿水青山:视频融合平台EasyCVR在森林防火监控中的实战应用
音视频
ACP广源盛1392462567319 小时前
GSV1016/ACP#HDMI2.0 HDCP1.4 发射器(TTL/LVDS 输入 + 音频插入)技术解析
单片机·嵌入式硬件·音视频
卜锦元20 小时前
Mediasoup的SFU媒体服务转发中心详解(与传统SFU的区别)
音视频·webrtc·媒体
小影译片20 小时前
zmaiFy音频转录介绍
音视频