利用WireShark分析H264码流

利用WireShark分析H264码流

2023年7月23日发(作者:)

利⽤WireShark分析H264码流背景:最近在参与⼀个ARM平台的⾳视频传输的项⽬,同事说已经是⾼清视频了,但是显⽰模糊,显然不能达到⾼清要求,于是就想抓包分析⼀下。Step 1:执⾏如下命令,在 ARM 平台上⽤ tcpdump 抓包并保存为 。tcpdump –i eth0 –nn –w -i ⽹络接⼝,-w

-nn:直接以 IP 及 port number 显⽰,⽽⾮主机名和服务名称如果你要将监听所得的封包资料储存下来,⽤这个参数就对了!后⾯接档名tcpdump的

然后启动我们的多媒体通信程序,抓取⼏秒的数据即可。Step 2:⽤ WireShark ⼯具打开 ⽂件。Step 3:右键点击 H264 的 UDP 包,选择“Decode as…”,选择 RTP,点击 OK 之后就解析成 RTP 包了。把UDP 包解析成RTP/RTCP包。Step 4:查看 RTP 包的 payload type,例如我们这⾥是102。

【Dynamic payload types which will be interpreted (理解)as H264; Values mustbe in the range 96 - 127】Step 5:然后在 WireShark ⼯具栏中选择 Edit –> preferences –> protocols –>H264,把“H264 dynamic payload types”设成 102,点击 OK。把RTP Payload映射成实际的媒体格式。⾸先查看RTSP中的SDP的payload_type,⽐如96是H263,97是AMR。那么点击菜单Edit -> Preference -> Protocol, AMR payload_type number填写97, H263填写96,那么payload就可以⾃动解析了。需要注意的是:wireshark 1.0版本以上才⽀持H263和H264Step 6:为⽅便查看,在 Filter 中输⼊“h264”过滤出 H264 数据包,如下。Step 7:选择 SPS(Sequence Parameter Set)(序列参数集),展开 H.264 数据包,找到pic_width_in_mbs_minus1 和pic_height_in_map_units_minus1。Step 8:因此可以算出实际分辨率,X = (21+1)*16 = 352,Y = (17+1)*16 = 288,显然并不是⾼清视频。实例1 使⽤wireshark抓包并检查丢包现象(1)使⽤wireshark抓取所有UDP报⽂(这⾥假定RTP是基于UDP之上的)(2)将抓取到的报⽂解析(解码)为RTP,如下图所⽰:(3)分析报⽂(在报⽂较多且杂的情况下,可⽤excel导出数据查看),发现丢包:Q、请教⼀下 我的序列包 为什么 不是按递增增长的 现在排序全是乱的 请问是什么原因引起的 您知道吗? 现在遇到坎了 感谢 帮助

A、点击下sequence number那⼀栏,看看有⽆排序的选项Q、如果RTP是基于TCP的怎么办?decode as选项中没有RTP,只有RTPproxy怎么办?A、RTP是可基于UDP或TCP的,基于TCP时,wireshark做decode,选项中就没有RTP和RTMP了。很头疼

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690107048a306321.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信