基于nginx的rtmp直播服务器实现OBS直播

首先,在搭建服务之前先了解下目前主流的几个直播协议:

1、RTMP:

     实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的开放协议。协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。这种方式的实时性比较强,基本能保证延迟在1-2s内,是现在国内直播主要采用的方式之一;不过使用这种协议,就必须安装flash,而H5、IOS、Android并不能原生支持flash,因此这种协议能流行多久,就不得而知了,毕竟移动端才是现在的主流。

2、HLS:

     hls是Apple推出的直播协议,是通过视频流切片成文件片段来直播的。客户端首先会请求一个m3u8文件,里面会有不同码率的流,或者直接是ts文件列表,通过给出的ts文件地址去依次播放。在直播的时候,客户端会不断请求m3u8文件,检查ts列表是否有新的ts切片。这种方式的实时性较差,不过优势是H5、IOS、Android都原生支持。

3、HTTP-FLV:

      HTTP-FLV就是对RTMP协议的封装,相比于RTMP,它是一个开放的协议。因此他具备了RTMP的实时性和RTMP不具备的开发性,而且随着flv.js出现(感谢B站),使得浏览器在不依赖flash的情况下,播放flv视频,从而兼容了移动端,所以现在很多直播平台,尤其是手机直播平台,都会选择它

实现的思路如下:

基于nginx的rtmp直播服务器实现OBS直播

也就是在局域网环境下,利用ngnix搭建rtmp的服务器,在obs上输入自建服务器的流地址,主机上通过播放这个流地址,从而实现直播效果。

参考配置如下:

#点播/直播功能实现配置rtmp协议
rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        application vod {
            play /usr/share/nginx/html/vod/flvs/;#点播媒体存放目录
        }
        application live {
            live on;
        }
      #HLS直播配置
        application hls {
            live on;
            hls on;
            hls_path /usr/share/nginx/html/hls;#视频流存放地址
            hls_fragment 5s;
            hls_playlist_length 15s;
            hls_continuous on; #连续模式。
            hls_cleanup on;    #对多余的切片进行删除。
            hls_nested on;     #嵌套模式。
        }
    }
上一篇:无需中转平台,通过视频解码器RTMP Server服务实现低延时传输


下一篇:视频RTMP协议WEB直播点播平台EasyDSS授权文件上传后仍无法登陆如何处理?