直播平臺折騰記——直播服務(wù)器

不會做直播還混什么互聯(lián)網(wǎng)

2016年國內(nèi)各種直播應(yīng)用如雨后春筍一般涌現(xiàn)出來,各大主打云服務(wù)的國內(nèi)互聯(lián)網(wǎng)巨頭紛紛推出了自己的視頻直播平臺的解決方案嚎花,比較優(yōu)秀的有七牛, 阿里的大視頻解決方案,網(wǎng)易的云視頻,當(dāng)然騰訊也不甘落后紊选,推出了類似的視頻云

事實(shí)上兵罢,網(wǎng)絡(luò)直播由來已久,但之所以會在2016年一下子火起來卖词,我覺得一是短視頻社區(qū)的火爆帶動(dòng)了整個(gè)視頻行業(yè),促成了網(wǎng)絡(luò)直播的流行此蜈。再者拢操,大部分人通過早期的微信公眾號舶替,微博等自媒體媒介嘗到了甜頭杠园,網(wǎng)絡(luò)直播片天地自然也不能放過顾瞪。最后各類mooc在中國大地遍地開花抛蚁,教育行業(yè)對直播也有相當(dāng)需求陈醒。最后瞧甩,事實(shí)上對于直播,國內(nèi)具有相當(dāng)?shù)募夹g(shù)積累肚逸。

網(wǎng)絡(luò)直播的技術(shù)構(gòu)架

往簡單地說直播就是在自己的設(shè)備上采集音視頻流然后推送到遠(yuǎn)程服務(wù)器再有遠(yuǎn)程服務(wù)器分發(fā)到網(wǎng)絡(luò)中的客戶端爷辙。

這可能是歷史上最粗線條的直播構(gòu)架圖

看上去很簡陋朦促,但是單就直播這個(gè)功能來說,他確實(shí)就是這么工作的务冕,但是為了讓大家看到更加高清的畫面同時(shí)又能最大限度的滿足部分用戶可憐的帶寬,編碼工作就成了視頻直播的重點(diǎn)。其次臊旭,不同的硬件的編碼方式也不同,存在各種兼容性問題离熏。同時(shí),視頻取流的客戶端也需要做各種各樣的播放器來滿足不同設(shè)備撤奸。最要命的還有服務(wù)器端的網(wǎng)絡(luò)分發(fā),怎么尋找最短的路徑用最快的時(shí)間把視頻分發(fā)出去?最后胧瓜,還有視頻延時(shí)怎么才能降到最低,音視頻的同步府喳,直播的錄像和回看和其引出的存儲問題蒲肋,權(quán)限問題钝满,內(nèi)容審核,用戶體驗(yàn)弯蚜,用戶之間的即時(shí)消息,禮物系統(tǒng)等等一系列問題的引出碎捺,最終導(dǎo)致了直播系統(tǒng)變得異常復(fù)雜路鹰,于是就有了下圖:

一個(gè)功能上基本夠用的直播系統(tǒng)(來自知乎網(wǎng)易工程師)

書歸正傳收厨,先來談?wù)勚辈シ?wù)器

目前比較主流的直播協(xié)議有以下幾種:

RTMP(延遲低,適合對實(shí)時(shí)性要求比較高的情況)

FLV OVER HTTP(延遲比RTMP高一點(diǎn)诵叁,來瘋之類在用)

HLS(高延遲,至少9秒左右拧额,適合游戲直播,Twich好像用這個(gè))

怎么選擇協(xié)議是一個(gè)讓人頭疼的問題势腮,RTMP是Adobe開發(fā)出來的一套私有協(xié)議,適用于flash player 在PC端用起來比較爽捎拯,但是到了移動(dòng)端則需要自己單獨(dú)開發(fā)播放器泪幌;HTTP-FLV,同樣依賴于flash player延時(shí)排第二祸泪,同樣不能原生支持移動(dòng)端,但其本質(zhì)上使用的是HTTP協(xié)議傳輸没隘;HLS則可以原生支持手機(jī)端,不過右蒲,延時(shí)較大。

最終瑰妄,盡管Adobe已經(jīng)正是聲明將在2020年停止開發(fā)FLASH,但是這也并不影響我使用rtmp協(xié)議间坐,誰讓網(wǎng)絡(luò)上rtmp的資料比較多呢灾挨。

RTMP服務(wù)器

目前主流的RTMP服務(wù)器又有下面這么幾種(這是要逼死選擇困難戶爸袼巍):

1.開源系統(tǒng):

Red5

Live555

RtmpD

EasyDarwin

FFServer

2.商用系統(tǒng)

NTV Media Server G3

Flash Media Server5

Windows Media Server

