#!/bin/sh
…/ 代表當(dāng)前目錄的上一級(jí)
HTTP_FLV_MODULE_PATH=…/nginx-http-flv-module-1.2.7
OpenSSL_PATH=…/openssl-1.1.1d
#–prefix=./bin 代表編譯完成之后輸出的路徑地址
#–add-module 將拓展模塊添加到當(dāng)前一起編譯
./configure --prefix=./bin
–add-module=
H
T
T
P
F
L
V
M
O
D
U
L
E
P
A
T
H
?
?
?
w
i
t
h
?
o
p
e
n
s
s
l
=
HTTP_FLV_MODULE_PATH \ --with-openssl=
HTTPF?LVM?ODULEP?ATH???with?openssl=OpenSSL_PATH
–with-debug
通過(guò) make install 構(gòu)建
make
make install
如果中途沒(méi)有報(bào)任何錯(cuò)誤,并且輸出了我們指定的 bin 目錄,那么就代表成功了。如下圖所示:
5. 配置 nginx.conf
在當(dāng)前目錄下輸入 vim bin/conf/nginx.conf
進(jìn)行配置 rtmp、http 直播協(xié)議,我直接貼上我的配置
user root;
worker_processes auto; #運(yùn)行在Windows上時(shí),設(shè)置為1,因?yàn)閃indows不支持Unix domain socket
#worker_processes auto; #1.3.8和1.2.5以及之后的版本
#worker_cpu_affinity 0001 0010 0100 1000; #只能用于FreeBSD和Linux
worker_cpu_affinity auto; #1.9.10以及之后的版本
error_log logs/error.log error;
#如果此模塊被編譯為動(dòng)態(tài)模塊并且要使用與RTMP相關(guān)的功
#能時(shí),必須指定下面的配置項(xiàng)并且它必須位于events配置
#項(xiàng)之前,否則NGINX啟動(dòng)時(shí)不會(huì)加載此模塊或者加載失敗
#load_module modules/ngx_http_flv_live_module.so;
events {
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
server {
listen 80;//自定義填寫 http 的端口
location / {
root /root/nginx/nginx-http-flv-module-1.2.7/test/www;
index index.html index.htm;//默認(rèn)首頁(yè)
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /flvjsplay {//測(cè)試地址
root /root/nginx/flv.js-1.5.0;
index index.html;//flv.js 測(cè)試播放首頁(yè)
}
location /flv {
flv_live on; #打開HTTP播放FLV直播流功能
chunked_transfer_encoding on; #支持’Transfer-Encoding: chunked’方式回復(fù)
#跨域
add_header ‘Access-Control-Allow-Origin’ ‘*’; #添加額外的HTTP頭
add_header ‘Access-Control-Allow-Credentials’ ‘true’; #添加額外的HTTP頭
}
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /root/nginx/nginx-http-flv-module-1.2.7;
add_header ‘Cache-Control’ ‘no-cache’;
}
location /dash {
root /root/nginx/nginx-http-flv-module-1.2.7;
add_header ‘Cache-Control’ ‘no-cache’;
}
location /stat {
#push和pull狀態(tài)的配置
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /root/nginx/nginx-http-flv-module-1.2.7; #指定stat.xsl的位置
}
#如果需要JSON風(fēng)格的stat, 不用指定stat.xsl
#但是需要指定一個(gè)新的配置項(xiàng)rtmp_stat_format
#location /stat {
rtmp_stat all;
rtmp_stat_format json;
#}
location /control {
rtmp_control all; #rtmp控制模塊的配置
}
}
}
rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp_socket_dir /root/nginx/nginx-http-flv-module-1.2.7;
rtmp {
out_queue 4096;
out_cork 8;
max_streams 128;
timeout 30s;
drop_idle_publisher 30s;
log_interval 5s; #log模塊在access.log中記錄日志的間隔時(shí)間,對(duì)調(diào)試非常有用
log_size 1m; #log模塊用來(lái)記錄日志的緩沖區(qū)大小
server {
listen 1935;//自定義 rtmp 端口
server_name www.test.*; #用于虛擬主機(jī)名后綴通配
application devyk {
live on;
gop_cache on; #打開GOP緩存,減少首屏等待時(shí)間
}
application hls {
live on;
hls on;
hls_path /root/nginx/nginx-http-flv-module-1.2.7/hls;
}
application dash {
live on;
dash on;
dash_path /root/nginx/nginx-http-flv-module-1.2.7/dash;
}
}
#可以有多個(gè) server 配置
}
Nginx 配置文件詳解請(qǐng)看該篇文章
nginx-rtmp-module配置指令詳解
在根目錄輸入 bin/sbin/nginx -t , 如出現(xiàn)如下就說(shuō)明配置成功。
6. 開啟 nginx 服務(wù)
#開啟服務(wù)
bin/sbin/nginx
#停止服務(wù)
bin/sbin/nginx -s stop
#重啟服務(wù)
bin/sbin/nginx -s reload
7. 網(wǎng)頁(yè)測(cè)試是否都顯示正常
- 直接在網(wǎng)頁(yè)上輸入:
http://ip:port
,如果出現(xiàn)如下,證明首頁(yè)和基本配置沒(méi)有問(wèn)題了
- 直接在網(wǎng)頁(yè)輸入:
http://ip:port/stat
如出現(xiàn)如下監(jiān)控頁(yè)面,說(shuō)明監(jiān)控頁(yè)面一切正常。
現(xiàn)在服務(wù)器搭建完成,下面可以進(jìn)入測(cè)試環(huán)節(jié)了。
rtmp 推流
我們直接用開源 obs-studio 軟件進(jìn)行推流,聽說(shuō)很多游戲主播也用該款推流軟件。
推流源設(shè)置:
如上圖所示,證明已經(jīng)推流成功了,下面我們就來(lái)測(cè)試?yán)鳌?/p>
拉流
flv 在 Html5 上播放
注意: 其它播放也是如下格式,這里只是以 Html 舉例說(shuō)明:
例子:
假設(shè)在http
配置塊中的listen
配置項(xiàng)是:
http {
…
server {
listen 8080; #不是默認(rèn)的80端口
…
location /live {
flv_live on;
}
}
}
在rtmp
配置塊中的listen
配置項(xiàng)是:
rtmp {
…
server {
listen 1935; #也可以不是默認(rèn)的1935端口
…
application myapp {
live on;
}
}
}
并且發(fā)布的流的名稱是mystream
,那么基于 HTTP-FLV 的播放url是:
http://ip:8080/flv?port=1935&app=myapp&stream=mystream
播放器這里選擇 bilibili 開源的 flv.js , 既然我們已經(jīng)有服務(wù)器了,那就直接把 flv.js 項(xiàng)目部署在服務(wù)器上吧
- 安裝 npm
#安裝 npm
yum install npm
#檢查是否安裝成功,如有輸出證明安裝成功
npm --version
- 直接下載 flv.js 到服務(wù)器上
#通過(guò) wget 下載
wget https://github.com/bilibili/flv.js/archive/v1.5.0.tar.gz
#解壓
tar -zxvf v1.5.0.tar.gz
- 安裝
進(jìn)入 flv.js 根目錄直接輸入 npm install
命令,安裝完成之后會(huì)出現(xiàn)一個(gè) node_modules
模塊
- 安裝生成工具
還是在當(dāng)前根目錄下安裝,輸入如下命令:
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)初中級(jí)安卓工程師,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年最新Android移動(dòng)開發(fā)全套學(xué)習(xí)資料》送給大家,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
由于文件比較大,這里只是將部分目錄截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻
如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以添加下面V無(wú)償領(lǐng)取?。▊渥ndroid)
最后,如果大伙有什么好的學(xué)習(xí)方法或建議歡迎大家在評(píng)論中積極留言哈,希望大家能夠共同學(xué)習(xí)、共同努力、共同進(jìn)步。
小編在這里祝小伙伴們?cè)谖磥?lái)的日子里都可以 升職加薪,當(dāng)上總經(jīng)理,出任CEO,迎娶白富美,走上人生巔峰??!
不論遇到什么困難,都不應(yīng)該成為我們放棄的理由!
很多人在剛接觸這個(gè)行業(yè)的時(shí)候或者是在遇到瓶頸期的時(shí)候,總會(huì)遇到一些問(wèn)題,比如學(xué)了一段時(shí)間感覺(jué)沒(méi)有方向感,不知道該從那里入手去學(xué)習(xí),需要一份小編整理出來(lái)的學(xué)習(xí)資料的關(guān)注我主頁(yè)或者點(diǎn)擊我的GitHub免費(fèi)領(lǐng)取~
這里是關(guān)于我自己的Android 學(xué)習(xí),面試文檔,視頻收集大整理,有興趣的伙伴們可以看看~文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-852607.html
哈,希望大家能夠共同學(xué)習(xí)、共同努力、共同進(jìn)步。
小編在這里祝小伙伴們?cè)谖磥?lái)的日子里都可以 升職加薪,當(dāng)上總經(jīng)理,出任CEO,迎娶白富美,走上人生巔峰??!
不論遇到什么困難,都不應(yīng)該成為我們放棄的理由!
很多人在剛接觸這個(gè)行業(yè)的時(shí)候或者是在遇到瓶頸期的時(shí)候,總會(huì)遇到一些問(wèn)題,比如學(xué)了一段時(shí)間感覺(jué)沒(méi)有方向感,不知道該從那里入手去學(xué)習(xí),需要一份小編整理出來(lái)的學(xué)習(xí)資料的關(guān)注我主頁(yè)或者點(diǎn)擊我的GitHub免費(fèi)領(lǐng)取~
這里是關(guān)于我自己的Android 學(xué)習(xí),面試文檔,視頻收集大整理,有興趣的伙伴們可以看看~
如果你看到了這里,覺(jué)得文章寫得不錯(cuò)就給個(gè)贊唄?如果你覺(jué)得那里值得改進(jìn)的,請(qǐng)給我留言,一定會(huì)認(rèn)真查詢,修正不足,謝謝。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-852607.html
到了這里,關(guān)于Android-音視頻學(xué)習(xí)系列-(八)基于-Nginx-搭建(rtmp、http)直播服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!