步驟 5:設定串流軟體 - Amazon Interactive Video Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 5:設定串流軟體

您可以使用以下方式串流 (低延遲) 到 Amazon IVS:

  • 支援 RTMPS 的原生 IVS 廣播 SDK。建議採用此方式,尤其在生產情境下。

  • Amazon IVS 主控台:適用於測試串流。

  • 其他流媒體軟體:下文說明兩個範例,Open Broadcast Software (OBS)FFmpeg。皆支援 RTMPS 和 RTMP,如 Amazon IVS。RTMPS 透過使用加密的 TLS 串流來實現高安全性。您可以使用支援 RTMPS 或 RTMP 的任何串流軟體。

主要編碼器設定為關鍵影格間隔 (2 秒) 和解析度/位元速率/影格播放速率 (相互關聯)。如需有關編碼器設定的詳細資訊,請參閱:

備註

  • Amazon IVS 串流的最長持續時間為 48 小時。之後,串流終止並且串流工作階段中斷連線。成功的重新連線 (自動或手動) 會啟動新的串流。

  • 如果編碼器停止傳送資料 (例如,因為暫時性的網路問題而停止傳送),Amazon IVS 會等待 30 秒。如果在此期間沒有收到任何廣播器資料,Amazon IVS 就會中斷連線。

使用 Amazon IVS 廣播開發套件進行串流

若要從您的 iOS 或 Android 應用程式廣播,您可以使用 Amazon IVS 廣播開發套件。廣播開發套件利用了 Amazon IVS 架構,並且會持續使用 Amazon IVS 的改善項目和新功能。作為原生行動廣播開發套件,其設計目的是針對您的應用程式和使用者存取應用程式的裝置,將效能影響降至最低。

若要從...廣播 您可以使用... 備註
Android 或 iOS 應用程式 Amazon IVS Android 或 iOS 廣播開發套件 作為原生行動廣播開發套件,其設計目的是針對您的應用程式和使用者存取應用程式的裝置,將效能影響降至最低。
Web 環境 Amazon IVS Web 廣播開發套件 作為 Web 廣播開發套件,Amazon IVS Web 廣播開發套件可讓您使用 WebRTC 從 Web 環境進行廣播。其擁有跨瀏覽器和跨平台的支援。

如需詳細資訊,請參閱 IVS 廣播 SDK (低延遲串流)

使用 Amazon IVS 主控台進行串流

  1. 開啟 Amazon IVS 主控台

    (您也可以透過 AWS 管理主控台來存取 Amazon IVS 主控台。)

  2. 在導覽窗格中選擇頻道。(如果導覽窗格已收起,選取漢堡圖示即可展開。)

  3. 選擇要廣播的頻道,前往其詳細資訊頁面。

  4. 選取廣播索引標籤。(索引標籤位於一般組態區段下方)。

  5. 系統會提示您授予 IVS 主控台存取攝影機和麥克風的權限;請允許這些權限。

  6. 廣播索引標籤的底部,使用下拉式方塊選擇麥克風和攝影機的輸入裝置。

  7. 若要開始串流,請選取開始廣播

  8. 若要檢視即時串流,請前往播放索引標籤。

    注意:開始串流後,預期會有短暫的延遲 (通常在 30 秒內),才能在播放索引標籤中檢視。

您可以使用此功能同時廣播到多個頻道。

請注意:從主控台進行串流會耗用資源,而且會產生即時影片輸入費用。如要深入了解,請參閱 IVS 定價頁面上的即時影片輸入費用

與 OBS Studio 串流

(OBS Studio) 是一個免費的開放原始碼軟體套件,用於錄製和即時串流。OBS 提供即時來源和裝置擷取、場景合成、編碼、錄製和串流。

