整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          SRS RTMP/HLS低延時模式

          前主流的流媒體服務器主要有 nginx-rtmp、crtmpd、wowza、red5、adobe fms等。

          支持的網(wǎng)絡協(xié)議對比

          協(xié)議是服務器的基礎,協(xié)議決定了關鍵應用場景,譬如毫秒級別延時只能用udp,秒級別延遲用RTMP,十秒級別可以用HLS。

          Feature

          SRS

          NGINX

          CRTMPD

          AMS

          WOWZA

          RTMP

          Stable

          Stable

          Stable

          Stable

          Stable

          HLS

          Stable

          Stable

          X

          Stable

          Stable

          HTTP FLV

          Stable

          X

          X

          X

          X

          HLS(aonly)

          Stable

          X

          X

          Stable

          Stable

          HDS

          Experiment

          X

          X

          Stable

          Stable

          MPEG-DASH

          Experiment

          X

          X

          X

          X

          HTTP Server

          Stable

          Stable

          X

          X

          Stable

          1、RTMP延時特點

          延遲較低:

          比起YY的那種UDP私有協(xié)議,RTMP算延遲大的(延遲在1-3秒),比起HTTP流的延時(一般在10秒以上)RTMP算低延時。

          一般的直播應用,只要不是電話類對話的那種要求,RTMP延遲是可以接受的。在一般的視頻會議(參考SRS的視頻會議延時)應用中,RTMP延時也能接受,原因是別人在說話的時候我們一般在聽,實際上1秒延時沒有關系,我們也要思考(話說有些人的CPU處理速度還沒有這么快)。

          有累積延遲:

          技術一定要知道弱點,RTMP有個弱點就是累積誤差,原因是RTMP基于TCP不會丟包。所以當網(wǎng)絡狀態(tài)差時,服務器會將包緩存起來,導致累積的延遲;待網(wǎng)絡狀況好了,就一起發(fā)給客戶端。這個的對策就是,當客戶端的緩沖區(qū)很大,就斷開重連。當然SRS也提供配置。

          2、延時影響因素

          • GOP
          • SRS可以關閉GOP的cache來避免這個影響
          • 服務器性能太低
          • 服務器來不及發(fā)送數(shù)據(jù)
          • 播放端
          • 譬如flash客戶端的NetStream.bufferTime設置為10秒,那么延遲至少10秒以上
          • 推流端
          • GOP、Profile、Tune等編碼參數(shù)

          SRS集群(邊緣)不會增加延遲

          C++音視頻學習資料免費獲取方法:關注音視頻開發(fā)T哥,點擊「鏈接」即可免費獲取2023年最新C++音視頻開發(fā)進階獨家免費學習大禮包!


          3、編寫配置文件

          配置SRS為低延時模式,可以將RTMP延遲降低到0.8-3秒:

          # conf/realtime.conf
          listen              1935;
          max_connections     1000;
          vhost __defaultVhost__ {
              tcp_nodelay     on;
              min_latency     on;
          
              play {
                  gop_cache       off;
                  queue_length    10;
                  mw_latency      100;
              }
          
              publish {
                  mr off;
              }
          }

          低延時模式影響性能,更多參考如下:

          github.com/ossrs/srs/w…

          可以將HLS延遲降低到3-5秒:

          listen              1935;
          max_connections     1000;
          vhost __defaultVhost__ {
              hls {
                  enabled            on;
                  hls_path           ./objs/nginx/html;
                  hls_fragment       0.2;
                  hls_window         2;
                  hls_wait_keyframe  off;
              }
          }

          HLS還可考慮使用FLV協(xié)議替換

          4、編碼參數(shù)設置

          GOP = 1;Profile = baseline; Tune = zerolatency (主要是GOP編碼參數(shù)),例如OBS的編碼設置如下:

          測試結果,RTMP為1秒、m3u8為3秒:

          作者:郎涯技術 鏈接:https://juejin.cn/post/6996664571117174798

          #音視頻開發(fā)#

          LS (HTTP Live Streaming),Apple的動態(tài)碼率自適應技術。主要用于PC和Apple終端的音視頻服務。包括一個m3u(8)的索引文件,TS媒體分片文件和key加密串文件。

          HLS (HTTP Live Streaming)

          常用的流媒體協(xié)議主要有 HTTP 漸進下載和基于 RTSP/RTP 的實時流媒體協(xié)議,這二種基本是完全不同的東西,目前比較方便又好用的是用 HTTP 漸進下載方法。在這個中 apple 公司的 HTTP Live Streaming 是這個方面的代表。它最初是蘋果公司針對iPhone、iPod、iTouch和iPad等移動設備而開發(fā)的流.現(xiàn)在見到在桌面也有很多應用了,HTML5 是直接支持這個。

          但是HLS協(xié)議的小切片方式會生成大量的文件,存儲或處理這些文件會造成大量資源浪費。如果要實現(xiàn)數(shù)天的時移,索引量將會是個巨額數(shù)字,并明顯影響請求速度。因此,HLS協(xié)議對存儲I/O要求相當苛刻。對此,也有公司提出了非常好的解決方案。

          新型點播服務器系統(tǒng),獨創(chuàng)了內(nèi)存緩存數(shù)據(jù)實時切片技術,顛覆了這種傳統(tǒng)實現(xiàn)方法,從根本上解決了大量切片的碎片問題,使得單臺服務器的切片與打包能力不再是瓶頸。其基本原理如下:

          不將TS切片文件存到磁盤,而是存在內(nèi)存當中,這種技術使得服務器的磁盤上面不再會有“數(shù)以噸計”的文件碎片,極大減少了磁盤的I/O次數(shù),延長了服務器磁盤的使用壽命,極大提高了服務器運行的穩(wěn)定性。同時,由于使用這種技術,使得終端請求數(shù)據(jù)時直接從服務器的內(nèi)存中獲取,極大提高了對終端數(shù)據(jù)請求的反應速度,優(yōu)化了視頻觀看體驗。


          使用下面兩個工具

          1、ffmpeg(下載地址:http://ffmpeg.org/download.html)

          ffmpeg用來負責把直播流(RTSP)切片成*.ts文件

          主要參數(shù):

          -i 設定輸入流

          -f 設定輸出格式

          -ss 開始時間

          視頻參數(shù):

          -b 設定視頻流量,默認為200Kbit/s

          -r 設定幀速率,默認為25

          -s 設定畫面的寬與高

          -aspect 設定畫面的比例

          -vn 不處理視頻

          -vcodec 設定視頻編解碼器,未設定時則使用與輸入流相同的編解碼器

          -keyint_min 60 最小關鍵幀間隔

          -g 60 GOP 長度

          -sc_threshold 0 根據(jù)視頻的運動場景,自動為你添加額外的I 幀,所以會導致你編出來的視頻關鍵幀間隔不是你設置的長度,

          這是只要將它設為0

          音頻參數(shù):

          -ar 設定采樣率

          -ac 設定聲音的Channel 數(shù)

          -acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器

          -an 不處理音頻

          ----------------------------------------------------分隔線----------------------------------------------------

          主要參數(shù)

          -i 設定輸入檔名。

          -f 設定輸出格式。

          -y 若輸出檔案已存在時則覆蓋檔案。

          -fs 超過指定的檔案大小時則結束轉換。

          -ss 從指定時間開始轉換。

          -title 設定標題。

          -timestamp 設定時間戳。

          -vsync 增減Frame 使影音同步。

          影像參數(shù)

          -b 設定影像流量,默認為200Kbit/秒。( 單位請參照下方注意事項)

          -r 設定FrameRate 值,默認為25。

          -s 設定畫面的寬與高。

          -aspect 設定畫面的比例。

          -vn 不處理影像,于僅針對聲音做處理時使用。

          -vcodec 設定影像影像編解碼器,未設定時則使用與輸入檔案相同之編解碼器。

          聲音參數(shù)

          -ab 設定每Channel(最近的SVN 版為所有Channel 的總合)的流量。( 單位請參照下方注意事項)

          -ar 設定采樣率。

          -ac 設定聲音的Channel 數(shù)。

          -acodec 設定聲音編解碼器,未設定時與影像相同,使用與輸入檔案相同之編解碼器。

          -an 不處理聲音,于僅針對影像做處理時使用。

          -vol 設定音量大小,256 為標準音量。(要設定成兩倍音量時則輸入512,依此類推。)

          注意事項

          以-b 及ab 參數(shù)設定流量時,根據(jù)使用的ffmpeg 版本,須注意單位會有kbits/sec 與bits/sec 的不同。(可用ffmpeg -h 顯

          示說明來確認單位。)

          例如,單位為bits/sec 的情況時,欲指定流量64kbps 時需輸入‘ -ab 64k ’;單位為kbits/sec 的情況時則需輸入‘ -ab 64 ’。

          以-acodec 及-vcodec 所指定的編解碼器名稱,會根據(jù)使用的ffmpeg 版本而有所不同。例如使用AAC 編解碼器時,會有輸入aac

          與libfaac 的情況。此外,編解碼器有分為僅供解碼時使用與僅供編碼時使用,因此一定要利用ffmpeg -formats 確認輸入的

          編解碼器是否能運作。

          2、WEB服務器(IIS,Apache,Nginx)分發(fā)切片

          web服務器配置在這里就不多說了。


          demo:http://live.16it.wang


          如有需要源碼的可以聯(lián)系我:519468341

          LS,HTTP,RTSP,RTMP協(xié)議的區(qū)別:

          • 用HTTP方式: 先通過服務器將FLV下載到本地緩存,然后再通過NetConnection的本地連接來播放這個FLV,這種方法是播放本地的視頻,并不是播放服務器的視頻。因此在本地緩存里可以找到這個FLV。其優(yōu)點就是服務器下載完這個FLV,服務器就沒有消耗了,節(jié)省服務器消耗。其缺點就是FLV會緩存在客戶端,對FLV的保密性不好。

          是一種將直播流模擬成FLV文件,通過HTTP協(xié)議進行下載的模式來實現(xiàn)流媒體傳輸?shù)膮f(xié)議,端口號80
          一般建議使用HTTP FLV,實時性和RTMP相等。
          優(yōu)點:HTTP相比于RTMP省去了一些協(xié)議交互時間,首屏時間更短。HTTP可拓展的功能更多。


          • 用RTMP方式: 通過NetConnection連接到FMS(Flash Media Server)或Red5服務器,并實時播放服務器的FLV文件,這種方式可以任意選擇視頻播放點,并不象HTTP方式需要緩存完整個FLV文件到本地才可以任意選擇播放點,其優(yōu)點就是在本地緩存里是找不到這個FLV文件的。其優(yōu)點就是FLV不會緩存在客戶端,F(xiàn)LV的保密性好,其缺點就是消耗服務器資源,連接始終是實時的。
          • 由以上分析可知,Http方式是本地播放,而RTMP方式是服務器實時播放.

          Adobe公司的流媒體傳輸協(xié)議,端口號1935
          普通網(wǎng)絡用戶均可使用,包括非IOS平臺用戶,對非80端口(如1935)無限制的網(wǎng)絡環(huán)境用戶。
          優(yōu)點:防HTTP下載,延時短。


          • RTSP: RTSP 1.0標準的制訂者沒有充分預測到互聯(lián)網(wǎng)帶寬的快速增長,以及由于IPv4地址短缺導致的NAT技術的廣泛使用,還有代理服務器的大量存在,它在傳輸可靠性和易用性上都存在一定的缺陷。雖然各家廠商都做了一定程度的修補,比如支持RTSP over HTTP,支持NAT穿透等,但仍然于事無補。在2005之后網(wǎng)絡視頻大爆炸的幾年中,RTSP 1.0并沒有得到y(tǒng)outube, hulu, 土豆,優(yōu)酷等視頻服務提供商的青睞,相反,Adobe公司開發(fā)的私有流媒體技術RTMP以其優(yōu)秀的易用性和富媒體的一體化集成,得到了多數(shù)視頻服務提供商的追捧,成為了事實上的標準.

          缺點:web端播放rtsp流的話,需要寫插件,而且對瀏覽器也很挑剔,flash不支持rtsp,需要做activeX插件

          目前的CDN都是基于RTMP的


          • HLS(Http Living Streaming): 從2010年起,蘋果開始在iOS設備上支持一種叫做”Live HTTP”的流媒體技術,并宣布在iOS上不會支持RTSP和Flash技術。Live HTTP本質(zhì)上跟基于HTTP的文件分段下載很接近。在帶寬充裕的前提下,live HTTP能夠實現(xiàn)跟RTSP和RTMP同樣的流媒體播放效果,同時得到了更好的易用性,更簡單的控制。
            在最新一代的超文本標識語言HTML5中,視頻文件的點播,同樣也采用了HTTP作為其承載協(xié)議。

          HLS
          IOS平臺下的流媒體傳輸協(xié)議 ,端口號80
          優(yōu)點:H5瀏覽器支持比較好,IOS,安卓原生支持。
          缺點:延遲性比較大。樓上說的切片,關鍵幀改變后切片時間可以縮短,而且可以自己設定首次產(chǎn)生多少分片。


          音視頻開發(fā)教學視頻:【免費】FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級開發(fā)-學習視頻教程-騰訊課堂


          主站蜘蛛池模板: 精品无码人妻一区二区三区| 一区二区三区在线观看| 日韩精品无码中文字幕一区二区| 久久人做人爽一区二区三区| 无码毛片一区二区三区中文字幕| 人妻少妇精品视频一区二区三区 | 精品国产鲁一鲁一区二区| 日韩社区一区二区三区| 国产精品一区二区久久乐下载| 国偷自产av一区二区三区| 一区二区在线视频观看| 色噜噜一区二区三区| 国产精品一区二区久久乐下载| 亚洲性无码一区二区三区| 文中字幕一区二区三区视频播放| 中文字幕在线无码一区二区三区| 动漫精品专区一区二区三区不卡| 国模精品视频一区二区三区| 精品一区二区三区在线成人| 91精品国产一区| 亚洲av成人一区二区三区| 国产香蕉一区二区精品视频| 亚洲国产美女福利直播秀一区二区| 99久久精品国产一区二区成人| 亚洲国产成人久久综合一区| AA区一区二区三无码精片| 亚洲日韩一区二区三区| 无码一区二区三区亚洲人妻 | 亚洲AV日韩AV天堂一区二区三区| 国产精品小黄鸭一区二区三区 | 国产精品成人国产乱一区| 国产凹凸在线一区二区| 无码乱人伦一区二区亚洲一| 久久亚洲综合色一区二区三区| 一区二区三区伦理高清| 3d动漫精品啪啪一区二区免费| 国产人妖在线观看一区二区| 一区二区三区免费电影| 秋霞无码一区二区| 红杏亚洲影院一区二区三区| 欧美日韩一区二区成人午夜电影|