RTSP协议转换RTMP直播协议_第1页
RTSP协议转换RTMP直播协议_第2页
RTSP协议转换RTMP直播协议_第3页
RTSP协议转换RTMP直播协议_第4页
RTSP协议转换RTMP直播协议_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 编码的音 视频 实现摄像头直播 的技术方法 来加以实现 因此 主要需要处理的就是 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 数据的分析处理数据的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论