【秒懂音視訊開發】26_RTMP伺服器搭建

M了個J發表於2021-07-30

從本節開始,正式開啟流媒體相關的內容。

流媒體

基本概念

流媒體(Streaming media),也叫做:流式媒體。

  • 是指將一連串的多媒體資料壓縮後,經過網際網路分段傳送資料,在網際網路上即時傳輸影音以供觀賞的一種技術與過程
  • 此技術使得資料包可以像流水一樣傳送,如果不使用此技術,就必須得先下載整個媒體檔案才能進行觀看

流媒體的一個非常典型、火爆的應用場景:直播。近幾年,直播行業是蒸蒸日上。

直播架構

下面放幾張圖片,簡單瞭解一下直播技術的基本架構。

簡單

詳細

你可能會有個疑問:信令伺服器是幹嘛用的?用來處理分享端和觀看端的一些信令指令,比如建立房間、加入房間等。

京東雲

百度智慧雲

用文字總結一下基本流程是:

  • 分享端(比如主播) -> 產生音視訊 -> 編碼壓縮音視訊 -> 推流到伺服器
  • 觀看端(比如觀眾) -> 從伺服器拉流 -> 解碼解壓縮音視訊 -> 播放音視訊

推拉流

  • 推流:通過流媒體協議,將音視訊資料傳送到流媒體伺服器
  • 拉流:通過流媒體協議,從流媒體伺服器上拉取獲得音視訊資料

流媒體協議

常見的流媒體協議有:RTMP、HLS等。

  • RTMP(Real-Time Messaging Protocol)
    • 譯為:實時訊息傳輸協議,由Adobe公司出品
    • 預設基於TCP的1935埠
  • HLS(HTTP Live Streaming)
    • 基於HTTP的流媒體網路傳輸協議,蘋果公司出品
    • 參考:RFC 8216

本文主要介紹RTMP協議相關知識。

伺服器環境

首先,要搭建好RTMP伺服器環境,主要步驟如下:

  • 安裝虛擬機器VMWareParallels Desktop
    • 我這裡安裝的是VMWare
  • 在虛擬機器上安裝CentOS系統
    • CentOS是Linux系統的一種,這裡用7.6版本,建議跟我的版本保持一致
  • 在CentOS系統中安裝nginxnginx-rtmp-module
    • nginx:一款高效能的開源web伺服器
    • nginx-rtmp-module:讓nginx支援rtmp
  • 配置nginx
  • 啟動nginx

安裝CentOS

下載CentOS

推薦網站:centoschina,上面有CentOS的各種版本,這裡下載CentOS-7-x86_64-DVD-1810.iso,大小是4G多。

安裝nginx

nginx官網下載目前最新的穩定版:nginx-1.20.1.tar.gz

安裝nginx-rtmp-module

nginx-rtmp-module的github下載目前最新的穩定版:v1.2.2.tar.gz

配置nginx

啟動nginx

相關文章