天天看點

rtsp伺服器搭建_直播系統搭建所用到的技術原理

在開發直播系統平台中,會運用到非常多的技術難點,例如視訊/音頻處理,圖形處理、視訊/音頻壓縮、CDN分發等,每一個技術都夠學好幾年的。今天就跟大家介紹一下開發一套視訊直播系統,整個流程中所運用到的技術原理大概是哪些。

首先我們來了解一下一個完整的直播APP原理是:把主播錄制的視訊,推送到伺服器,再由伺服器分發給觀衆觀看。

流程: 采集 —>處理—>編碼和封裝—>推流到伺服器—>伺服器流分發—>播放器流播放

rtsp伺服器搭建_直播系統搭建所用到的技術原理

(圖檔轉載自網絡)

1. 采集視訊、音頻

采集是整個視訊推流過程中的第一個環節,它從系統的采集裝置中擷取原始視訊資料,将其輸出到下一個環節。視訊的采集是指音頻采集和圖像采集:音頻資料既能與圖像結合組合成視訊資料,也能以純音頻的方式采集播放,純音頻采集播放在很多成熟的應用場景如線上電台和語音電台等起着非常重要的作用。圖像采集是将圖像采集的圖檔結果組合成一組連續播放的動畫,即構成視訊中可肉眼觀看的内容。對于采集,PC端需要各種型号的攝像頭的驅動,Andriod端要做很多手機機型的适配工作,ios端就比較簡單。

2.視訊處理(如美顔、水印)

視訊或者音頻完成采集之後得到原始資料,為了增強一些現場效果或者加上一些額外的效果,我們一般會在将其編碼壓縮前進行處理,處理環節中分為音頻和視訊處理,音頻進行中具體包含混音、降噪和聲音特效等處理,視訊進行中包含美顔、水印、以及各種自定義濾鏡等處理。美顔美化功能是線上直播系統開發的标配,且以動态貼紙為代表的AI技術也被廣泛應用于音視訊直播系統方案中。

rtsp伺服器搭建_直播系統搭建所用到的技術原理

(圖檔轉載自網絡)

3.編解碼、封裝

編碼是資訊從一種形式或格式轉換為另一種形式的過程也稱為計算機程式設計語言的代碼簡稱編碼。解碼,是編碼的逆過程,使用相關硬體或軟體對接收到的編碼後的音視訊資料進行解碼,得到可以直接顯示的圖像或聲音。編解碼就好比物流系統中配貨和裝貨的過程,這個過程直接就影響視訊圖像文字在網絡傳輸中的速度。封裝,就類似媒體的容器,是把編碼器生成的多媒體内容(視訊,音頻,字幕,章節資訊等)混合封裝在一起的标準。封裝使得不同多媒體内容同步播放變得簡單,也為多媒體内容提供索引,也就是說如果沒有封裝存在的話一部影片你隻能從一開始看到最後,不能拖動進度條,而且如果你不自己去手動另外載入音頻就沒有聲音。

4.推流到伺服器

推流,就是将采集到的音頻、視訊資料通過流媒體協定發送到流媒體伺服器。推流對這個直播鍊路影響非常大,如果推流的網絡不穩定,無論我們如何做優化,觀衆的體驗都會很糟糕,是以也是我們排查問題的第一步。推送協定主要有三種:

(1)RTSP(Real Time Streaming Protocol):實時流傳送協定,是用來控制聲音或影像的多媒體串流協定, 由Real Networks和Netscape共同提出的;

(2)RTMP(Real Time Messaging Protocol):實時消息傳送協定,是Adobe公司為Flash播放器和伺服器之間音頻、視訊和資料傳輸 開發的開放協定;

(3)HLS(HTTP Live Streaming):是蘋果公司(Apple Inc.)實作的基于HTTP的流媒體傳輸協定。

RTMP 是目前主流的流媒體傳輸協定,廣泛用于直播領域,可以說市面上絕大多數的直播産品都采用了這個協定,也有部分使用HLS協定。

rtsp伺服器搭建_直播系統搭建所用到的技術原理

(圖檔轉載自網絡)

5.伺服器流分發

流媒體伺服器的作用是負責直播流的釋出和轉播分發功能。

常用伺服器

SRS:一款國人開發的優秀開源流媒體伺服器系統

BMS:也是一款流媒體伺服器系統,但不開源,是SRS的商業版,比SRS功能更多

nginx:免費開源Web伺服器,常用來配置流媒體伺服器

自建流媒體伺服器局限性很大,費用也比較高昂,建議交給CDN服務商。

6. 播放器流播放

主要是實作直播節目在終端上的展現。如果使用的傳輸協定是RTMP, 那麼隻要支援 RTMP 流協定的播放器都可以使用,譬如:電腦端:VLC等;手機端:Vitamio以及ijkplayer等。

希望通過以上直播技術原理的闡述,在幫助大家更好地了解直播系統如何搭建的同時,也能夠幫助大家優化自己的直播系統解決方案。