4.28 課堂筆記

nginx配置與直播項目

1、Centos 7.x 或 6.8

? 1舟铜、第一步 裝系統(tǒng) 7.x

? 2、第二步 遠(yuǎn)程登錄系統(tǒng) ssh

? 3、第三步 安裝yum install -y wget

? ? ? ? ? ? 源碼安裝 wget下載

? 4屯曹、第四步 換源 Centos7 默認(rèn)源? 阿里云的

? ? ? ? ? ? 并更新源 建立緩存

? 5、第五步 工具

? ? ? ? ? ? git

gcc 編譯器==>GNU開源計劃===>C? C++ Java等(源代碼 面向?qū)ο?面向過程 匯編==>機器語言)

二進(jìn)制? 010101010101

vi/vim 文本編輯器? g環(huán)境 k環(huán)境

make源碼編譯安裝? makefile文件? 編譯你當(dāng)前改變的文件 更新文件

make install

可執(zhí)行文件/ exe 指定的目錄中 /路徑中? bin? sbin? /usr/local/

/usr/local/nginx/sbin/nginx

openssl? ssh服務(wù)

加密? ssh? 免密登錄? 依賴

6惊畏、建立一個目錄 源碼編譯安裝 /usr/local/? /opt/? 各種放

? github


7恶耽、nginx-rtmp-module 安裝Nginx的rtmp協(xié)議的擴(kuò)展

? ? ? PC端

? ? ? 移動端--->操作系統(tǒng)--->iOS

? ? ? ? ? ? ? ? ? ? ? ? --->Android

? ? ? |---->手機

? ? ? |---->平板(電腦)

? ? ? |---->智能設(shè)備---->手表

? ? ? ? ? ? ? ? ? ? ---->手環(huán)

? ? ? ? ? ? ? ? ? ? ---->眼鏡/VR/AR/MR

? ? ? ? ? ? ? ? ? ? ---->互聯(lián)網(wǎng)電視APP

? ? ? ? ? ? ? ? ? ? ---->機頂盒Android

? ? ? ? ? ? ? ? ? ? ---->智能家電

? ? ? |---->區(qū)塊鏈設(shè)備

? ? ? ? ? ? |---->垃圾桶

? ? ? ? ? ? |---->加濕器 路由器 電視 冰箱? 洗機器 熱水器 運動 手機挖礦等

? ? ? ? ? ? ALL IN BLOCKCHAIN

? ? 8、解壓縮? tar -xzvf

? ? 9颜启、進(jìn)入到Nginx目錄里 進(jìn)行配置

? ? ? cd nginx-1.15.0

? ? ? ? ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module

? ? ? http_ssl_module模塊/擴(kuò)展/ http https 阿里云ssl證書 免費/淘寶 25 二級域名

? nginx-rtmp-module 模塊/擴(kuò)展 用于推流

? ? 10偷俭、編譯源碼并安裝

? ? 建立在 makefile文件

? ? ? ? make

? ? ? ? make install

? ? ? ? 或

? ? ? ? make && make install

? ? 11、驗證nginx安裝成功

? ? 1./usr/local/nginx/sbin/nginx -V 查看版本號

2.直接啟動

? ? ? /usr/local/nginx/sbin/nginx

[root@liangshen sbin]# ./nginx

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

? ? ? ? 3.80端口被占用

? 調(diào)錯

? L A M P? Apache2.0 阿帕奇? WEB服務(wù) 80端口

4.通過80端口 瀏覽器的方式訪問? nginx歡迎頁面 表示成功

? 不是 就需要改nginx的默認(rèn)端口 80? 8080 9000 9090 8888等

5.防火墻的端口限制

12缰盏、修改Nginx的conf文件 配置rtmp端口 1935端口

/usr/local/nginx

? rtmp{

? ? 17

? ? 18? server{

? ? 19

? ? 20? ? ? ? listen 1935;

? ? 21? ? ? ? chunk_size 5000;

? ? 22? ? ? ? ?

? ? 23? ? ? ? application hls{

? ? 24? ? ? ? ? ? live on;開啟實時直播? 實況直播

? ? ? ? ? ? ? ? record off; 不記錄數(shù)據(jù)

//沒有指定ts切片放在哪里

? ? 25? ? ? ? }

? ? 26? ? ? ?

? ? 27? ? }

? ? 28? ?

? ? 29 }

? ? 停止Nginx服務(wù) /usr/local/nginx/sbin/nginx -s stop

? ? 啟動并加載配置文件

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

