在流媒体系统中应用的RTMP协议
来源:互联网 发布:svg.js 中文api 编辑:程序博客网 时间:2024/05/29 17:10
什么是RTMP协议
RTMP(Real-Time Messaging Protocol实时消息传送协议)的缩写,它是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的协议。这是一个标准的,未加密的实时消息传递协议,默认端口是1935,如果未指定连接端口,那么flash客户端会尝试连接其他端口,其尝试连接顺序按照下列顺序依次连接:1935、443、80(RTMP), 80(RTMPT)。
RTMP协议应用优势
使用RTMP技术的流媒体系统有一个非常明显的特点:使用 Flash Player 作为播放器客户端,而Flash Player 现在已经安装在了全世界将近99%的PC上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的。用户只需要打开网页,就可以直接收看流媒体,十分方便。
RTMP协议有效的保证了媒体传输质量,使用户可以观看到高质量的多媒体。RTMP采用TCP协议作为其在传输层的协议,避免了多媒体数据在广域网传输过程中的丢包对质量造成的损失。此外RTMP协议传输的FLV封装格式支持的H.264视频编码方式可以在很低的码率下显示质量还不错的画面,非常适合网络带宽不足的情况下收看流媒体。
RTMP协议应用劣势
当然RTMP协议也有一些局限,RTMP基于TCP协议,而TCP协议实时性不如UDP,也非常占用带宽。目前基于UDP的RTMFP协议能很好的解决这些问题,如Adobe的AMS和八百里的流媒体服务器系统。
RTMP协议的播放依赖于Flash Player,优势是直接将直播内容很容易就嵌入网页进行流媒体内容直播。那么它的一个局限也自然是这个协议的播放依赖于Flash Player。 如果没有这个播放媒介,这个协议就没有用武之地了,如苹果的MacOS电脑,苹果iOS手机和移动设备都是屏蔽Flash Player的。 目前谷歌公司也宣布安卓Android系统也不再继续支持Flash Player。
支持此协议输出的流媒体服务器系统
支持该协议的软件包括Adobe Media Server,800Li Media Server,Ultrant Media Server,Wowza Media Server,Red5等。以800Li Media Server 为例,如下图:
输出发布地址及播放地址(发布地址+流名称=播放地址)
输出RTMP协议的嵌入网页的HTML代码(网页嵌入播放器代码)
RTMP协议的播放
网页播放示例
第三方播放器播放示例
相关知识
AMF(Action Message Format)是在flash和flex中与远程服务端交换数据的一种格式。它是二进制格式,Flash应用与服务端或数据库通过RPC交换数据时,通常都采用这种格式。AMF 1 诞生于Flash Player6,发展到现在已经变成了了AMF3。
RTMPT,RTMP的变种,此协建立在HTTP协议之上,是通过HTTP封装后的RTMP协议,默认端口80。
RTMPS,RTMP的另一个变种,此协议是通过SSL(Secure Sockets Layer 安全套接层)加密的RTMP协议,为数据通讯提供安全支持。SSL在传输层对网络连接进行加密,默认端口443。
RTMPE,RTMP的变种,RTMPE是一个加密版本的RTMP,和RTMPS不同的是RTMPE不采用SSL加密,RTMPE加密快于SSL,并且不需要认证管理。如果没有指定RTMPE端口,Flash播放器将像RTMP协议一样依次扫描下列端口,1935(RTMPE),443(RTMPE) ,80(RTMPE),80(RTMPTE)。
RTMPTE,RTMPTE 这个协议是一个通过加密通道连接的RTMPE,默认端口80。
RTMFP,RTMFP是Adobe公司开发的一套新的通信协议,该协议可以让使用Adobe Flash Player的终端用户之间进行直接通信。
- 在流媒体系统中应用的RTMP协议
- RTMP流媒体协议在视频监控系统中应用的优势
- RTMP流媒体协议在视频监控系统中应用的优势
- RTMP流媒体协议在视频监控系统中应用的优势
- 在流媒体系统中应用的HLS协议
- rtmp协议在p2p流媒体系统中的应用(论文转载)
- rtmp 和 http 协议在播放 flv 流媒体的区别
- Nginx rtmp协议的流媒体服务器
- 基于Rtmp协议的流媒体直播实现
- 流媒体协议 之 RTMP
- 流媒体协议—RTMP
- RTMP 流媒体协议
- 流媒体协议RTMP解析
- 流媒体协议RTMP Java实现
- 播放RTMP协议的流媒体的两种选择
- 播放RTMP协议的流媒体的几种选择
- 流媒体协议的具体应用
- 利用nginx搭建http和rtmp协议的流媒体服务器
- No module named request解决方案
- CSS 3 selectors explained
- readonly
- android studio apk打包命名规范
- PHPMyAdmin数据中文乱码问题笔记
- 在流媒体系统中应用的RTMP协议
- RPC框架-对象序列化
- Unable to build: the file dx.jar was not loaded from the SDK folder!
- 用镶嵌数据集管理海量影像数据
- RxJava之基础入门(二)
- 百度地图获取sha1值
- mysql安装配置以及在django中的配置(windows版,以mysql5.6为例)
- Android中如何判断service是否启动并停止
- Android Cordova创建人生第一个APP