RTMP(Real-Time Messaging Protocol)即实时信息传输协议,它是Adobe(原Macromedia)公司开发的一个向专业应用及消费网络发展的网络传输协议。它主要用在多媒体系统中,支持音频和视频流网络流媒体,一种因特网上高级交互应用。它是基于TCP协议和Flash Player的应用,既可以供客户端读取,又可以向客户端推送信息。
1、实现RTMP协议的前提条件
在实现 RTMP协议前,需要准备以下条件:
(1)准备符合RTMP协议标准的设备。这些设备包括流媒体服务器(服务器端)、客户端(客户端端)以及符合 RTMP 的流媒体网关(接入层)。典型的设备有 Wowza Streaming Engine、Adobe Flash Media Server 等。
(2)支持 RTMP 的客户端应用程序也必不可少。例如 Adobe Flash Player 是一款常用的应用程序。客户端需要与服务器通信,以启动 RTMP 会话并实现音视频流传输。
(3)拥有一套完善的网络结构,例如负载均衡服务器、视频编解码设备、流媒体路由等。
2、架构结构
实现 RTMP 协议的顶层架构,由流媒体服务器,客户端应用程序,网络结构组成:
(1)流媒体服务器,是此系统的核心组件,其特点是支持点播、直播、弹幕等多种应用场景,提供丰富的 API 支持,实现多媒体应用的灵活配置。
(2)客户端应用程序,支持多种赛码,支持 RTMP 协议,实现用户的音视频传输。
(3)网络结构,是一套系统架构,涵盖多层网络,其中包括核心组件,负载均衡,网络路由,流媒体路由,播放缓冲等系统构建要素,是实现高质量流媒体服务的关键。
3、启动服务
实现RTMP协议后,需要对其里面的流程作出规划,以便实现服务的流畅性,具体的服务流程如下:
(1)首先,客户端向服务器发起 RTMP 连接,服务器收到连接后开始确认连接,并返回反馈响应给客户端,客户端收到反馈响应后开始连接会话,并发送初始数据流到服务器中。
(2)客户端开始流收集,包括访客信息,播放偏好等,并发送到服务器中。
(3)服务器根据客户端发送的信息,调取相关的文件,比如视频片段、音频片段,并发送到客户端中。
(4)客户端接收、解析服务器传来的信息,并根据需要对客户端数据进行加工,以保证可以正确地解析和渲染出播放画面。
(5)客户端完成播放后,向服务器发送停止信号,服务器收到停止信号,关闭会话,并释放资源。
4、覆盖平台支持
RTMP协议涵盖了多种终端,满足了对不同终端的要求,支持的平台包括浏览器端:谷歌Chrome、火狐等;客户端:iOS和Android。具体的支持列表如下:
浏览器端:
-Google Chrome -火狐
客户端:
- iOS:Android :Lollipop 以上
- Android :KitKat 以上
5、总结
实现RTMP协议,需要准备如上的前提条件并搭建标准的架构,明确服务启动流程,并对覆盖平台有所了解。另外,要根据实际应用场景,灵活调整系统结构,满足用户需求,有效提高用户访问体验。