什么是RTMP
RTMP(Real-Time Messaging Protocol) 是为了能在基于Adobe Flash平台的技术间实现音频、视频及数据的高性能传输而设计的,包括Adobe Flash Player和Adobe AIR。现在,RTMP已经可以被作为一项开放的标准,用于那些支持视频、音频及其他数据传输的产品或技术,只要传输的数据格式能与Adobe Flash Player适配(如swf、flv、f4v等)。
关于RTMP推流
“视频直播”是近两年互联网产业里很火的一个版块,大大小小的视频网站、APP层出不穷,而RTMP是目前市面上实现视频直播所采用的最主流的数据传输方式。常规的方式是,视频主播通过OBS等推流软件将摄像头捕捉的视频通过RTMP协议传输到指定的服务器地址,服务器将接收到的视频流以m3u8格式保存下来,客户端再通过拉取RTMP数据流的方式获取到视频数据并播放。
以上所描述大概就是一个基本的视频直播模型。那么,如果想要直接在浏览器中向RTMP服务器推流又该如何实现呢?这也并非难事,目前市面上大部分浏览器都可以很好的支持Flash,别忘了,RTMP技术正是为了Flash而生的!只需要几行简单的ActionScript代码,我们就能轻松搞定。
ActionScript & Flex
Flex是Adobe官方提供的一款ActionScript开发框架,Flex提供了丰富的API,并能将ActionScript编译成可被Flash Player执行的swf文件。在开始工作之前,我们需要在开发环境中下载并安装Flex SDK。
通过ActionScript我们可以实现通过摄像头和麦克风捕捉画面和声音并将媒体数据通过网络流推送至RTMP服务器的工作:
cam