注:此文章含轉載內容,如侵權,請聯系我來刪除;
在調試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/
