(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:缺少的專案(禮物系統、充值系統、訊息佇列系統、使用者賬戶系統)