背景介绍
上篇有提到最近在做RTSP加密的方案,并且依次介绍了项目中用到的一些概念,有兴趣可以参考一下原文:
由于项目涉及多端多部门协同开发,且各端并行开发,难以有效验证功能完整性和兼容性。为此,我们进行了前期调研,发现 ZLMediaKit 完美符合各端自测和压测规范,其跨平台、高性能、易用性的特点能够有效解决多端开发中的技术难题,Github源代码如下:
https://github.com/zlmediakit/ZLMediaKit
ZLMediaKit 提供了完备的功能模块和丰富的接口,能够满足各端的功能需求;其高性能架构能够保证系统的高并发处理能力;其易用性能够降低开发难度,缩短开发周期。基于以上优势,我们选择 ZLMediaKit 作为项目的技术方案,并将其分别应用于客户端和服务端进行模块化调试,最终完成系统集成和交付。
其中正好有RTSPS相关内容:
RTSP[S]
RTSP[S] 服务器,支持RTMP/MP4/HLS转RTSP[S],支持亚马逊echo show这样的设备
RTSP[S] 播放器,支持RTSP代理,支持生成静音音频
RTSP[S] 推流客户端与服务器
支持 rtp over udp rtp over tcp rtp over http rtp组播 四种RTP传输方式
服务器/客户端完整支持Basic/Digest方式的登录鉴权,全异步可配置化的鉴权接口
支持H265编码
服务器支持RTSP推流(包括rtp over udp rtp over tcp方式)
支持H264/H265/AAC/G711/OPUS/MJPEG编码,其他编码能转发但不能转协议
如何编译
在github上有相关章节进行编译,已经写的比较详细了,再次就不在累述,大家执行查阅即可:
https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B
如何调试
作为客户端开发人员,自己负责开发 RTSP 客户端。为了与服务端进行联调测试,首先自测时完成了以下工作:
(1)编译 TCPServer 模块: 根据服务端协议规范编译了ZLMediaKit TCPServer 模块,并部署在服务器上。
(2)启动 TCPServer 模块: 启动了 TCPServer 模块,并确保其正常运行,为此交叉验证了RTSPPlayer进行试跑。
(3)进行联调测试: 使用客户端程序与服务端TCPServer模块进行联调测试,验证了客户端与服务端的通信功能。
TCPServer
ZLMediaKit TCPServer的启动过程,之前有参考如下文章,有兴趣的可以执行查阅:
https://blog.csdn.net/cliffordl/article/details/131105855
该系列博客分别进行服务启动,推流创建,拉流创建,重封装,代理服务,http点播等内容介绍,包括整体架构,每一步源码分析都做了详细介绍,还是值得学习的。
有了相关验证程序,自己呢接下来就开始进行调试了。
首先我们用rtsp_player进行交叉验证,其相关log如下:
根据log和抓包,来依次验证自己的代码,以及出错时具体时哪一步有问题,借鉴rtsp_player的流程进行debug,这个过程还是非常有趣的,毕竟抓包已经是加密的,需要通过各种手段来排查问题。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。