linux CentOS7 nginx nginx-rtmp-module搭建直播(親測非轉(zhuǎn)載)

直播配置

1. 安裝 Nginx 依賴軟件

yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel 

2. 安裝nginx與rtmp模塊

l 首先進入local目錄

cd /usr/local

l 下載nginx(沒有安裝wget的請安裝鸠澈,安裝命令:yum -y install wget)

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

l 解壓

tar  zxvf  nginx-1.13.12.tar.gz

l 創(chuàng)建nginx安裝目錄與模塊目錄

mkdir  -p  /usr/local/nginx/module

l 創(chuàng)建視頻數(shù)據(jù)存放位置

  mkdir  -p   /usr/local/nginx/myapp

l 進入到/usr/local/nginx/module目錄

cd   /usr/local/nginx/module

l 下載nginx-rtmp-module,下載后的文件夾名叫nginx-rtmp-module(沒有安裝git的請安裝苛骨,執(zhí)行語句的時候沒有g(shù)it會提示你)

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

l 進入解壓后的nginx目錄中,指定nginx安裝目錄并且指定了安裝的模塊

cd  /usr/local/nginx-1.13.12/

./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/module/nginx-rtmp-module(此處一句命令)

l //編譯并安裝

make && make install

l //啟動nginx

/usr/local/nginx/sbin/nginx

此時如果沒有問題未荒,那么你就可以訪問http://127.0.0.1了褥实,會出現(xiàn)welcome界面。
3. 配置nginx與nginx-rtmp-module

// 在nginx-rtmp-module中帶有一個nginx.conf的配置文件锁摔,把它覆蓋到nginx中的配置文件cp /usr/local/nginx/module/test/nginx.conf /usr/local/nginx/conf 詢問你是否覆蓋,輸入y 并回車
// 編輯nginx配置文件哼审,使用vim打開
vim /usr/local/nginx/conf/nginx.conf
//(按i進入編輯模式谐腰,編輯完成后esc退出孕豹, 輸入:wq 保存并退出)
//修改nginx.conf文件,修改三處
1.Rtmp節(jié)點下十气,在live on ;下加入
    hls on;
    hls_path  /usr/local/nginx/myapp;
nginx.conf
2.在http 節(jié)點下励背,修改兩個root的路徑
    location /rtmp-publisher {
            root  /usr/local/nginx/module/nginx-rtmp-module/test;
        }

        location / {
            root /usr/local/nginx/module/nginx-rtmp-module/test/www;
        }
nginx.conf

修改之后保存即可,接下來修改web界面砸西。
第一個頁面
修改文件/usr/local/nginx/module/nginx-rtmp-module/test/www/index.html,修改ip以及端口(以下192.168.1.7為rtmp服務器ip)


index.html

第二個頁面
修改文件/usr/local/nginx/module/nginx-rtmp-module/test/www/record.html,修改ip以及端口

record.html

第三個頁面(點播配置)
創(chuàng)建視頻存放位置
mkdir -p /usr/local/nginx/vod/flvs
上傳一個mp4格式的視頻到/usr/local/nginx/vod/flvs下(以2.mp4為例)
修改文件/usr/local/nginx/module/nginx-rtmp-module/test/rtmp-publisher/player.html,修改ip以及端口
player.html

4.這時需要重新加載配置叶眉,使用命令

/usr/local/nginx/sbin/nginx -s reload

5.如果啟動沒有問題,那么訪問端口剛才已經(jīng)修改為8080那么你看到的界面應該是下圖

nginx首頁

6.下面配置直播工具 OBS

安裝后打開界面在設(shè)置中選中芹枷,串流衅疙,類型選擇: 自定義流媒體服務器

OBS配置

配置圖像輸出:
在來源處點+號,選擇視頻捕捉設(shè)備杖狼,然后在設(shè)備處選擇你的攝像頭即可炼蛤。
抓取窗口

這是可以開始直播了妖爷,點擊右側(cè)開始串流蝶涩,然后打開web地址,192.168.1.7:8080就可以看見了絮识,直播完成
點播

訪問http://192.168.31.41:8080/rtmp-publisher/player.html即可查看上傳的視頻绿聘,點播完成

常見的直播協(xié)議

