- 0
- 0
- 约1.55千字
- 约 7页
- 2019-09-27 发布于江苏
- 举报
RTSP协议转换RTMP直播协议
RTSP协议也是广泛使用的直播/点播流媒体协议,最近实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到FMS、Red5、wowza server等RTMP服务器,以实现flash观看RTSP直播源的需求。程序同时也具备从FLV文件获取输入数据并转换RTMP直播。实现的思路分享如下。
要点分析
首先,程序的主要目的,是从多路RTSP输入源中提取AAC编码的音频和H.264编码视频数据,并生成RTMP数据包,然后组装RTMP推送协议,并发往RTMP服务器。在发送的过程中,要求可以从RTSP数据源切换到具有相同h.264和aac编码的FLV文件中,并不影响RTMP直播。因此,本程序的关键点有以下部分:
1.RTSP直播流的读取
2.H.264和AAC编码数据的分析、处理
3.FLV文件数据的提取及与RTSP直接的切换和衔接
4.RTMP数据包封装
5.RTMP推送协议
有了关键点,就可以一项一项的去分析。
设计思路
根据上面分析的要点,首先要选择RTSP直播协议的读取。我们不需要从零做起,网络上有很多和RTSP相关的开源项目可以使用或借鉴,我选择了Live555。
Live555是一个跨平台的流媒体解决方案,主要支持RTSP协议,好像也支持SIP(这个也是我马上研究的重点,之后会写文章研究SIP相关的技术实现)。Live555实现了RTSP包括服务器-客户端的整套结构,是很知名的一个开源项目。网上有很多关于Live555学习和使用的文章,我就不具体介绍了。
H.264和AAC数据的分析处理,这个对于从没做过相关项目开发的人来说,应该是一个难点,主要是相关概念的理解。好在我一直在做这块,也比较好弄。
第4和第5点,可以参照文章“RTMP协议发送H.264编码及AAC编码的音视频(/haibindev/archive/2011/12/29/2305712.html),实现摄像头直播”的技术方法,来加以实现。因此,主要需要处理的就是RTSP直播流数据的获取,以及对其中H.264和AAC编码数据的处理。
于是可以画出大体结构如下:
RtmpThread的主要工作就是发送音频数据流的解码信息头和视频数据流的解码信息头,并不断从DataBufferQueue中取出数据,封装为RTMP Packet,发送出去。流程如下列代码所示:(process_buf_queue_,即是上图中的DataBufferQueue)
逻辑与实现
1.?程序框架和模块说明
2. 主要接口
RtspCapture是我的程序里管理RTSP直播数据流和分析处理的类,接口很重要,基本上这个设计就可以。
他所使用的live555变量,这里ourRTSPClient实际就是RTSPClient的简单继承
3.RtspCapture调用live555的主要流程
A. 首先,在RtspCapture构造函数初始化
B. 在StartRtsp函数中,创建RtspClient,并发送describe命令,开始获取sdp。回调函数就是continueAfterDESCRIBE。在这里创建MediaSession,之后再发送setup命令,等,这些都可以在live555的例子以及网上的说明中看到。
C. 还有一个关键点,就是要在自己的线程循环中,调用live555 environment的事件循环,就像这样
4. 对rtsp回调h264数据的分析处理
这里演示了,如何从rtsp回调的h264数据中,提取sps和pps信息。里面的parse函数,是live555自带的。
调用方式
您可能关注的文档
- Ps鼠绘金发美女教程.doc
- PS黄金教程——Photoshop黄金实例教程1000例(经.doc
- PT100温度传感器参数介绍.doc
- PT2399是一种典型的卡拉OK回声处理集成电路.docx
- PTC加热器原理及功能.doc
- PTC-CREO-3.0-画弹簧的步骤.docx
- PTP模块通讯实例.docx
- PUMA树立品牌形象提高优质服务.doc
- PUPUA-2X10MW电厂凝汽器胶球清洗装置-技术规范书316L(DOC).doc
- PU板屋墙面的安装.doc
- JJG 543-2026心电图机检定规程.pdf
- 《JJG 543-2026心电图机检定规程》.pdf
- GB/T 47045-2026乘用车车载信息优先级的确定方法.pdf
- 《GB/T 12668.2-2025调速电气传动系统 第2部分:一般要求 交流调速电气传动系统额定值的规定》.pdf
- 中国国家标准 GB/T 12668.2-2025调速电气传动系统 第2部分:一般要求 交流调速电气传动系统额定值的规定.pdf
- 中国国家标准 GB/T 31487.1-2025直流融冰装置 第1部分:系统设计.pdf
- GB/T 12668.2-2025调速电气传动系统 第2部分:一般要求 交流调速电气传动系统额定值的规定.pdf
- GB/T 31487.1-2025直流融冰装置 第1部分:系统设计.pdf
- 《GB/T 31487.1-2025直流融冰装置 第1部分:系统设计》.pdf
- 《GB/T 31418-2025道路交通信号控制系统术语》.pdf
原创力文档

文档评论(0)