注:此文章含转载内容,如侵权,请联系我来删除;
在调试vlc播放器播放rtp时,由于出现卡顿,所以想把rtp流保存下来播放,看是否是rtp推的问题还是电脑解码问题。网上看到的类似文章,我都没成功,最后通过另外一篇文章解决;
保存的.264视频可以用于测试rtp传输,csdn上有很多测试视频,还要收分,这里想截多少截多少。
1. 关于保存成rtp流:
转载链接:https://blog.csdn.net/volvetandanny/article/details/47087641
转载内容:
由于近来发现网上wireshark获取H264码流的方法都有点错误,为此研究了一下这种方法,最后发现还是可行的,能成功获取H264裸码流。
借鉴的网页:https://wiki.wireshark.org/Lua
http://www.lua.org/
1.首先安装wireshark软件,这个用过的人都知道它的强大之处
2.查看安装路径下是否存在init.lua,确保disable_lua = false
3.在init.lua的最后加上dofile(DATA_DIR.."rtp_h264_extractor.lua")
4.把rtp_h264_extractor.lua这个文件放在init.lua同一个路径下
5.用wireshark抓取H264视频码流,最好过滤掉其他码流
6.右键点击H264的udp包,选择"Decode as...",再选择Transport中的rtp选项,就解析成rtp包了
7.查看rtp包的payload type,比如说type是96,那么在wireshark工具栏选择Edit->preferences->protocols->H264, 把H264 dynamic payload types设成96
8.现在就可以选择点击tools下的"Extract h264 stream from RTP"菜单项
9.这样就可以生成dump.264,一般会放在与码流文件同一个路径下,由于环境变量的不同,也可能放在其他路径下
10.该文件rtp_h264_extractor.lua目前已经支持了排序,FU-A,STAP-A等常见的rtp h264打包方式
11.下载该文件的路径在https://github.com/volvet/h264extractor
12. 也可以在csdn的下载页下载,地址为http://download.csdn.net/detail/volvetandanny/8937395
说明:1. 第4步后,先关闭播放器,再打开,在tools下就有“Extract h264 stream from RTP”菜单了;
2. 不建议采集前打开“Extract h264 stream from RTP”菜单,因为边采集边保存,电脑严重卡顿;
3. dump.264我电脑是在同一路径下;
2. 关于如何播放
网上找了好几个播放器,也都是没办法播放的,后来使用ffplay就可以了,据说可以使用ffmpeg进行转码为MP4或者avi文件;
ffplay是控制台程序,可以将保存的dump.264文件拖动到ffplay图标上或者使用命令行打开;
ffmpeg播放器地址:https://ffmpeg.zeranoe.com/builds/