欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

提取pcap文件中的opus及h265码流的小工具

程序员文章站 2022-07-07 11:54:48
...

背景

在音视频系统的调试中,经常要抓包进行码流分析,所以写了个小工具,可以直接提取pcap格式抓包文件中的码流。现在小工具支持opus和h265的码流提取。

用法

提取h265视频流

  1. 抓包
    在windows下用wireshark抓取数据包,如下图
    提取pcap文件中的opus及h265码流的小工具
    过滤rtp包,记录需要提取的码流的ssrc值,在这里选择0x9f8d9c2c。
  2. 将抓包文件另存为pcap格式,如下图
    提取pcap文件中的opus及h265码流的小工具
    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值(必填)

说明

  1. 这个工具是支持对h265 fu-a的分包模式进行组包提取的。
  2. 在linux下的使用方式:通过tcpdump抓包后,再在windows下用wireshark打开另存为pcap文件,再去提取码流即可。
    (2018-8-9更新) tcpdump抓包需要注意的是如果使用 -i any抓包,tcpdump会将以太网头替换成linux cooked capture头,那么这个工具是无法解析该包头的,所以在用tcpdump抓包时是需要指定网卡抓包的,-i 网卡名 ,就可以通过该工具解析
  3. 工具下载 https://download.csdn.net/download/mo4776/10568559,压缩包中包括上述的h265.pcap文件。