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

主播推流

软件地址:http://www.fmpan.com/s/c7xanekb

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

直播站

1、电脑端(延迟3~5秒)

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

    http://47.105.121.64/live

1.1、播放页面

2、手机端(延迟10秒+)

  在pc端观看直播页面扫码

2.1、播放页面

云服务

1、厂商:某某云

2、系统:CentOS  6.8 64位

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

云架构

基础软件

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:$JAVA_HOME/bin

    export CLASSPATH=.:$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:缺少的项目(礼物系统、充值系统、消息队列系统、用户账户系统)

猜你喜欢

转载自www.cnblogs.com/menghuiyuan/p/live.html
今日推荐