天天看点

用red5/nginx+obs+jwplayer+websocket实现视频直播与弹幕

1、Linux环境准备

linux版的red5下载 https://github.com/Red5/red5-server/releases

nginx-rtmp下载 ,使用linux的git命令:git clone https://github.com/arut/nginx-rtmp-module.git

( 如果没有git进行安装,yum install git)

二者选一就可以了,网上说nginx比red5性能高,而且用的人比较多。nginx要把hls_fragment 调低一点,性能才好,不然会很卡

OBS去官网下载就可以了obs官网

jwplayer 上百度找,或者进入red5目录的/red5-server/webapps/oflaDemo下,会有一个jwplayer.js和player.swf文件。把它复制到自己的项目就能用。

websocket 后面再项目的pom文件中引入依赖即可(用来实时发送弹幕)。

2、red5/nginx-rtmp安装

red5安装教程有很多,网上找教程即可例如这个

注意的是:制作完启动脚本之后,我启动脚本成功但还是访问不了red5主页,这时,我直接到red5目录手动执行./red5.sh文件,就能访问到red5主页。但一退出red5就会关闭,所以可以使用后台启动 ./red5.sh &

nginx-rtmp教程也可以在网上找到。

先下载好nginx以及以下依赖(yum install gcc-c++、openssl、pcre、zlib)

新建一个nginx文件夹usr/local/nginx,并且在nginx使用命令

wget http://nginx.org/download/nginx-1.10.3.tar.gz 
           

把nginx的压缩包下载下来(版本自选)

用git 下载好nginx-rtmp模块到linux(没git的使用yum install git下载)

git clone https://github.com/arut/nginx-rtmp-module.git
           

解压好nginx压缩包进入nginx-1.10.3文件夹。执行下面命令(按照自己nginx和nginx-rtmp路径修改)

./configure --prefix=/usr/local/nginx/nginx-1.10.3  --add-module=/usr/local/nginx/nginx-rtmp-module --with-http_ssl_module
make
make install
           

可能会报错:make: *** No rule to make target

build', needed by

default’. Stop.

解决办法:执行yum -y install openssl openssl-devel后再执行一次上面的操作。

新建一个hls文件夹保存视频

mkdir -p /usr/share/nginx/html/hls; 
           

修改nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

rtmp {
    server {
        listen 1935;  #监听的端口
        chunk_size 4096;   
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /usr/share/nginx/html/hls;    
            hls_fragment 5s;    
        }    
    }    
}  


           
用red5/nginx+obs+jwplayer+websocket实现视频直播与弹幕
用red5/nginx+obs+jwplayer+websocket实现视频直播与弹幕

启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
           

3、OBS使用

如果使用red5服务器就填 rtmp://你的ip/oflaDemo

如果是用的是nginx 就填 rtmp://你的ip:1935/hls

串流码就类似一个名字,随便填。后面拉流的时候需要填一致的。

用red5/nginx+obs+jwplayer+websocket实现视频直播与弹幕

添加来源(可以是摄像头或者桌面、音频等)然后点击推流即可推流到服务器

用red5/nginx+obs+jwplayer+websocket实现视频直播与弹幕

4、用jwplayer来播放视频

red5可以直接在官方给的测试网页测试。我们也可以自己使用jwplayer插件来制作自己的播放页面。

新建一个html,然后引入jwplayer.js。jwplayer.js和player.swf

路径要填写正确,否则引入失败就用不了。

<div id="player" >
        <script type='text/javascript'>
            var player = jwplayer('player').setup({
                'flashplayer': '/jwplayer/player.swf',
                'file': 'feng',//刚刚的串流密钥
                'streamer': 'rtmp://119.23.201.230/oflaDemo',//red5服务器的地址
                // 'streamer': 'rtmp://119.23.201.230:1935/hls',//nginx的地址
                'controlbar': 'bottom',
                'width': videoWidth,
                'height': videoHeight
            });
        </script>
    </div>
           

如果一切正确打开html,就能播放了

用red5/nginx+obs+jwplayer+websocket实现视频直播与弹幕

弹幕在另一篇文章再写吧。

弹幕实现