- 博客(5)
- 收藏
- 关注
原创 Wireshark Lua: 一个从RTP抓包里导出H.264 Payload,变成264裸码流文件(xxx.264)的Wireshark插件
抓取一个包含H.264 Payload RTP包的SIP会话或RTSP会话后,用Wireshark的Play功能只能播放声音,不能播放视频。把RTP payload直接导出成文件后也是不能直接播放的,因为H.264 over RTP封包是符合RFC3984规范的,必须按照该规范把H.264数据取出来后,组成NALU,放到avi/mp4或裸码流文件等容器里后才能播放。 本人写了一个wir
2012-03-15 23:43:47 29100 23
原创 wirshark lua: 横跨多包解析方法,混搭tap与postdissector解析器(RTP timestamp差值为例)
在分析抓包时,有时需要横跨多个包计算,比如计算所有RTP包的timestamp与之前RTP包的timestamp的差值,这样可以一目了然看出timestamp是否有异常波动。理想方式是把这个计算出来的差值直接放到RTP信息后面,但wireshark lua目前没有提供可以在某协议dissector解析完后调用自己lua写的dissector的方法,除了http body可借助一些特殊的tabl
2012-03-04 01:01:19 5740
原创 RTSP回放时如何通过RTP的timestamp计算npt时间
客户端通过RTSP的PLAY方法开始播放、定位播放、快速/慢速播放(Scale)某非实时视频时,客户端会通过Range头字段指定npt时间,即让服务器开始从npt指定时刻开始播放视频(npt即播放位置离文件开始部分的相对时间)。播放开始后,下一次发送PLAY命令前,客户端需要根据服务器发来的RTP timestamp计算当前收到的帧的npt时间。客户端与服务器同步npt时间客户端可以在
2012-03-03 23:26:43 28119 5
原创 RTP timestamp与帧率及时钟频率的关系
RTP timestamp是用时钟频率(clock rate)计算而来表示时间的。RTP timestamp表示每帧的时间,由于一个帧(如I帧)可能被分成多个RTP包,所以多个相同帧的RTP timestamp相等。(可以通过每帧最后一个RTP的marker标志区别帧,但最可靠的方法是查看相同RTP timestamp包为同一帧。) 两帧之间RTP timestamp的增量
2012-03-03 22:16:38 26766
原创 实用命令:利用openssl和xxd命令把16进制字符串转换为base64字符串或把base64转成16进制表示
把16进制字符串转换为base64字符串:$ echo 6742c016888b50580934200002bf20002bf20040 | xxd -r -ps | openssl base64Z0LAFoiLUFgJNCAAAr8gACvyAEA=把base64字符串转换为16进制字符串:$ echo Z0LAFoiLUFgJNCAAAr8gACvyAEA= | opens
2012-03-03 21:28:00 12415 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人