(30天)构建直播站~第一版

主播推流
软件地址:http://www.fmpan.com/s/c7xanekb

直播推流地址从直播站PC端获取,步骤:1、注册 2、登录 3、申请直播

(30天)构建直播站~第一版
直播站
1、电脑端

地址(本来是用域名的,备案出现了小问题):

http://www.menghuiyuan.com

1.1、播放页面
(30天)构建直播站~第一版
2、手机端(延迟10秒+)

在pc端观看直播页面扫码

2.1、播放页面
(30天)构建直播站~第一版
云服务
1、厂商:某某云

2、系统:CentOS 6.8 64位

3、配置:CPU:1核 内存: 2 GB 带宽: 1Mbps 磁盘: 40GB

云架构
(30天)构建直播站~第一版
基础软件
1、Nginx1.12 + nginx-rtmp-module

1.1、基础软件环境

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*

1.2、安装openssl

openssl官网:http://www.openssl.org/

#tar -zxvf openssl-1.0.1i.tar.gz

#cd openssl-1.0.1i

#./config --prefix=/usr/local/openssl-1.0.1i #prefix指定安装目录

make

make install

1.3、安装pcre

pcre官网:http://www.pcre.org/

安装版本:pcre-8.35.tar.gz

#tar -zxf pcre-8.35.tar.gz

#cd pcre-8.35

./configure --prefix=/usr/local/pcre-8.35 #prefix指定安装目录

make

make install

1.4、安装zlib

zlib官网:http://www.zlib.net/

安装版本:zlib-1.2.8.tar.gz

#tar -zxf zlib-1.2.8.tar.gz

#cd zlib-1.2.8

./configure --prefix=/usr/local/zlib-1.2.8 #prefix指定安装目录

make

make install

1.5、下载nginx-rtmp-module

nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

1.6、安装Nginx

./configure --prefix=/usr/local/nginx --with-openssl=/usr/local/src/openssl --with-pcre=/usr/local/src/pcre --with-zlib=/usr/local/src/zlib --add-module=/usr/local/src/nginx-rtmp-module --with-http_ssl_module

–源码目录

make

make install

1.7、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;
        }
      }
    }

hls_path需要可读可写的权限

修改http中的server模块

server {

listen 80;

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;

}

#手机端播放使用苹果的直播流协议(延迟很严重)

location /hls {

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

alias /data/live/hls/;

expires -1;

add_header Cache-Control no-cache;

}

然后启动nginx:

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

2、Resin4.0

下载、解压 resin:

wget http://caucho.com/download/resin-pro-4.0.48.tar.gz

tar xzf resin-pro-4.0.48.tar.gz

编译、安装:

cd resin-pro-4.0.48

./configure --prefix=/usr/local/resin4 --with-java-home=/usr/local/jdk --enable-64bit

make

make install

启动:

./bin resin.sh start

访问:localhost:8080

3、mysql5.7

下载:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

创建mysql用户组

groupadd mysql

useradd -r -g mysql mysql

创建文件夹

mkdir /usr/local/mysql/data

更改mysql目录下所有的目录及文件夹所属组合用户

cd /usr/local/

chown -R mysql:mysql mysql/

chmod -R 755 mysql/

编译安装并初始化mysql,记住命令行末尾的密码

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

启动mysql服务

/usr/local/mysql/support-files/mysql.server start

登录msyql,输入密码(密码刚刚初始化生成的密码)

mysql -u root -p

修改密码并开放远程

msql>alter user ‘root’@'localhost’identified by ‘123456’;

mysql>use mysql;

msyql>update user setuser.Host=’%'whereuser.User=‘root’;

mysql>flush privileges;

mysql>quit

4、Redis5.0

安装:

wget http://download.redis.io/releases/redis-5.0.3.tar.gz

tar xzf redis-5.0.3.tar.gz
    cd redis-5.0.3
    make

编辑redis.conf 文件,设置后台运行:daemonize yes

启动服务:./redis-server

5、jdk1.8

下载安装

jdk-版本号.tar.gz解压到/usr/local/

vi /etc/profile

最后一行添加如下内容

export JAVA_HOME=/usr/local/jdk-版本号

export PATH=PATH:PATH:JAVA_HOME/bin

export CLASSPATH=.:JAVAHOME/lib/tools.jar:JAVA_HOME/lib/tools.jar:JAVA_HOME/lib/rt.jar

然后esc,输入:x,保存退出。

然后需要设置让更改生效:source /etc/profile

项目
1、内网项目

直播的核心服务

由于时间太少 系统尚未拆分成模块系统

2、外网项目

live_pc(电脑端页面)、live_h5(手机端页面)、spring-socket(即时通讯)

3、项目使用到第三方软件

spring-boot、spring-socket、spring-mvc、redisson-all-3.9、spring-thymeleaf…

mui+h5(手机端)、videojs(播放直播流)…

PS:缺少的项目(礼物系统、充值系统、消息队列系统、用户账户系统)