音视频入门基础: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有效载荷结构的解析》。

相关推荐
RTC实战笔记10 天前
Android 实时音视频接入教程:媒体补充增强信息(SEI)
音视频·媒体·rtc
潜创微科技11 天前
HDMI1.3 无线传输芯片方案 空旷 150 米量产级音视频方案
音视频
VidDown11 天前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
换个昵称都难11 天前
音频格式之WAV
音视频
AI创界者11 天前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
u1521096484911 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
VidDown11 天前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
EasyDSS11 天前
全能音视频平台/私有化音视频系统EasyDSS!直播/点播/会议/集群对讲一站式落地
音视频
Damon_X11 天前
车载音频复习
音视频
3DVisionary11 天前
告别数据中断:XTDIC-VG视频引伸计在金属疲劳测试中3个真实案例
人工智能·音视频·应用案例·xtdic-vg·视频引伸计·疲劳测试·实战复盘