直播系统实现: nginx + OBS + H5

通过本文将学会在腾讯云服务器上实现简单的直播系统:

1.ngnix 流媒体服务器搭建

2.obs客户端推流

3.浏览器观看直播

一、动手搭建流媒体服务器

安装wget

yum -y install wget

安装 gcc gcc-c++

yum -y install gcc gcc-c++

安装PCRE库

cd /usr/local/
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
tar -zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure
make && make install

安装openssl

cd /usr/local/ 
wget https://www.openssl.org/source/openssl-1.1.0j.tar.gz
tar xf openssl-1.1.0j.tar.gz
cd openssl-1.1.0j
./config
make && make install

如果提示You need Perl 5,则输入下面这个命令。

yum -y install Perl 5

安装zlib

cd /usr/local/ 
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar xf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

下载nginx-rtmp-module 模块

cd /usr/local/
yum -y install git
git clone https://github.com/arut/nginx-rtmp-module.git 

安装nginx

wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar xf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module  --with-pcre=../pcre-8.33 --with-openssl=../openssl-1.1.0j --with-zlib=../zlib-1.2.11
make && make install

如果提示

./configure: error: SSL modules require the OpenSSL library.

执行

yum -y install openssl openssl-devel

如果提示

 ./configure: error: the HTTP rewrite module requires the PCRE library.

执行

yum -y install pcre-devel

我下载并安装了pcre-8.33.tar.gz 和 openssl-1.0.1j.tar.gz ,并没有出现上面的错误

nginx相关命令

启动

/usr/local/src/nginx/sbin/nginx

重启

/usr/local/src/nginx/sbin/nginx –s reload

 

二、obs实现客户端推流

nginx.conf 配置

nginx.conf 的位置一般是在/usr/local/nginx/conf中,打开文件

添加下方代码

rtmp {  
    out_queue     4096;
    out_cork         8;
    max_streams    128;
    timeout        15s;
    server {    
        listen 1935;  #监听的端口 
        chunk_size 4000;     
        application live {
			live on; #开启实时
			hls on; #开启hls
			hls_path /usr/local/nginx/html/live; #rtmp推流请求路径,文件存放路径
			hls_fragment 5s; #每个TS文件包含5秒的视频内容
        }
    }   
} 

添加位置是在http上方 

 

配置写好之后,重启 Nginx 服务器:

sudo nginx -s reload

 如果报错,则说明代码添加的有问题,注意检查。

输入云服务器ip得到以下界面,则说明已经配置好服务器。

下面测试rtmp端口是否打开

输入上述命令,发现端口未开。需要做两件事情。

1.将腾讯安全组的相对应的端口打开。

2.设置推流端口

systemctl stop firewalld 关闭防火墙

安装或更新服务
yum install iptables-services 

再使用 systemctl enable iptables 设置开机启动

iptables -I INPUT -p tcp -m state --state NEW --dport 1935 -j ACCEPT #放行1935端口的 NEW状态请求

service iptables save #保存规则

service iptables restart #重启防火墙保证新的规则加载进来

这样再使用telnet 命令就可以看到

 

说明成功!

obs客户端

下载地址:https://cdn-fastly.obsproject.com/downloads/OBS-Studio-24.0.3-Full-Installer-x64.exe

打开文件--> 设置 按照下面进行设置

 

在来源处,点击+

点击显示此捕获 

如果出现黑屏,可以通过该链接https://jingyan.baidu.com/article/c910274bac0d51cd361d2d18.html 找到解决办法

最终出现上面的内容,说明配置成功。

obs推流

按照下面进行配置,对了,需要在

/usr/local/nginx/html 下建立文件 live文件夹,用于存放相关视频

在obs中进行如下配置:

点击开始推流,就完成了。变成绿色就对了

三、浏览器观看设置

新建文件index.html,如下

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8">

<title>前端播放m3u8格式视频</title>

<link rel="stylesheet" href="http://vjs.zencdn.net/5.5.3/video-js.css">

<script src="http://vjs.zencdn.net/5.5.3/video.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.12.2/videojs-contrib-hls.js"></script>

</head>

<body>

<video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="728" height="410" data-setup='{}'>

<source id="source" src="http://<你的ip>/live/myvideo.m3u8" type="application/x-mpegURL">

</video>

</body>

<script>

// videojs 简单使用

var myVideo = videojs('myVideo',{

bigPlayButton : true,

textTrackDisplay : false,

posterImage: false,

errorDisplay : false,

})

myVideo.play() // 视频播放

myVideo.pause() // 视频暂停

</script>

</html>

将文件放入 /usr/local/nginx/html 目录下,注意里面sorce 是需要修改的。

 

最后打开云服务器,就可以看到直播内容了

参考博客:

[1]https://hywlovexyc.info/blog/archives/572/

[2]https://blog.fuwenwei.com/2019/01/02/H5-live-02.html#32-%E4%BD%BF%E7%94%A8-hls-%E6%92%AD%E6%94%BE

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇的行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值