快速入門:為 MPEG2-TS 輸入建立即時工作

本教程將引導您創建一個接受MPEG2-TS輸入的實時作業。作業是使用Live API創建的。

概覽

通用區塊圖框圖

本教程在API級別說明瞭如何在中創建實時流作業Brightcove直播將接受MPEG2-TS輸入。使用MPEG2-TS輸入的關鍵是選擇一個protocol支持MPEG2-TS,並且您的編碼器可以提供。Live API支持的支持TS的協議為:

  • rtp
  • rtp-fec
  • srt

必須明確指定這些協議之一才能使用TS輸入,因為默認輸入協議為rtmp

要將 SMPTE 時間碼用於剪輯、SSAI 提示點或 ID3 標籤,應將它們插入 SEI Picture Timing 消息中的 H.264 (AVC) 視頻中。

請記住,這些協議使用UDP(用戶數據報協議)而不是TCP進行編碼器和Live之間的通信,因此您的防火牆/路由器需要正確配置,並允許UDP從編碼器的IP輸出到Internet。

如果您正在使用rtp-fec,FEC信息是在與媒體不同的端口上發送的,因此,例如,如果您使用端口2000,則還需要打開端口2002和2004(如果使用2D FEC)。

本教程將使curl用 API 請求,但您可以輕鬆地將它們放在InsomniaPostman或其他 REST 客戶端。

建立即時工作

首先,我們將創建一個現場工作。您將需要即時 API 的一API-KEY個。如果您不這樣做,並且有興趣獲得訪問權限,請聯繫您的客戶成功經理。

  1. 將下列curl命令複製並貼到文字編輯器中:

      curl -X POST \
        https://api.bcovlive.io/v1/jobs \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_stream": true,
          "region": "",
          "protocol": "",
          "cidr_whitelist": ["", ""],
          "outputs": [{
              "label": "hls360p",
              "live_stream": true,
              "height": 360,
              "video_bitrate": 365,
              "segment_seconds": 6,
              "keyframe_interval": 60
         },
         {
              "label": "hls432p",
              "live_stream": true,
              "height": 432,
              "video_bitrate": 730,
              "segment_seconds": 6,
              "keyframe_interval": 60
         },
         {
              "label": "hls540p",
              "live_stream": true,
              "height": 540,
              "video_bitrate": 2000,
              "segment_seconds": 6,
              "keyframe_interval": 60
         },
         {
              "label": "hls720p3M",
              "live_stream": true,
              "height": 540,
              "video_bitrate": 2000,
              "segment_seconds": 6,
              "keyframe_interval": 60
         },
         {
              "label": "hls720p4.5M",
              "live_stream": true,
              "height": 720,
              "video_bitrate": 4500,
              "segment_seconds": 6,
              "keyframe_interval": 60
         }]
      }'
  2. 進行以下替換:

    • 與您的布萊特灣實時 API 密鑰一起使用。例如:abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • 與您的編碼器最接近的可用區域,查看最接近編碼器的可用區域。例如:us-west-2
    • 使用輸入協議,編碼器將提供:rptrtp-fec, 要么srt
    • 編碼器將使用的IP範圍,格式為1.2.3.4/32
    • (如果有)與您的備用編碼器將使用的IP範圍,格式為1.2.3.4/32
  3. 進行這些更改後,將代碼複製並粘貼到終端或您使用的任何命令行應用程序中並運行它。
  4. 如果您使用的是rtp-fec協議:

      {
          "id": "42c913e5373844a99a6285367f2704ec",
          "outputs": [... removed for simplicity ...],
          "stream_url": "rtp://ec2-34-212-0-224.us-west-2.compute.amazonaws.com:12675",
          "stream_name": "42c913e5373844a99a6285367f2704ec.stream",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/42c913e5373844a99a6285367f2704ec/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/42c913e5373844a99a6285367f2704ec/us-west-2/NA/playlist_dvr.m3u8"
      }

    或者像這樣srt

      {
          "id": "cdb820f2d7764b91a79536dac799fb77",
          "outputs": [... removed for simplicity ...],
          "stream_url": "srt://ec2-34-212-0-224.us-west-2.compute.amazonaws.com:13820",
          "stream_name": "cdb820f2d7764b91a79536dac799fb77.stream",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/cdb820f2d7764b91a79536dac799fb77/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/cdb820f2d7764b91a79536dac799fb77/us-west-2/NA/playlist_dvr.m3u8"
      }

此工作將根據 Apple 建議建立 5 個轉譯。

配置編碼器(TS + FEC)

這裡顯示的步驟將假設元素活盒編碼器,這是在測試本教程的步驟中使用。如果您有不同的編碼器,設定應該是相似的。

最重要的設置rtp-fec輸入是:

  • 將時間碼來源設定為「系統時鐘」
  • 將“前向糾錯”設置為“列和行”,並設置“列深度”和“行長度”值:
    • 庫倫深度:4(每個“列深度” TS數據包將添加1個額外的FEC數據包)
    • 行長:10(每個“行長” TS數據包將添加1個額外的FEC數據包)
    • 可以計算添加的其他數據:TotalBitrate = MediaBitrate *(1 /(列深度+ 1)+ 1 /(行長度+ 1)
  • 檢查視頻中的「時間代碼插入」
  • 強烈建議:畫面播放速率 = 追蹤來源

這是我們用於此TS + FEC示例的配置:

元素即時工作配置
元素即時配置

配置編碼器(SRT)

此處顯示的設置基於海威視KB編碼器,用於測試本教程的步驟。如果您有不同的編碼器,設定應該是相似的。

這是我們用於此SRT示例的配置:

Haivision在線工作配置
海威視野即時配置

測試播放

您可以使用此 VideoJS HLS 演示頁面來測試播放,只需在創建作業響應中粘貼playback_url返回的值即可:

視訊-小時播放
視頻 HLS 播放演示頁面