直播系統簡介

      在〈直播系統簡介〉中尚無留言

直播系統極為複雜,難度非常高,從系統伺服器架設、程式撰寫、到最後的商業化,工程龐大且極為複雜。這牽涉到手機的影像擷取、錄製、壓縮、硬体編碼、網路 RTMP 推播、客戶端拉播。

RTMP 為 Real-Time Messaging Protocol 縮寫,由 Adobe 開發的媒體傳輸協議,使用 TCP 協定。RTMP 所傳輸的影片以 FLV 為主,當然 RTMP 也可以是具有完整影片片長的非直播 ,這個直播協議的即時性很好,延遲也比較小。

最後附帶一提,目前很火紅可以看有線電視的安博盒子,也是使用 RTMP 協定。

流程

一般推拉播的方式,需有一台RTMP伺服器,然後使用 OBS 軟体將影片推播到伺服器,最後客戶端啟動瀏覽器連線到伺服器中進行拉播。

RTMP 伺服器通常使用 Linux 安裝 Nginx 即可。推播可以先在 Windows 中安裝 OBS 軟体測試推播,待能成功推播後,再把 OBS 推播改成 Android 推播。

本篇大類

本篇將依如下順序說明推播功能的設定

  1. RTMP 伺服器架設
  2. OBS 推播測試
  3. Video.js 影片播放
  4. Android – 照像機錄影
  5. Android – MediaCodec 編碼
  6. Android – RTMP 推播

RTMP 伺服器架設

接收 Andorid 傳回的影像,然後也要負責將影片傳送到客戶端。這要使用 ubuntu 的 nginx 伺服器。

OBS 推播測試

安裝 OBS 軟体,並進行設定推播

Video.js 影片播放

使用 Video.js 撰寫 html 影片播放網頁。

Android 錄影

如何啟動 Android 照像機進行錄影,本身就是一個大工程。本專案採用 CameraX 撰寫

MediaCodec 編碼

Android 手機要將照像機收集到的影像進行編碼,包裝成 flv 格式。

Android推播

在 Android 手機要把編碼後的資料透過網路傳送到 Linux 伺服器。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *