项目简介:视频直播网站由三个部分构成:1.推流端 2.服务器 3.拉流端。在该项目中,推流端用ffmpeg完成,服务器由NGINX+RTMP模块完成,拉流端使用videojs完成。
一、开发环境简介:
推流端:系统:UBUNTU 16.04 工具:ffmpeg
服务器:系统: UBUNTU 16.04 工具:NGINX+RTMP
拉流端:系统:WINDOWS 10 工具:PHPSTORM
二、构建服务器
服务器由NGINX+RTMP构成。NGINX是HTTP服务器,RTMP是附加模块。
其中NGINX我选择的是用源码编译方式进行安装,因为这种方式可以自定义安装指定的模块以及最新版本。
首先配置各项依赖库。
1.安装gcc g++依赖库
sudo apt-get install build-essential
sudo apt-get install libtool
2.安装pcre依赖库
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
3.安装zlib依赖库
sudo apt-get install zlib1g-dev
4.安装SSL依赖库
sudo apt-get install openssl libssl-dev
5.安装NGINX
#下载NGINX(到HOME目录)
wget http://nginx.org/download/nginx-1.13.10.tar.gz
#解压
tar -zxvf nginx-1.13.10.tar.gz
#下载RTMP(到HOME目录)
git clone https://github.com/arut/nginx-rtmp-module.git
#进入NGINX解压目录
cd nginx-1.13.10
#配置
./configure --prefix=/usr/local/nginx --add-module=~/nginx-rtmp-module --with-http_ssl_module
#编译
make
#安装
sudo make install
#打开nginx配置文件
cd /usr/local/nginx/conf/
sudo gedit nginx.conf
#下拉至文档末尾,添加RTMP服务
rtmp {
server {
listen 2018; #服务端口,避开重要端口即可
application live {
live on;
}
application hls_alic{
live on;
hls on;
hls_path /tmp/hls;
}
}
#不要关闭文档,回到http服务配置处,按以下样式对其修改,最后保存并退出
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/nginx-rtmp-module/;
}
location / {
root html;
index index.html index.htm;
}
error_page 404 /404.html
location = /50x.html {
root html;
}
}
}
#开启nginx服务
cd /usr/local/nginx/sbin
sudo ./nginx
#如要查看NGINX服务是否开启,请打开浏览器并输入localhost,如果看到nginx页面即为成功,或使用以下代码
ps -ef|grep nginx
三、配置推流端
简易的推流端使用ffmpeg即可完成。
1.