九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
srs之深入淺出看流媒體
本文轉(zhuǎn)載
CDN這幾年爆炸式增長(zhǎng),帶寬提速是根源,而HTTP始終還是那個(gè)屌樣,因此目前CDN大多是資本性行業(yè),不用多少知識(shí)就能干了;直到流媒體粗現(xiàn),直播咋這么難搞呢?因?yàn)樗橇髅襟w,讓我?guī)闵钊霚\出看流媒體前世今生,分分鐘二逼變牛逼。流媒體分為點(diǎn)播和直播,點(diǎn)播已經(jīng)墮落為HTTP文件了,直播永遠(yuǎn)不可能只用HTTP就OK,這是他們的業(yè)務(wù)差異導(dǎo)致的。流媒體本質(zhì)上是:現(xiàn)實(shí)的圖像,經(jīng)過(guò)編碼器壓縮,持久化為點(diǎn)播文件或者直播流,經(jīng)過(guò)傳輸,在終端解碼和展示。點(diǎn)播為何屬于HTTP而不是流媒體呢?點(diǎn)播,譬如電影或者錄制的影像,傳輸給觀看的終端時(shí)是不變的,一萬(wàn)個(gè)人看一個(gè)電影無(wú)論什么時(shí)候看都是一樣的媒體數(shù)據(jù),因此傳輸上直接使用HTTP就可以了。點(diǎn)播的流媒體特征還是有的:1.點(diǎn)播的重新編碼,譬如為不同終端輸出不同碼率和尺寸的點(diǎn)播文件,需要媒體知識(shí)了。這部分因?yàn)槭褂锰珡V泛,所以開(kāi)源屆早就支持得很成熟,ffmpeg對(duì)文件重新編碼已經(jīng)做得很好了。2.點(diǎn)播P2P,這個(gè)實(shí)際上分為客戶端的P2P和web P2P,這個(gè)和媒體沒(méi)有什么關(guān)系,但屬于點(diǎn)播需要做的范圍,沒(méi)有現(xiàn)成的方案。(插播廣告:觀止創(chuàng)想已經(jīng)支持了點(diǎn)播HLS的P2P,現(xiàn)有系統(tǒng)不用修改就可以加上web P2P)3.其他的什么分片,DRM,彈幕,分享,多終端轉(zhuǎn)封裝,文件調(diào)度,HTTP API調(diào)度,熱點(diǎn),mp4/flv-range請(qǐng)求,存儲(chǔ)等等。大多都有了成熟的方案,和HTTP文件一樣的技術(shù),要么就是播放器支持,這些和流媒體一毛錢(qián)關(guān)系都沒(méi)有。這就是為何CDN支持點(diǎn)播支持得很得心應(yīng)手,幾乎所有的CDN都能直接支持點(diǎn)播分發(fā),甚至一些新興的行業(yè)公司,譬如在線教育,對(duì)于點(diǎn)播都能自己搞。點(diǎn)播就是HTTP而已,不屬于流媒體范疇。直播呢,從古老的RTSP到RTMP,HTTP漸進(jìn)式下載,到HTTP流,到HLS和HDS,到DASH,到私有的websocket。這些不過(guò)是直播分發(fā)的表象,譬如HTTP直播流就是HTTP點(diǎn)播嗎?不是。HTTP點(diǎn)播本質(zhì)上是文件分發(fā),而HTTP流是流媒體服務(wù)器在內(nèi)存中將直播的包,打包成RTSP、RTMP、HTTP后發(fā)送給每個(gè)客戶端。當(dāng)然總有例外的,有一個(gè)公司嘗試過(guò)直播進(jìn)行點(diǎn)播化,就是時(shí)移直播,將直播流錄制成點(diǎn)播文件,然后客戶端請(qǐng)求時(shí)總是請(qǐng)求點(diǎn)播。這種私有協(xié)議遲早是要死掉的,只有自己的播放器能播,而且得在CDN上部署自己的流媒體;現(xiàn)在這個(gè)公司也放棄了自己的“高大上”的私有協(xié)議——互聯(lián)網(wǎng)的基本精神就是開(kāi)放標(biāo)準(zhǔn)??上е袊?guó)人很難認(rèn)同這個(gè)理念,牛逼的總喜歡搞私有協(xié)議,譬如使用websocket的公司,大多屬于這種類(lèi)型,牛逼的人太多就是這種結(jié)果,一般這種公司也很有錢(qián),譬如某上市的做在線秀場(chǎng)的公司。目前直播分發(fā)有幾個(gè)特點(diǎn):1.偏好flv,少用ts:flv標(biāo)準(zhǔn)11頁(yè),ts標(biāo)準(zhǔn)174頁(yè)。標(biāo)準(zhǔn)文檔十倍差異,代碼實(shí)現(xiàn)起來(lái)十倍都不止。因此一般的公司都喜歡flv,pc時(shí)代都是flv的天下,什么flv流,flv切片;因?yàn)樽约簩?xiě)代碼支持ts比較麻煩,用ffmpeg的代碼又太龐大。直到移動(dòng)端粗現(xiàn),現(xiàn)在直播只支持pc的少之又少了,使用flv作為基礎(chǔ)結(jié)構(gòu)的產(chǎn)品要么艱難轉(zhuǎn)型,要么就掩耳盜鈴說(shuō)FLV很優(yōu)雅,HLS太垃圾。2.rtmp和hls并存:rtmp一般用于pc-flash播放直播,而hls用于移動(dòng)端播放。flash能播放hls嗎?前年jwplayer就支持了,可惜是商業(yè)版不開(kāi)源;去年有很多開(kāi)源的as播放器支持hls。而直播系統(tǒng),特別是cdn的直播,不會(huì)更新這么快,pc端還是rtmp系為主。這個(gè)特點(diǎn)是由于平臺(tái)客戶端支持的流決定的,并非最佳方案,也不是用戶愿意這么干。3.實(shí)時(shí)流大多使用rtmp:實(shí)時(shí)流,延遲要求在5秒之內(nèi)的流,大多使用rtmp協(xié)議。pc上可以直接播放,移動(dòng)端就需要使用ffmpeg解碼播放。有沒(méi)有更好的分發(fā)方案?實(shí)際上http-flv比rtmp更合適,延遲一樣,要求服務(wù)器支持,pc能直接播,移動(dòng)端需要使用ffmpeg,還有個(gè)好處是能穿墻。為何cdn大多不支持http-flv直播?因?yàn)橐话愕膚eb服務(wù)器支持不了,這是個(gè)流媒體問(wèn)題。4.rtsp永遠(yuǎn)死不了:這是監(jiān)控行業(yè)的協(xié)議,我們都有門(mén)戶之見(jiàn),“RTMP這個(gè)爛貨怎么還在互聯(lián)網(wǎng)上用呢?RTSP多么優(yōu)美!”因此有監(jiān)控行業(yè)背景的公司做互聯(lián)網(wǎng)業(yè)務(wù),都帶著門(mén)戶之見(jiàn)不得已將RTSP轉(zhuǎn)RTMP,而且還要憤憤的說(shuō)——只不過(guò)是不用裝個(gè)插件而已。直播的本質(zhì)特點(diǎn),就是需要專(zhuān)門(mén)的服務(wù)器分發(fā),至少需要直播源站切片HLS后分發(fā)。也就是直播需要專(zhuān)門(mén)的流媒體服務(wù)器,目前開(kāi)源的流媒體,最古老的是RED5,后面是CRTMPD,風(fēng)生水起的是NGINX-RTMP,目前最新出的是SRS(Simple Rtmp Server)。為何RED5不能一統(tǒng)天下?RED5和FMS一樣古老,先行者如果不能放掉自己的光環(huán),遲遲不肯變革,就會(huì)被后來(lái)者超越。RED5性能是很差,但并非是因?yàn)槭褂昧薺ava的原因,這個(gè)看看wowza就知道了,商業(yè)服務(wù)器wowza雖然是個(gè)內(nèi)存殺手,但是支持的并發(fā)一點(diǎn)都不含糊。RED5沒(méi)有廣泛商用的原因可能一直是一個(gè)先行者,祖先的角色。軟件只有快速變化適應(yīng)需求才能發(fā)展,和年紀(jì)沒(méi)有關(guān)系。那么CRTMPD怎樣?牛逼!使用單進(jìn)程單線程異步socket,這是和nginx同時(shí)代的產(chǎn)物。CRTMFPD是有不少鐵桿粉絲的,以那個(gè)時(shí)代開(kāi)始做直播業(yè)務(wù)的為主。CRTMDP生不逢時(shí),遇到NGINX了,不少NGINX的粉絲是技術(shù)牛逼的人物,不然怎么能看懂void*****呢?除了社區(qū)的差異之外,CRTMPD沒(méi)有支持HLS,倒是支持了RTSP,這就是典型的倒行逆施,互聯(lián)網(wǎng)上支持RTSP,大約只有CRTMPD能想到了。NGINX-RTMP風(fēng)生水起有幾個(gè)很重要的因素。首先2012年開(kāi)始CDN業(yè)務(wù)開(kāi)始快速增長(zhǎng),隨之直播業(yè)務(wù)也需求暴漲,沒(méi)有特別滿意的流媒體服務(wù)器;其次,NGINX在HTTP領(lǐng)域絕對(duì)是霸主,大家對(duì)于NGINX系的熟悉程度很高,便于維護(hù);再次,直播點(diǎn)播使用一套服務(wù)器,很有誘惑力,這可以算是“萬(wàn)金油”效應(yīng),很多套服務(wù)器搞得焦頭爛額,肯定一套服務(wù)器能解決問(wèn)題;最后,CDN是運(yùn)維比技術(shù)牛逼的行業(yè),運(yùn)維的信心都是運(yùn)行出來(lái)的,NGINX運(yùn)行那么良好,那么NGINX-RTMP也肯定不錯(cuò)。SRS(Simple Rtmp Sever)粗來(lái)了,并非石頭縫里蹦粗來(lái)個(gè)SRS(Simple Rtmp Sever),SRS(Simple Rtmp Sever)其實(shí)誕生的歷史是:第一個(gè)版本實(shí)際上是參考NGINX,基本上和NGINX-RTMP同時(shí)間點(diǎn)做出來(lái);第二版本是改用ST作為基礎(chǔ)結(jié)構(gòu),支持RTMP直播點(diǎn)播;第三版本是從CDN出來(lái)后重寫(xiě)的,只支持直播。為何SRS(Simple Rtmp Sever)不使用NGINX那種基礎(chǔ)結(jié)構(gòu),這個(gè)和google為何開(kāi)發(fā)golang的原因一樣。SRS(Simple Rtmp Sever)和NGINX-RTMP最重要的區(qū)別有兩點(diǎn):其一,使用類(lèi)似golang的服務(wù)器架構(gòu);其二,流媒體業(yè)務(wù)驅(qū)動(dòng)的產(chǎn)品管理,如果可以裝裝逼,SRS(Simple Rtmp Sever)是以流媒體業(yè)務(wù)為主的服務(wù)器,而不是以分發(fā)協(xié)議為主的服務(wù)器。什么是以流媒體為主?流媒體系統(tǒng)的層次包括:網(wǎng)絡(luò)層(socket或st)負(fù)責(zé)傳輸,協(xié)議層(rtmp或http)負(fù)責(zé)網(wǎng)絡(luò)打包,封裝層(flv、ts、hls、hds、adts、annexb)負(fù)責(zé)編解碼數(shù)據(jù)的封裝,編碼層(h.264和aac)負(fù)責(zé)圖像壓縮。流媒體服務(wù)器的重點(diǎn)在于封裝層,譬如flv、ts、hls、hds、adts和annexb的解析和打包都是自己實(shí)現(xiàn)的代碼,參考標(biāo)準(zhǔn)規(guī)范,支持完善的封裝轉(zhuǎn)換和解析。而網(wǎng)絡(luò)層因?yàn)槭褂胹t簡(jiǎn)化,使得協(xié)議層更簡(jiǎn)單,錯(cuò)誤的概率更低,這個(gè)和流媒體的關(guān)系就不大了。什么是以業(yè)務(wù)為主?“跑起來(lái)”和“商用”是兩回事情,商用需要對(duì)于流媒體的業(yè)務(wù)有很好的支持:譬如vhost,這個(gè)是計(jì)費(fèi)才有的概念,基于app的也能計(jì)費(fèi),結(jié)果就是要求用戶不能app重復(fù),新增app需要聯(lián)系運(yùn)維,凡是添加app需要聯(lián)系運(yùn)維的cdn,肯定是NGINX-RTMP;譬如日志,出現(xiàn)問(wèn)題能將流媒體的整個(gè)鏈條的日志都能找出來(lái),從邊緣到回源鏈接,到上層節(jié)點(diǎn)的日志,一直追溯到推流連接的日志,每個(gè)日志都是基于連接的;譬如rtmp+http-flv+hls,國(guó)內(nèi)主要的直播業(yè)務(wù)都能支持,還有hds可以供那些想裝逼的客戶用;更多牛逼的業(yè)務(wù)功能就不啰嗦了。對(duì)于流媒體服務(wù)器,除非能忘記HTTP服務(wù)器,才能看清楚到底為何流媒體和HTTP沒(méi)有一毛錢(qián)關(guān)系,而流媒體在于團(tuán)隊(duì)對(duì)于流媒體和服務(wù)器的理解,而并非找到一個(gè)萬(wàn)金油服務(wù)器能涂抹掉客戶問(wèn)題。直播這么多協(xié)議,這多么服務(wù)器,當(dāng)前直播重心在哪里?該如何選擇合適的協(xié)議?只要問(wèn)自己三個(gè)問(wèn)題就可以了:1.延遲要求,是否要求低于5秒的延遲?如果是硬指標(biāo),就只能選擇RTMP或HTTP-FLV流。移動(dòng)端需要自己編譯FFMPEG支持,無(wú)法直接播放。2.終端適配,是否要求支持PC和移動(dòng)端(IOS和Android)?如果需要廣泛支持移動(dòng)端,HLS是最好的選擇。3.節(jié)約帶寬,是否要求支持WebP2P?如果需要支持FlashP2P,或者移動(dòng)端P2P,選擇HLS。當(dāng)初有個(gè)跨國(guó)老牌的流媒體公司,勸說(shuō)不要使用RTMP了,因?yàn)榘肽陼r(shí)間RTMP就會(huì)死掉,DASH會(huì)替代所有的流媒體協(xié)議?,F(xiàn)在2年過(guò)去了,RTMP和HLS除了更加爆炸性應(yīng)用之外,我看死掉的是那些過(guò)于技術(shù)至上的公司。如果用一句話說(shuō)流媒體直播:實(shí)時(shí)性要求高的用RTMP或HTTP-FLV,其他都用HLS。協(xié)議請(qǐng)參考:https://github.com/winlinvip/simple-rtmp-server/wiki/v2_CN_DeliveryHLS服務(wù)器請(qǐng)參考:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Compare關(guān)于SRS(Simple Rtmp Sever)的架構(gòu)參考:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Architecture
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
音視頻開(kāi)發(fā)——通信直播協(xié)議和視頻推流丨RTMP-RTSP
支持轉(zhuǎn)碼[流媒體]通讀SRS后的總結(jié)文檔以及搭建直播平臺(tái)的初次嘗試
運(yùn)營(yíng)級(jí)的互聯(lián)網(wǎng)直播服務(wù)器集群架設(shè),搞定這一個(gè)開(kāi)源項(xiàng)目就夠了!
在服務(wù)器上實(shí)現(xiàn)對(duì)YouTube低延遲的緩沖以方便轉(zhuǎn)播
實(shí)時(shí)流煤體協(xié)議概述
實(shí)用帖丨多校區(qū)教室直播平臺(tái)設(shè)計(jì)方案
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服