國內(nèi)常見的直播協(xié)議有幾個:RTMP、HLS次舌、HTTP-FLV
RTMP熄攘,全稱 Real Time Messaging Protocol,即實時消息傳送協(xié)議彼念。Adobe 公司為 Flash 播放器和服務器之間音視頻數(shù)據(jù)傳輸開發(fā)的私有協(xié)議挪圾。工作在 TCP 之上的明文協(xié)議,默認使用端口 1935逐沙。協(xié)議中的基本數(shù)據(jù)單元成為消息(Message)哲思,傳輸?shù)倪^程中消息會被拆分為更小的消息塊(Chunk)單元。最后將分割后的消息塊通過 TCP 協(xié)議傳輸吩案,接收端再反解接收的消息塊恢復成流媒體數(shù)據(jù)棚赔。
RTMP 主要有以下幾個優(yōu)點:RTMP 是專為流媒體開發(fā)的協(xié)議,對底層的優(yōu)化比其它協(xié)議更加優(yōu)秀徘郭,同時它 Adobe Flash 支持好靠益,基本上所有的編碼器(攝像頭之類)都支持 RTMP 輸出。現(xiàn)在 PC 市場巨大残揉,PC 主要是 Windows胧后,Windows 的瀏覽器基本上都支持 Flash。另外RTMP適合長時間播放抱环,曾經(jīng)有過測試壳快,聯(lián)系 100 萬秒途样,即 10 天多連續(xù)播放沒有出現(xiàn)問題。最后 RTMP 的延遲相對較低濒憋,一般延時在 1-3s 之間何暇,一般的視頻會議,互動式直播凛驮,完全是夠用的裆站。
當然 RTMP 并沒有盡善盡美,它也有不足的地方黔夭。一方面是它是基于 TCP 傳輸宏胯,非公共端口,可能會被防火墻阻攔本姥;另一方面肩袍,也是比較坑的一方面是 RTMP 為 Adobe 私有協(xié)議,很多設(shè)備無法播放婚惫,特別是在 iOS 端氛赐,需要使用第三方解碼器才能播放。
FLV(Flash Video) 是 Adobe 公司推出的另一種視頻格式先舷,是一種在網(wǎng)絡上傳輸?shù)牧髅襟w數(shù)據(jù)存儲容器格式艰管。其格式相對簡單輕量,不需要很大的媒體頭部信息蒋川。整個 FLV 由 The FLV Header, The FLV Body 以及其它 Tag 組成牲芋。因此加載速度極快。采用 FLV 格式封裝的文件后綴為 .flv捺球。
而我們所說的 HTTP-FLV 即將流媒體數(shù)據(jù)封裝成 FLV 格式缸浦,然后通過 HTTP 協(xié)議傳輸給客戶端。
HTTP-FLV 依靠 MIME 的特性氮兵,根據(jù)協(xié)議中的 Content-Type 來選擇相應的程序去處理相應的內(nèi)容裂逐,使得流媒體可以通過 HTTP 傳輸。相較于 RTMP 協(xié)議胆剧,HTTP-FLV 能夠好的穿透防火墻絮姆,它是基于 HTTP/80 傳輸,有效避免被防火墻攔截秩霍。除此之外篙悯,它可以通過 HTTP 302 跳轉(zhuǎn)靈活調(diào)度/負載均衡,支持使用 HTTPS 加密傳輸铃绒,也能夠兼容支持 Android鸽照,iOS 的移動端。
說了這么多優(yōu)點颠悬,也來順便說下 HTTP-FLV 的缺點矮燎,由于它的傳輸特性定血,會讓流媒體資源緩存在本地客戶端,在保密性方面不夠好诞外。因為網(wǎng)絡流量較大澜沟,它也不適合做拉流協(xié)議。
上述兩個協(xié)議都是有Adobe公司推出的峡谊,而下面要講的
HLS (HTTP Live Streaming) 則是蘋果公司基于 HTTP 的流媒體傳輸協(xié)議茫虽。主要應用于 iOS 設(shè)備,包含(iPhone, iPad, iPod touch) 以及 Mac OSX 提供音視頻直播服務和錄制內(nèi)容(點播)等服務既们。
相對于常見的流媒體協(xié)議濒析,HLS 最大的不同在于它并不是一下請求完整的數(shù)據(jù)流。它會在服務器端將流媒體數(shù)據(jù)切割成連續(xù)的時長較短的 ts 小文件啥纸,并通過 M3U8 索引文件按序訪問 ts 文件号杏。客戶端只要不停的按序播放從服務器獲取到的文件斯棒,從而實現(xiàn)播放音視頻盾致。
相較 RTMP 而言,使用 HLS 在 HTML5 頁面上實現(xiàn)播放非常簡單:
直接:

<video src = "xxx.m3u8" controls> </video>

間接

<video  controls>
    <souce src = "xxx.m3u8"></souce>
</video>

HLS 的優(yōu)勢:

Apple 的全系列產(chǎn)品支持:由于 HLS 是蘋果提出的名船,所以在 Apple 的全系列產(chǎn)品包括 iPhone绰上、 iPad、safari 都不需要安裝任何插件就可以原生支持播放 HLS渠驼, 現(xiàn)在 Android 也加入了對 HLS 的支持。
穿透防火墻鉴腻∶陨龋基于 HTTP/80 傳輸,有效避免防火墻攔截
性能高爽哎。通過 HTTP 傳輸蜓席, 支持網(wǎng)絡分發(fā),CDN 支持良好课锌,且自帶多碼率自適應厨内,Apple 在提出 HLS 時,就已經(jīng)考慮了碼流自適應的問題渺贤。

