成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

支持HTTP-FLV方式直播的開源模塊nginx-http-flv-module

zhongmeizhi / 3021人閱讀

摘要:的功能兼容所有功能支持方式的直播支持緩存,以減少首屏?xí)r間支持虛擬主機(jī)功能可以省略配置項(xiàng)而不影響基本功能修復(fù)已知的功能簡(jiǎn)介兼容的所有功能,詳細(xì)說明參考的。

nginx-http-flv-module是在nginx-rtmp-module基礎(chǔ)上開發(fā)的一個(gè)直播模塊。
感謝Arut創(chuàng)造了nginx-rtmp-module,它是Nginx的一個(gè)優(yōu)秀的第三方模塊,可以用來(lái)直播,支持RTMP,HLS和DASH方式直播,還支持調(diào)用第三方軟件進(jìn)行轉(zhuǎn)碼,錄制視頻等功能,由于依托Nginx,性能也比較高。但是美中不足的地方也不少,例如首屏?xí)r間長(zhǎng),不支持HTTP-FLV方式直播,不支持虛擬主機(jī)(vhost)功能,省略listen配置無(wú)法接受連接,有很多很明顯的bug等問題。
nginx-http-flv-module解決了上述的問題。當(dāng)然,還有些bug還有待修復(fù)。具體使用方法請(qǐng)參考說明文件:

英語(yǔ)README

中文README.CN

為什么選擇Nginx作為支持HTTP-FLV方式直播的服務(wù)器呢?因?yàn)镹ginx的Web服務(wù)器功能對(duì)HTTP協(xié)議的支持非常完善,Nginx的性能優(yōu)秀,經(jīng)過了很多場(chǎng)景的檢驗(yàn)。另外,Nginx本身對(duì)第三方軟件的依賴較少,非常易于部署。這些都使得它成為HTTP-FLV方式直播服務(wù)器不可多得的選擇。

nginx-http-flv-module的功能

兼容nginx-rtmp-module所有功能

支持HTTP-FLV方式的直播

支持GOP緩存,以減少首屏?xí)r間

支持虛擬主機(jī)功能

可以省略listen配置項(xiàng)而不影響基本功能

修復(fù)nginx-rtmp-module已知的bug

功能簡(jiǎn)介

兼容nginx-rtmp-module的所有功能,詳細(xì)說明參考nginx-rtmp-module的Wiki。

支持HTTP-FLV方式的直播
支持的播放器有VLC,OBS和flv.js等,只需要輸入如下地址即可:

http://yourdomain[:httpport]/dir?[rtmpport=xxx&]app=yyy&stream=zzz

其中httpport是Nginx的配置文件中http塊中監(jiān)聽的端口,如果這個(gè)端口是80,那么可以省略不寫;rtmpport是Nginx的配置文件中rtmp塊中監(jiān)聽的端口,如果這個(gè)端口是1935,那么可以省略不寫。dir是Nginx的配置文件中http塊中location后的路徑。參數(shù)app和stream見下文的推流一節(jié)說明。
nginx-http-flv-module也支持HTTPS-FLV方式的直播。

支持GOP緩存,以減少首屏?xí)r間
只需要在rtmp塊中的application塊中添加如下配置項(xiàng)即可:

gop_cache on;

現(xiàn)在的代碼中只緩存兩個(gè)GOP,如果需要修改GOP緩存?zhèn)€數(shù),可以自行修改代碼,但是不建議將GOP緩存的個(gè)數(shù)設(shè)置太大,因?yàn)榘l(fā)送GOP緩存可能需要很多次I/O操作,可能耗費(fèi)比較多的時(shí)間,從而影響整個(gè)服務(wù)器的性能。

