1.直播中使用的流媒体协议
RTMP,Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议RTMP/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
RTMP基于flash无法在IOS的浏览器播放,但是实时性比HLS要好。
HLS,HTTP Live Streaming(HTTP直播流技术),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务器。包括一个 m3u(8)的索引文件,TS 媒体分片文件和 key 加密串文件。
2.直播的模块划分
视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。技术:webRTC(用途:H5 视频录制)。
视频播放端:可以是电脑上的播放器,手机端的 Native 播放器,还有就是 H5 的 video标签等,目前还是已手机端的 Native 播放器为主。技术:HLS 协议或 RTMP 协议(用途:视频播放)、ffmpeg(用途:使用 RTMP 协议时进行移动端视频解码)
视频服务器端:一般是一台 nginx/srs/... 服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP 协议(用途:上传视频流)、nginx rtmp-module 或 SRS(simple-rtmp-server)(用途:流服务器)
最近一段时间,视频直播可谓大火。在视频直播领域,有不同的商家提供各种的商业解决方案,包括软硬件设备,摄像机,编码器,流媒体服务器等。本文要讲解的是如何使用一些列免费工具,打造一套视频直播方案。