步驟 5:設定串流軟體 - Amazon IVS

步驟 5:設定串流軟體

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

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

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

  • 其他串流軟體和硬體編碼器:您可以使用任何支援 RTMP、RTMPS 或 SRT 通訊協定的串流編碼器。以下介紹幾個範例,說明如何運用 Open Broadcast Software (OBS) 與 FFmpeg,結合 RTMPS 和 SRT 進行串流。RTMPS 透過使用加密的 TLS 串流來實現高安全性。

主要編碼器設定為關鍵影格間隔 (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 定價頁面上的即時影片輸入費用

透過 RTMPS 使用 OBS Studio 串流

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

請依照以下步驟,使用 OBS Studio v30.2 以上版本快速開始並執行:

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

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

  3. 串流資訊中,從服務下拉式清單中選擇 Amazon IVS,然後輸入串流金鑰

    如果您是使用 Amazon IVS 主控台建立頻道,則您在 OBS 中輸入的串流金鑰就是主控台的串流金鑰sk_us-west-2_abcd1234efgh5678ijkl

    如果您是使用 AWS CLI 建立頻道,則您在 OBS 中輸入的串流金鑰是來自 CLI 回應的 streamKey 值 sk_us-west-2_abcd1234efgh5678ijkl

    如果您的 IVS 頻道設定為多軌視訊輸入,請選取啟用多軌視訊。或者,您也可以自行設定視訊軌數上限串流頻寬上限,這樣就能限制系統自動幫您設定的串流參數。

  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. 從下拉式清單中選擇 Amazon IVS

  3. 貼上串流金鑰

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

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

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

透過 SRT 使用 OBS Studio 串流

請依照下列步驟,使用安全可靠的傳輸通訊協定快速開始並執行:

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

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

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

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

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

      • 擷取通訊協定:srt://

      • CLI 回應中 srt 結構的端點

        a1b2c3d4e5f6.srt.live-video.net

      • 連接埠:9000

      • 串流 ID,這是來自 CLI 回應的 streamKey 值

        sk_us-west-2_abcd1234efgh5678ijkl

      • 用於加密內容的密碼短語。只有在未啟用不安全的擷取時,才能使用此功能。

        ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ

      完整項目為:

      srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ

    • 使用 SRT 通訊協定時,OBS 中輸入的串流金鑰會保持空白。

  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 設定:

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

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

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

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

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

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

使用 FFmpeg 軟體透過 RTMPS 串流錄製的視訊

請遵循下列步驟:

  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

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

使用 FFmpeg 軟體透過 SRT 串流錄製的視訊

  1. 下載並安裝 FFmpeg:https://www.ffmpeg.org/download.html。如果您是使用舊/編譯版本的 FFmpeg,請使用 --enable-libsrt 標記建置新版本。

  2. 確認 FFmpeg 是否支援 SRT:執行下列命令,並檢查輸出結果中是否包含 libsrt。如未顯示 libsrt,請重建或取得支援 SRT 的較新版 FFmpeg。

    ffmpeg -version | grep enable-libsrt
  3. $VIDEO_FILEPATH 設定為要串流 MP4 影片的位置:

    VIDEO_FILEPATH=/home/test/my_video.mp4
  4. STREAM_KEY 設定為您的 StreamKey

    STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
  5. INGEST_ENDPOINT 設定為您的端點 (從 srt 物件下的 AWS CLI 取得):

    INGEST_ENDPOINT=a1b2c3d4e5f6.srt.live-video.net
  6. PASSPHRASE 設定為您的密碼短語 (從 srt 物件下的 AWS CLI 取得)。只有在頻道未啟用不安全的擷取時,才使用密碼短語。

    PASSPHRASE=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
  7. 開始使用以下終端命令進行串流 (這是全部一行):

    ffmpeg -re -i $VIDEO_FILEPATH -c copy -f mpegts "srt://$INGEST_ENDPOINT:9000?streamid=$STREAM_KEY&passphrase=$PASSPHRASE”