支持虛擬主機(jī)功能
nginx-rtmp-module不支持虛擬主機(jī)功能。那什么是虛擬主機(jī)功能呢?假設(shè)有一臺(tái)服務(wù)器,其IP地址是192.168.1.110,我配置了一個(gè)DNS服務(wù)器,將兩個(gè)域名www.testa.com和www.testb.com都指向192.168.1.110,那么對(duì)于Web服務(wù),我可以針對(duì)這兩個(gè)域名配置不同的Web頁(yè)面,通過不同的域名訪問不同的Web頁(yè)面,但其實(shí)這兩個(gè)不同的服務(wù)都指向同一臺(tái)服務(wù)器。這兩個(gè)域名對(duì)應(yīng)同一個(gè)IP地址就是虛擬主機(jī)功能。與http配置一樣,nginx-http-flv-module通過server_name來(lái)指定域名,也支持前向通配,后向通配和完全匹配:

server {
    server_name *.test.com; #前向通配,匹配blog.test.com/login.test.com等
    ...
}

server {
    server_name www.test.*; #后向通配,匹配www.test.org/www.test.com等
    ...
}

server {
    server_name www.test.com; #完全匹配
}

注意:虛擬主機(jī)功能在多進(jìn)程模式下還有問題。

可以省略listen配置項(xiàng)而不影響基本功能
這個(gè)略,大家可以試試使用nginx-rtmp-module時(shí),在rtmp塊中不指定listen,然后推流和播放會(huì)不會(huì)出現(xiàn)問題。

修復(fù)nginx-rtmp-module已知的bug
大多是一些比較明顯的錯(cuò)誤,如指令對(duì)應(yīng)的宏寫錯(cuò)了,消息個(gè)數(shù)計(jì)算錯(cuò)誤等。

推流

為了簡(jiǎn)便起見,假設(shè)不使用比較復(fù)雜的選項(xiàng),這里以ffmpeg為例:

ffmpeg -re -i media_file -vcodec copy -acodec copy -f flv rtmp://yourdomain/app/stream

上文中HTTP-FLV的URL中的app和stream與這里的app和stream對(duì)應(yīng),它們都是RTMP協(xié)議中的概念。
也可以使用OBS推流,這里不再詳述。

nginx-http-flv-module性能如何?

在我的筆記本上(ThinkPad T410,Intel Core i5 M480,4G內(nèi)存,Debian 7.11)壓力測(cè)試,單進(jìn)程(多進(jìn)程還有些問題沒解決)200推流和1000播放沒有問題。

有人用nginx-http-flv-module嗎?

答案是有的。我知道商用的有不下10家,規(guī)模比較大的一家是CDN廠商,另一家是網(wǎng)絡(luò)電視廠商。另外,據(jù)網(wǎng)友反饋,國(guó)外也有網(wǎng)站在用這個(gè)模塊。還有華為也打算使用本模塊,這是我已知的最大的一個(gè)對(duì)本模塊感興趣的廠商了。
歡迎大家試用nginx-http-flv-module,也歡迎反饋bug和提交pr。
最后貼兩張調(diào)試nginx-http-flv-module時(shí)的測(cè)試截圖:

RTMP和HTTP-FLV測(cè)試截圖

flv.js測(cè)試截圖

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40069.html

相關(guān)文章

  • 音視頻通信——直播協(xié)議和視頻推流

    摘要:本文作為直播介紹系列文的第篇,主要和大家談?wù)勚辈f(xié)議視頻推流等技術(shù)內(nèi)容直播協(xié)議流媒體分為直播和點(diǎn)播。使用語(yǔ)言編寫,支持多種協(xié)議相關(guān)網(wǎng)絡(luò)協(xié)議和移動(dòng)設(shè)備的流媒體服務(wù)器。 近年來(lái)直播已成為互聯(lián)網(wǎng)行業(yè)的大熱話題,直播答題、游戲直播、競(jìng)賽直播等層出不窮,直播早已成為人們耳熟能詳?shù)募夹g(shù)。事實(shí)上直播的興起不僅與新時(shí)代人們要求為自己代言的心理有關(guān),同時(shí)也得益于帶寬的提速和CDN技術(shù)的發(fā)展。伴隨著CDN...

    Cristalven 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<