商用系統(tǒng),額蜈七,基本上不用考慮了,像我這種個(gè)人開發(fā)者飒硅。溯警。狡相。

然后食磕,開源系統(tǒng)也果斷一個(gè)都沒有選尽棕,最后選擇了nginx-rtmp.因?yàn)槲业闹辈ハ到y(tǒng)并沒有多么復(fù)雜彬伦,說是直播滔悉,實(shí)際上是想做一個(gè)導(dǎo)播臺单绑!

nginx-rtmp安裝

nginx-rtmp 事實(shí)上只是nginx的一個(gè)模塊回官,而且并沒有在nginx官方版本內(nèi)集成搂橙,需要在安裝nginx的時(shí)候同是編譯這個(gè)模塊進(jìn)去。

具體的安裝方法,按照一般的套路苔巨,首先是下載,然后是編譯和安裝侄泽,最后是配置。

首先悼尾,需要分別下載nginx服務(wù)器和對應(yīng)的插件 nginx-rtmp-module.

wget https://nginx.org/download/nginx-1.12.1.tar.gz

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

tar xzf nginx-1.12.0.tar.gz

cd nginx-1.12.0

然后,進(jìn)行編譯安裝:

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

sudo make

sudo make install

至此闺魏,編譯安裝完成未状!家下來啟動(dòng)nginx服務(wù)器:

sudo /usr/local/nginx/sbin/nginx

設(shè)置nginx服務(wù)器的直播流

sudo vi /usr/local/nginx/conf/nginx.conf

error_log? logs/error.log debug;? ? events {? ? worker_connections1024;}http {? ? include? ? ? mime.types;? ? default_type? application/octet-stream;? ? sendfile? ? ? ? on;? ? keepalive_timeout65;? ? server {? ? ? ? listen8080;? ? ? ? server_name? localhost;# rtmp statlocation /stat {? ? ? ? ? ? rtmp_stat all;? ? ? ? ? ? rtmp_stat_stylesheet stat.xsl;? ? ? ? }? ? ? ? location /stat.xsl {# you can move stat.xsl to a different locationroot /usr/build/nginx-rtmp-module;? ? ? ? }# rtmp controllocation /control {? ? ? ? ? ? rtmp_control all;? ? ? ? }? ? ? ? error_page500502503504/50x.html;? ? ? ? location = /50x.html {? ? ? ? ? ? root? html;? ? ? ? }? ? }}rtmp {? ? server {? ? ? ? listen1935;? ? ? ? ping30s;? ? ? ? notify_method get;? ? ? ? application myapp {? ? ? ? ? ? live on;? ? ? ? }? ? }}

設(shè)置完成之后舷胜,重啟nginx服務(wù)器:

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

sudo /usr/local/nginx/sbin/nginx

最后準(zhǔn)備一個(gè)MP4文件進(jìn)行測試:

使用ffmpeg推送視頻文件到服務(wù)器:

ffmpeg -re -i /var/Videos/test.mp4 -c copy -f flv rtmp://localhost/myapp/mystream

最后再訪問我們的直播地址:

ffplay rtmp://localhost/myapp/mystream

完美運(yùn)行

作者:一點(diǎn)簡單

鏈接:http://www.reibang.com/p/fad4eb24a9bc

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)翻伺,非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吨岭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子峦树,更是在濱河造成了極大的恐慌,老刑警劉巖魁巩,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谷遂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)肾扰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來集晚,“玉大人,你說我怎么就攤上這事偷拔】鞴常” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵铸屉,是天一觀的道長。 經(jīng)常有香客問我彻坛,道長,這世上最難降的妖魔是什么踏枣? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮间驮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘马昨。我一直安慰自己,他們只是感情好鸿捧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匙奴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泼菌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天哗伯,我揣著相機(jī)與錄音,去河邊找鬼焊刹。 笑死乳附,一個(gè)胖子當(dāng)著我的面吹牛伴澄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播非凌,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼荆针,長吁一口氣:“原來是場噩夢啊……” “哼敞嗡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起喉悴,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箕肃,沒想到半個(gè)月后婚脱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勺像,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年吟宦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殃姓。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜗侈,靈堂內(nèi)的尸體忽然破棺而出篷牌,到底是詐尸還是另有隱情宛篇,我是刑警寧澤娃磺,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布叫倍,位于F島的核電站,受9級特大地震影響吆倦,放射性物質(zhì)發(fā)生泄漏听诸。R本人自食惡果不足惜蚕泽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望须妻。 院中可真熱鬧仔蝌,春花似錦荒吏、人聲如沸敛惊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至特恬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間癌刽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工妒穴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讼油。 一個(gè)月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像矮台,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子瘦赫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

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