由于我要和我女朋友看电影,所以要搭建个直播流网站,那样我们就能独享私人影院,没有超管打扰~
首先,需要准备,6个东西
1.gcc-c++ 编译环境
CentOS
yum install -y gcc gcc-c++ autoconf wget
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*
Ubantu
sudo apt-get install build-essential
sudo apt-get install gcc
sudo apt-get install g++
2.openssl 插件
openssl官网:http://www.openssl.org/
tar -zxvf tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
sudo ./config --prefix=/hadoop/sa12/openssl-1.1.1d #prefix指定安装目录(自定义)
sudo make
sudo make install
3.pcre 插件
pcre官网:http://www.pcre.org/
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
sudo ./configure --prefix=/hadoop/sa12/pcre-8.35 #prefix指定安装目录(自定义)
sudo make
sudo make install
4.zlib 插件
zlib官网:http://www.zlib.net/
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
sudo ./configure --prefix=/hadoop/sa12/zlib-1.2.8 #prefix指定安装目录(自定义)
sudo make
sudo make install
5.nginx-rtmp-module 流
官方github Git地址:https://github.com/arut/nginx-rtmp-module
unzip nginx-rtmp-module-master.zip
6.nginx 基础
tar -zxvf nginx-1.14.0.tar.gz
#cd nginx-1.14.0/
源码路径(非安装目录): --with--xxx=DIR DIR一定是源码路径(解压后的路径)
add-module=DIR DIR是unzip解压rtmp的的路径
#./configure --prefix=/usr/local/nginx-1.14.0 --with-openssl=/hadoop/sa12/openssl-1.1.1d --with-pcre=/hadoop/sa12/pcre-8.35 --with-zlib=/hadoop/sa12/zlib-1.2.8 --add-module=/hadoop/sa12/nginx-rtmp-module-master --with-http_ssl_module
#sudo make
#sudo make install
按照上面,一步一步来,就不会报错。有问题请评论区留言。我会进一步完善不足之处。
vi /usr/local/nginx-1.14.0/conf/nginx.conf
增加如下配置
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4096;
application hls { #rtmp推流请求路径
live on;
hls on;
hls_path /你的流存放路径; #hls_path需要可读可写的权限。
hls_fragment 5s; #一个片段含5秒内容,也就是1给文件含有5秒的内容进行保存
}
}
}
修改http中的server模块:
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
启动nginx
/usr/local/nginx-1.14.0/sbin/nginx -c /usr/local/nginx-1.14.0/conf/nginx.conf
查看是否启动成功
ps-ef |grep nginx
ok成了,接下来使用obs推流
打开i后是这样的(下面的箭头已经说明了各种功能)
这里注意(必须有摄像头和麦克风),笔记本可能会出现安装后用不了的情况,因为是双显卡,在显卡中设置添加obs为集成显卡显示即可。(双显卡,不指定的话,它不知道使用哪一个,会导致无法使用)
hls就是你刚刚配置nginx.conf中的application,串流密匙可以先不设置,设置后是关于你拉流的时候,需要加上密匙才能看到你的直播。(不设置,别人知道你的路径也可以直接拉流,也就是能看你的直播)
设置后保存,点开始推流。
去配置的 hls_path(刚刚nginx.conf里面配置的存放流文件的路径) 目录查看是否产生了文件
cd 你的hls_path路径
成功~
现在推流,以及服务器上的配置,完成了(最复杂 的部分你已经解决了)现在回到客户端拉流,这里有2钟一种是js,直接拉流。不安全(也就是斗鱼,b站 之类的直播),谁都能看。另一种是vlc app这里使用的是vlcAPP
这里是手机,使用
第一步打开
等待5秒左右
ok,直播流搭建完成,并且测试成功。就是每过5秒因为包的原因会有短暂延迟。有朋友能解决的,请留言
参考资料:
https://blog.csdn.net/l1028386804/article/details/80022437
https://blog.csdn.net/baidu_19473529/article/details/80781623