[root@liangshen conf]# /usr/local/nginx/sbin/nginx

nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)

? ? nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

? ? nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()

出現(xiàn)如上信息就表示直播服務(wù)器已經(jīng)搭建成功涌萤。

? ? 13、如何推流

? ? 1口猜、OBS軟件推流Mac Linux Windows(小白 非專業(yè)人士)

2负溪、FFmpeg音頻視頻處理的庫Mac? Linux Windows? Android iOS等 開發(fā)者

? ? OBS推流

rtmp://主機ip地址:1935/oldboy_live? room01

? ? 14、到/usr/local/nginx/html

? ? hls 目錄? 如果沒有就conf里沒有配置 1935

http服務(wù)里需要指定 推流上來 hls產(chǎn)生的ts切片的目錄

location /hls {?

? ? ? ? ? ? #server hls fragments?

? ? ? ? ? ? types{?

? ? ? ? ? ? ? ? application/vnd.apple.mpegurl m3u8;?

? ? ? ? ? ? ? ? video/mp2t ts;?

? ? ? ? ? ? }?

? ? ? ? ? ? alias /temp/hls;?

? ? ? ? ? ? expires -1;?

? ? ? ? }?

調(diào)試

VLC視頻播放器

? 5.1 拉流的過程 播放

? ? ? /usr/local/nginx/html/hls ls命令

? xxxx.m3u8

? http://x.x.x.x/hls/xxxx.m3u8

? XMPP協(xié)議


HLS協(xié)議 apple 研發(fā)

? 視頻流--->TS切片--->3S--->85kb--->HTTP

? N多個.ts


#EXTM3U

#EXT-X-VERSION:3

#EXT-X-MEDIA-SEQUENCE:141

#EXT-X-TARGETDURATION:8

#EXTINF:8.333,

oldboy_live-141.ts

#EXTINF:8.334,

oldboy_live-142.ts

#EXTINF:8.333,

oldboy_live-143.ts

#EXTINF:8.333,

oldboy_live-144.ts

#EXTINF:8.334,

oldboy_live-145.ts

#EXTINF:8.333,

oldboy_live-146.ts

#EXTINF:8.333,

oldboy_live-147.ts

#EXTINF:8.334,

oldboy_live-148.ts

#EXTINF:8.333,

oldboy_live-149.ts

7济炎、HLS 原生就支持

8川抡、基于Flash HTTP協(xié)議 HTTPS訪問443

? 谷歌瀏覽器Chrome 就會禁用Flash

9、Nginx+RMTP協(xié)議+HLS協(xié)議

? ? ? ? ? 推流--->拉流

=================================================================

------------------------------------------------------------

ngin obs直播項目

Nginx定義

nginx是一個開源须尚,支持高性能崖堤,高并發(fā)的www服務(wù)和代理服務(wù)軟件。

特點

具有高并發(fā)恨闪,占用資源少倘感,功能豐富,具有反向代理負(fù)載均衡功能和緩存服務(wù)功能

項目步驟 ?

下載

yum install wget

更新源

yum makecache

更新系統(tǒng)文件

yum update

下載

yum install git gcc make pcre-devel openssl-devel (裝不上就分開一個一個裝)

cd /usr/local

下載

git clone git://github.com/arut/nginx-rtmp-module.git

安裝Nginx的rtmp協(xié)議的擴(kuò)展

wget http://nginx.org/download/nginx-1.15.0.tar.gz

解壓

tar xzf nginx-1.15.0.tar.gz

進(jìn)入nginx目錄里配置

cd nginx-1.15.0

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module

編譯源碼冰安裝

make && make install

驗證nginx安裝成功

/usr/local/nginx/sbin/nginx -V

直接啟動

cd /usr/local/nginx/sbin

/usr/local/nginx/sbin/nginx

關(guān)閉防火墻

systemctl stop firewalld

systemctl status firewalld

cd /usr/local/nginx/conf

vim nginx.conf

11

12 events {

13? ? worker_connections? 1024;

14 }

15

16 rtmp{

17

18? server{

19

20? ? ? listen 1935;

21? ? ? chunk_size 5000;

22

23? ? ? application hls{

24? ? ? ? live on;

25? ? ? ? hls on;

26? ? ? ? record off;

27? ? ? ? hls_path /usr/local/nginx/html/hls;

28? ? ? ? hls_fragment 3s;

29? ? ? }

30

31? ? }

32

33 }

