视频直播开发随着直播的火爆也进入了白热化阶段,各大企业对于自己搭建视频直播平台也满怀热情,那么,自己搭建直播平台都需要注意哪些事项呢?
首先,视频有它的播放协议。原则上,RTSP,RTMP,HTTP都可以做直播和点播,但一般做直播用RTSP和RTMP,做点播用HTTP。而我们的流媒体服务器则是支持三种视频流的输出,既可以用作直播,也可以用作点播,十分便捷。
其次,直播客户端将实时视频推送到NGINX的RTMP模块。RTMP模块会根据配置将视频流转换成HLS文件。这时,HLS文件可以使用两种模式播放。一是点播VOD模式,下载当前时间点可以获取到所有index文件和ts文件,并播放。这种模式允许客户端访问全部内容,不一定是实时内容。二是Live 模式,实时生成m3u8和ts文件。它的索引文件一直处于动态变化的,播放的时候需要不断下载index文件,以获得最新生成的ts文件播放视频。
一般来说,实况直播时,会有一些延时。对于如何降低直播延时的问题,我之前也写过:直播延时有几种方法可以降低延时,大家如果碰到延时的情况可以尝试下。
总结下来,直播的模块划分有以下几个方面:
视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。技术:webRTC(用途:H5视频录制)
视频播放端:可以是电脑上的播放器,手机端的 Native 播放器,还有就是 H5 的 video 标签等,目前还是已手机端的 Native 播放器为主。技术:HLS协议或RTMP协议(用途:视频播放)、ffmpeg(用途:使用RTMP协议时进行移动端视频解码)
视频服务器端:一般是一台 nginx 服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、nginx rtmp-module 或SRS(simple-rtmp-server)(用途:流服务器)
企业自己开发视频直播系统总会遇到各式各样的困难,而且会花费大量的时间、精力,倒不如用可以进行二次开发的流媒体服务器,一整套的视频直播或点播系统可以直接进行使用。