背景
在音视频系统的调试中,经常要抓包进行码流分析,所以写了个小工具,可以直接提取pcap格式抓包文件中的码流。现在小工具支持opus和h265的码流提取。
用法
提取h265视频流
- 抓包
在windows下用wireshark抓取数据包,如下图
过滤rtp包,记录需要提取的码流的ssrc值,在这里选择0x9f8d9c2c。 - 将抓包文件另存为pcap格式,如下图
3.使用pcapparse.exe工具提取码流
//提取h265.pcap中的 ssrc为0x1d3d3d7c的h265码流(ssrc需为小写)
pcapparse.exe --e h265.pcap --o out.h265 --c h265 --t 102 --s 0x9f8d9c2c
程序执行完了,会产生一个out.h265文件,可以用PotPlayer直接播放或者使用Elecard进行分析。
提取opus音频流
抓包的步骤同上,命令行如下
pcapparse.exe --e h265.pcap --o out.opus --c opus --t 103 --s 0xf2faeec8
h265.pcap文件中的opus ssrc为0xf2faeec8,程序执行完毕,会产生一个out.opus文件,也可以用PotPlayer播放。
命令行说明
–e 指定pcap格式的文件
–o 指定输出文件名
–c 指定编码格式,目前支持h265和opus
–t 需要提取的rtp payload type值(可选选项)
–s 需要提取的rtp ssrc值(必填)
说明
- 这个工具是支持对h265 fu-a的分包模式进行组包提取的。
- 在linux下的使用方式:通过tcpdump抓包后,再在windows下用wireshark打开另存为pcap文件,再去提取码流即可。
(2018-8-9更新) tcpdump抓包需要注意的是如果使用 -i any抓包,tcpdump会将以太网头替换成linux cooked capture头,那么这个工具是无法解析该包头的,所以在用tcpdump抓包时是需要指定网卡抓包的,-i 网卡名 ,就可以通过该工具解析 - 工具下载 https://download.csdn.net/download/mo4776/10568559 压缩包中包括上述的h265.pcap文件。