您的位置:首页 > 其它

如何实现wireshark抓包视频数据文件的正常播放

2017-11-23 14:56 4507 查看
使用wireshark抓包工具,将视频数据存储为能够播放的文件,博主的视频数据是h264的裸码流。

工具/原料

wireshark

方法/步骤

1

首先是要将视频包抓取下来,可以在客户端前串一个hub来抓包,如果没有hub,只有交换机,那就要使用端口镜像的方法了,将另一端口的流量镜像至抓包机器的接入端口,否则交换机口子的抓包。

2

假设前面的设置都没有问题,现在已经获得了cap结尾的抓包文件,下一步就是要开始解包了,打开wireshark之类的抓包软件,然后选择左上角的文件--打开,选中本地硬盘中的抓包文件打开。



3

一般视频的抓包文件都比较大,动辄几百M,因此打开抓包文件视机器和硬盘的速度会要一些时间,而且系统会进入假死状态,不要着急,wireshark在左下角有个绿色进度条,走到100%就完成了。



4

打开抓包后,上面显示的就是h264包,从左至右依次是序号、时间,源IP和目的IP,后是包类型、长度以及包的类型。中间的菜单还能看到包的详细信息等,一应俱全。



5

下一步就开始获取Ts文件了,首先我们应该知道视频的源IP和目的IP,这样就可以把流筛选出来,从而避免很多不必要的信息掺杂的包中,这一点可以通过在源地址或目的地址上右键点击,然后选择作为应用器筛选完成。



6

把非源地址和目的地址的包筛选后,再右键单击任何一个抓包,在弹出菜单中选择<追踪流>菜单,如下图如示,视频流可能为TCP也可能为UDP流,在小编的例子中选择了UDP流。



7

系统再次进入假死状态,硬盘狂闪,如下图,同样可以参考下方的绿色进度条来参考系统的完成度,这里小编建议下抓包文件不要过大,在这个版本下400M以上的文件真会让抓包软件报错退出的。



8

全部完成的图如下,一堆乱码,其实是ASCII码,这种码是没法播放的,需要在下方的显示数据为那里由原来ACCII码选为<原始数据>,很多用过以前版本的人可能不习惯,早先版本的缺省值就是原始数据。



9

换成原始数据后又要重新扫描包,和第7步第一样进度条走完才显示如下图的状态,全是16进制的数据,这次就全部完成了,选择下方的,save as菜单,把文件保存好。



10

保存文件时如果知道原来视频文件的编码格式就直接保存为带后缀名的文件,如比小编这个视频原来是h264文件,现在也就保存为1.ts,记住保存的目录名,下一步要播放器打开了。



11

强烈不建议使用常见的播放器,那些播放器的纠错能力都太强,哪些视频文件在传输过程中有错误,很多时候也发现不了,建议使用VLC这种较原生态的播放器,同时把debug打开来显示是否有视频异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wireshake h264
相关文章推荐