依照以下步驟,使用 OBS Studio 快速開始並執行:

  1. 下載並安裝軟體:https://obsproject.com/download

  2. 執行 OBS Studio 自動組態精靈,它在您第一次載入 OBS Studio 時出現。請依照步驟執行並接受預設值。

  3. Stream Information (串流資訊) 中,從 Service (服務) 下拉式選單中選擇 Custom... (自訂...) 並輸入 Server (Ingest server) (伺服器 (擷取伺服器)) 和 Stream Key (串流金鑰)。

    如果您使用 Amazon IVS 主控台建立頻道:

    • 您在 OBS 中輸入的 Server (伺服器) 是主控台中的 Ingest server (擷取伺服器):

      rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/

    • 您在 OBS 中輸入的串流金鑰是來自主控台的串流金鑰

      sk_us-west-2_abcd1234efgh5678ijkl

    如果您使用 AWS CLI 建立頻道:

    • 您在 OBS 中輸入的伺服器是四項組合:

      • 擷取通訊協定:rtmps:// (注意:若為不安全的擷取串流建立頻道,請指定 rtmp://)

      • 來自 CLI 回應的 ingestEndpoint

        a1b2c3d4e5f6.global-contribute.live-video.net

      • 連接埠:443

      • 路徑:/app/

      完整項目為:

      rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/

    • 您在 OBS 中輸入的串流金鑰是來自 CLI 回應的 streamKey 值

      sk_us-west-2_abcd1234efgh5678ijkl

  4. 對於 Video Output Resolution (影片輸出解析度) 和 Bitrate (位元速率),請參閱 Amazon IVS 串流組態中的頻道類型。如果 OBS 精靈選擇的任一值超過了 Amazon IVS 允許的值,您應該手動調整值以避免與 Amazon IVS 的連線失敗。精靈完成後:

    1. 若要調整影片解析度,請使用 Settings > Video > Output (Scaled) Resolution (設定 > 影片 > 輸出 (縮放) 解析度)。

    2. 若要調整影片位元速率,請使用 Settings > Output > Streaming > Video Bitrate (設定 > 輸出 > 串流 > 影片位元速率)。

  5. 建議使用 2 秒的關鍵影格間隔來提高串流穩定性,並避免在觀眾播放時緩衝。精靈完成後,進入 Settings > Output > Output Mode (設定 > 輸出 > 輸出模式),選取 Advanced (進階),並確保 Streaming (串流) 索引標籤中的 Keyframe Interval (關鍵影格間隔) 為 2。

  6. 在 OBS Studio 主視窗中,選擇開始串流

有關使用 OBS Studio 進行串流的更多資訊,請參閱 OBS Studio 快速入門

您可以稍後手動修改您的 OBS 設定:

  1. 選擇 Settings > Stream (設定 > 串流)。

  2. 從下拉式清單中選擇 Custom (自訂)。

  3. Server (伺服器) 和/或 Stream Key (串流金鑰) 中貼上。

您可以隨時再次執行精靈:選擇 Tools > Auto-Configuration Wizard (工具 > 自動組態精靈)。

或者,在設定 > 一般中,請啟用本機錄製功能,以儲存您的即時串流供日後使用。如前所述,廣播和 AWS 之間或 AWS 內部的網路問題可能會導致在錄製串流時遺失某些資料。在這些情況下,Amazon IVS 會將即時串流優先於錄製。透過串流工具進行本機錄製,可提供備援。

建議您定期檢查 OBS Studio 更新並更新至最新版本。(例如,如果您收到「無法連接至伺服器」錯誤,則可能正在使用不支援 RTMPS 的舊版本的 OBS Studio。)

使用 FFmpeg 串流錄製的影片

請遵循下列步驟:

  1. 下載並安裝 FFmpeg:https://www.ffmpeg.org/download.html

  2. $VIDEO_FILEPATH 設定為要串流 MP4 影片的位置:

    VIDEO_FILEPATH=/home/test/my_video.mp4
  3. 設置STREAM_KEY為您的 StreamKey

    STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
  4. INGEST_ENDPOINT 設定為 ingestEndpoint (從 AWS CLI 進行):

    INGEST_ENDPOINT=a1b2c3d4e5f6.global-contribute.live-video.net
  5. 開始使用以下終端命令進行串流 (這是全部一行):

    ffmpeg -re -stream_loop -1 -i $VIDEO_FILEPATH -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://$INGEST_ENDPOINT:443/app/$STREAM_KEY

    請注意,上述命令是一個範例。對於生產串流,請根據您的需要調整參數。