RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放

最近有点时间,有点兴趣简单学习了下RTSP与RTP流媒体播放功能,并实现之,中间配合wireshark调整,已能播放。

代码:https://download.csdn.net/download/lbo4031/10841733

不熟悉UML,随意画了下类间关系。1:1与1:N的关系图

 

 

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第1张图片

 

以下画几个饼:

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第2张图片

 

以下内容参考:

作者:AnnyFroHZ

来源:CSDN

原文:https://blog.csdn.net/volvetandanny/article/details/47087641

 

清晰的文档版本在本人下载资源有上传:

https://download.csdn.net/download/lbo4031/10841758

 

分析

Wirkshark版本 2.6.4

 

  1.        右键,选择decode as

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第3张图片

 

 

  1.        (none) -> 下拉选择RTP –> OK

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第4张图片

 

  1.        Edit -> perference -> protocol -> H264

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第5张图片

 

H.264 -> 填入RTPplayload type: 97

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第6张图片

 

自动分析如下:

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第7张图片

 

保存RTPplayloadH264码流

 

1. 首先安装wireshark软件,这个用过的人都知道它的强大之处

2. 查看安装路径下是否存在init.lua,确保disable_lua = false

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第8张图片

 

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第9张图片

  1.        init.lua的最后加上dofile(DATA_DIR.."rtp_h264_extractor.lua")

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第10张图片

  1.        rtp_h264_extractor.lua这个文件放在init.lua同一个路径下

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第11张图片

5. wireshark抓取H264视频码流,最好过滤掉其他码流

6.右键点击H264udp包,选择"Decode as...",再选择Transport中的rtp选项,就解析成rtp包了

7.查看rtp包的payload type,比如说type96,那么在wireshark工具栏选择Edit->preferences->protocols->H264, H264 dynamic payload types设成96

8.现在就可以选择点击tools下的"Extract h264 stream from RTP"菜单项

RTSP和RTP服务器推送H264码流,VLC及MPLAYER多路客户端播放_第12张图片

9.这样就可以生成dump.264,一般会放在与码流文件同一个路径下,由于环境变量的不同,也可能放在其他路径下

10.该文件rtp_h264_extractor.lua目前已经支持了排序,FU-ASTAP-A等常见的rtp h264打包方式

11.下载该文件的路径在https://github.com/volvet/h264extractor

 

 

 

你可能感兴趣的:(RTSP)