HLS 的劣勢:

實時性差雏胃,延遲高。HLS 的延遲基本在 10s+ 以上
文件碎片志鞍。特性的雙刃劍瞭亮,ts 切片較小,會造成海量小文件固棚,對存儲和緩存都有一定的挑戰(zhàn)


流媒體協(xié)議 RTMP, HTTP-FLV, HLS 簡單對比

RTMP 協(xié)議為流媒體而設(shè)計统翩,在推流中用的比較多仙蚜,同時大多 CDN 廠商支持RTMP 協(xié)議。
HTTP-FLV 使用類似 RTMP流式的 HTTP 長連接厂汗,需由特定流媒體服務器分發(fā)的委粉,兼顧兩者的優(yōu)點。以及可以復用現(xiàn)有 HTTP 分發(fā)資源的流式協(xié)議娶桦。它的實時性和 RTMP 相等艳丛,與 RTMP 相比又省去了部分協(xié)議交互時間,首屏時間更短趟紊,可拓展的功能也更多氮双。
HLS 作為蘋果提出的直播協(xié)議,在 iOS 端占據(jù)了不可撼動的地位霎匈,Android 端也同時提供相應的支持戴差。
又拍云一站式直播解決方案基于又拍云 CDN,支持 RTMP铛嘱、HTTP-FLV 和 HLS 三大直播協(xié)議暖释,并且通過智能調(diào)度、鏈路保障墨吓、追幀處理球匕、丟幀處理以及業(yè)界首創(chuàng)的 HLS+ 技術(shù),將 RTMP帖烘、HTTP-FLV 直播延遲控制在1秒內(nèi)亮曹,將 HLS 直播延時控制在 4 秒左右。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秘症,一起剝皮案震驚了整個濱河市照卦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乡摹,老刑警劉巖役耕,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聪廉,居然都是意外死亡瞬痘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門板熊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來框全,“玉大人,你說我怎么就攤上這事邻邮】⒖觯” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丹泉。 經(jīng)常有香客問我情萤,道長,這世上最難降的妖魔是什么摹恨? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任筋岛,我火速辦了婚禮,結(jié)果婚禮上晒哄,老公的妹妹穿的比我還像新娘睁宰。我一直安慰自己,他們只是感情好寝凌,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布柒傻。 她就那樣靜靜地躺著,像睡著了一般较木。 火紅的嫁衣襯著肌膚如雪红符。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天伐债,我揣著相機與錄音预侯,去河邊找鬼。 笑死峰锁,一個胖子當著我的面吹牛萎馅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虹蒋,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼糜芳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了千诬?” 一聲冷哼從身側(cè)響起耍目,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎徐绑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莫辨,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡傲茄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沮榜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盘榨。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蟆融,靈堂內(nèi)的尸體忽然破棺而出草巡,到底是詐尸還是另有隱情,我是刑警寧澤型酥,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布山憨,位于F島的核電站查乒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏郁竟。R本人自食惡果不足惜玛迄,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棚亩。 院中可真熱鬧蓖议,春花似錦、人聲如沸讥蟆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘸彤。三九已至修然,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钧栖,已是汗流浹背低零。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拯杠,地道東北人掏婶。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像潭陪,于是被迫代替她去往敵國和親雄妥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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

  • 近年互聯(lián)網(wǎng)直播業(yè)務非骋浪荩火熱老厌。我也研究了下,發(fā)現(xiàn)nginx上配置視頻直播點播也很容易實現(xiàn)黎炉,特分享一下枝秤。 一、ubun...
    dagailv閱讀 1,302評論 0 2
  • 近年互聯(lián)網(wǎng)直播業(yè)務非晨妒龋火熱淀弹。我也研究了下,發(fā)現(xiàn)nginx上配置視頻直播點播也很容易實現(xiàn)庆械,特分享一下薇溃。一、ubunt...
    美虎轆轆閱讀 3,015評論 0 2
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 1,804評論 0 3
  • 敬愛的李老師缭乘,智慧的教授沐序,親愛的賈總,趙總,親愛的家人們:大家好策幼! 我是人民商場珠寶城的孫建紅邑时,今天是我日精進行動...
    知足常樂孫閱讀 102評論 0 0
  • 八月十七號就要情人節(jié)了,單位組織了一個單身活動垄惧,聯(lián)誼一個培訓機構(gòu)的英語老師相約蹦床場刁愿。 一開始我壓根沒想?yún)⒓舆@種活...
    行空與少心的故事閱讀 284評論 1 1