34 http {

35? ? include? ? ? mime.types;

36? ? default_type? application/octet-stream;

37

38? ? #log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '

--------------------

58? ? ? ? #access_log? logs/host.access.log? main;

59

60? ? ? ? location / {

61? ? ? ? ? ? root? html;

62? ? ? ? ? ? index? index.html index.htm;

63? ? ? ? }

64 location /hls {

65? ? ? ? ? ? #server hls fragments?

66? ? ? ? ? ? types{

67? ? ? ? ? ? ? ? application/vnd.apple.mpegurl m3u8;

68? ? ? ? ? ? ? ? video/mp2t ts;

69? ? ? ? ? ? }

70? ? ? ? ? ? alias /temp/hls;

71? ? ? ? ? ? expires -1;

72? ? ? ? }

73? ? ? ? #error_page? 404? ? ? ? ? ? ? /404.html;

74

75? ? ? ? # redirect server error pages to the static page /50x.html

----------------------------

/usr/local/nginx/sbin/nginx -s stop

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

/usr/local/nginx/sbin/nginx

cd /usr/local/nginx/html

vim play.html

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

</head>

<body>

<h1>PC 端播放 HLS(<code>.m3u8</code>) 視頻</h1>

<p>借助 video.js 和 videojs-contrib-hls</p>

<p>由于 videojs-contrib-hls 需要通過 XHR 來獲取解析 m3u8 文件, 因此會遭遇跨域問題, 請設(shè)置瀏覽器運行跨域</p

>

<video id="hls-video" width="300" height="200" class="video-js vjs-default-skin"

? ? ? playsinline webkit-playsinline

? ? ? autoplay controls preload="auto"

? ? ? x-webkit-airplay="true" x5-video-player-fullscreen="true" x5-video-player-typ="h5">

? ? <!-- 直播的視頻源 -->

? ? <source src="http://ivi.bupt.edu.cn/hls/cctv12.m3u8" type="application/x-mpegURL">

? ? <!-- 點播的視頻源 -->

? ? <!--<source src="http://devstreaming.apple.com/videos/wwdc/2015/413eflf3lrh1tyo/413/hls_vod_mvp.m3u8"

type="application/x-mpegURL">-->

</video>

<script src="http://cdn.bootcss.com/video.js/6.0.0-RC.5/video.js"></script>

<!-- PC 端瀏覽器不支持播放 hls 文件(m3u8), 需要 videojs-contrib-hls 來給我們解碼 -->

<script src="http://cdn.bootcss.com/videojs-contrib-hls/5.3.3/videojs-contrib-hls.js"></script>

<script>

? ? // XMLHttpRequest cannot load http://xxx/video.m3u8. No 'Access-Control-Allow-Origin' header is presen

t on the requested resource. Origin 'http://192.168.198.98:8000' is therefore not allowed access.

? ? // 由于 videojs-contrib-hls 需要通過 XHR 來獲取解析 m3u8 文件, 因此會遭遇跨域問題, 請設(shè)置瀏覽器運行跨>

? ? var player = videojs('hls-video');

? ? player.play();

</script>

</body>

</html>

==================

檢查

http://10.0.0.200/play.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咙咽,一起剝皮案震驚了整個濱河市老玛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钧敞,老刑警劉巖蜡豹,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異溉苛,居然都是意外死亡镜廉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門愚战,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娇唯,“玉大人齐遵,你說我怎么就攤上這事∷澹” “怎么了梗摇?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長想许。 經(jīng)常有香客問我伶授,道長,這世上最難降的妖魔是什么流纹? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任糜烹,我火速辦了婚禮,結(jié)果婚禮上漱凝,老公的妹妹穿的比我還像新娘疮蹦。我一直安慰自己,他們只是感情好碉哑,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布挚币。 她就那樣靜靜地躺著,像睡著了一般扣典。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慎玖,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天贮尖,我揣著相機與錄音,去河邊找鬼趁怔。 笑死湿硝,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的润努。 我是一名探鬼主播关斜,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铺浇!你這毒婦竟也來了痢畜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤鳍侣,失蹤者是張志新(化名)和其女友劉穎丁稀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倚聚,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡线衫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惑折。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片授账。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡枯跑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出白热,到底是詐尸還是另有隱情全肮,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布棘捣,位于F島的核電站辜腺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏乍恐。R本人自食惡果不足惜评疗,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茵烈。 院中可真熱鬧百匆,春花似錦、人聲如沸呜投。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仑荐。三九已至雕拼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粘招,已是汗流浹背啥寇。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洒扎,地道東北人辑甜。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像袍冷,于是被迫代替她去往敵國和親磷醋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容