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

通过FFprobe命令:

bash 复制代码
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有效载荷结构的解析》。

相关推荐
EasyCVR1 小时前
视频汇聚平台EasyCVR:构建通信基站“可视、可管、可控”的智慧安防体系
服务器·数据库·音视频
顾道长生'13 小时前
(Arxiv-2025)BINDWEAVE:通过跨模态整合实现主体一致性的视频生成
音视频
2301_7644413318 小时前
Streamlit搭建内网视频通话系统
python·https·音视频
xiaohai@Linux1 天前
STM32上使用HAL库完美实现驱动MAX98357声卡模块(I2S+DMA+音频环形缓冲区)
stm32·单片机·嵌入式硬件·音视频
EasyCVR1 天前
构筑码头数字防线:视频汇聚平台EasyCVR全方位码头海岸线监管方案
音视频
TG:@yunlaoda360 云老大1 天前
谷歌发布 Veo 3.1 视频生成模型:有声电影、长视频叙事与人物定制的实测与展望
人工智能·音视频·googlecloud
听雨~の(>^ω^<1 天前
OSTrack视频单目标跟踪
人工智能·目标跟踪·音视频
艾思软件-app开发公司1 天前
多平台视频下载工具的实现原理与技术实践, 免费下载视频下载工具
音视频·视频·视频下载·视频下载工具
国服第二切图仔2 天前
鸿蒙 Next 如何使用 AVRecorder 从0到1实现视频录制功能(ArkTS)
华为·音视频·harmonyos
小正太浩二2 天前
视频去动态水印软件HitPaw安装和使用教程
音视频·视频无水印软件