音视频入门基础:RTP专题(20)——通过FFprobe显示RTP流每个packet的信息

news/2025/3/17 10:42:31/

通过FFprobe命令:

ffprobe -protocol_whitelist "file,rtp,udp" -of json -show_packets XXX.sdp

可以显示SDP描述的RTP流每个packet(数据包)的信息:

对于RTP流,上述的“packet”(数据包)是指:该RTP Packet去掉RTP header后的数据,即RTP payload中的数据。

其中:

codec_type:该RTP Packet的payload中存贮的是视频还是音频数据。

stream_index:该RTP Packet对应的这路流的流索引,即这路流是RTP流中的第几路音视频流。

dts:该RTP Packet的以AVStream的time_base为单位的解码时间戳。

dts_time:该RTP Packet的以秒为单位的解码时间戳。

pts:该RTP Packet的以AVStream的time_base为单位的显示时间戳。该值是以其RTP header中的timestamp属性为基准计算出来的显示时间戳。

pts_time:该RTP Packet的以秒为单位的显示时间戳。

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

duration_time:该RTP Packet占用的以秒为单位的时间值。

size:即AVPacket结构体中的成员变量size,为AVPacket的成员变量data指向的缓冲区的大小。如果该RTP Packet的有效载荷类型为H.264,该值等于:RTP Packet的payload中的数据加上“0001”起始码的总长度。

如果该RTP Packet的有效载荷类型为H.264:

1.当有效载荷结构为Single NAL Unit Packet时,该RTP packet的有效载荷中只包含一个NALU,AVPacket的成员变量data存贮该RTP packet的payload加上“0001”(四字节)的起始码后的数据。

2.当有效载荷结构为STAP-A时,该RTP packet的有效载荷中可能包含多个NALU,AVPacket的成员变量data存贮该RTP packet的payload中的每个NALU的数据(可能包含多个NALU,每个NALU的数据之间以“0001”分隔)。

3.当有效载荷结构为FU-A,一个NALU可能会被分割成多个RTP  Packet,AVPacket的成员变量data存贮该FU-A的FU payload(前面加上“0001”的起始码)中的数据,即该NALU在该RTP  Packet中的分片数据。

具体可以参考:《音视频入门基础:RTP专题(14)——FFmpeg源码中,对H.264的各种RTP有效载荷结构的解析》。


http://www.ppmy.cn/news/1579789.html

相关文章

【系统设置】安装CUDA Toolkit,提升本地大模型运行效率

目标 安装CUDA Toolkit,提升本地大模型运行效率。 背景知识 CUDA(Compute Unified Device Architecture)是由NVIDIA开发的并行计算平台和编程模型,它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。 CUD…

贪心算法五

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…

关于stac和clac的进一步细节及EFLAGS

一、背景 在之前的博客 内核态代码直接使用用户态数据的注意事项_内核态如何打开用户态文件-CSDN博客 里,我们x86平台上在内核态里使用用户态数据的相关细节,即需要使用stac和clac函数来打开/关闭内核态访问用户态数据的权限,这里说是权限&a…

kong搭建一套微信小程序的公司研发环境

一、物理架构 微信小程序H5部署在微信公众平台,需要通过外网域名访问到公司机房。 为了区分生产和研发环境,需要创建两个外网域名。 另外,微信小程序需要配置业务域名, 请参考文章- 微信小程序的业务域名配置(通过kong网关的pre…

生活中的可靠性小案例11:窗户把手断裂

窗户把手又断了,之前也断过一次,使用次数并没有特别多。上方的图是正常的把手状态,断的形状如下方图所示。 这种悬臂梁结构,没有一个良好的圆角过渡,导致应力集中。窗户的开关,对应的是把手的推拉&#xff…

五子棋小游戏-简单开发版

一、需求分析 开发一个基于 Pygame 库的五子棋小游戏,允许两名玩家在棋盘上轮流落子,当有一方达成五子连珠时游戏结束,显示获胜信息,并提供退出游戏和重新开始游戏的操作选项。 1.棋盘显示 : 显示一个 15x15 的五子棋…

C语言动态内存管理(上)

欢迎拜访:雾里看山-CSDN博客 本篇主题:C语言动态内存管理(上) 发布时间:2025.3.16 隶属专栏:C语言 目录 为什么需要动态内存管理静态分配的局限性动态分配的优势 动态内存函数malloc函数介绍函数使用 free函数介绍函数使用 calloc…

基于SSM+Vue+uniapp的科创微应用(可改为研学)小程序+LW示例

1.项目介绍 系统角色:管理员、企业、普通用户功能模块:用户管理、企业管理、场地管理、场地类型管理、预约参观管理、场地预约管理、活动信息管理、报名信息管理、试题管理、试卷管理等技术选型:SSM,Vue(后端管理web&…