快速入門:使用即時事件的 RTMP 輸出

本教程將引導您創建RTMP輸出,以在YouTube Live和Facebook Live上設置實時事件。

概覽

通用區塊圖
框圖

本教程在API級別說明瞭如何在中創建實時流作業Brightcove直播然後創建RTMP輸出並將其重新流式傳輸到YouTube Live和Facebook Live。

本教程將使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": "",
        "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": 540,
          "video_bitrate": 4500,
          "segment_seconds": 6,
          "keyframe_interval": 60
        }]
      }'
    
  2. 取代:

    • 與您的編碼器最接近的可用區域,查看最接近編碼器的可用區域。例如:us-west-2
    • 與您的布萊特灣實時 API 密鑰一起使用。例如:abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
  3. 進行這些更改後,將代碼複製並粘貼到終端或您使用的任何命令行應用程序中並運行它。
  4. 響應應該是這樣的:

    {
        "id": "3b6871bf2f344acaa6b397d09b476018",
        "outputs": [... removed for simplicity ...],
        "stream_url": "rtmp://ep1-usw2.bcovlive.io:1935/3b6871bf2f344acaa6b397d09b476018",
        "stream_name": "alive",
        "static": false,
        "encryption": {},
        "playback_url": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist.m3u8",
        "playback_url_dvr": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist_dvr.m3u8"
    }

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

設定您的編碼器

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

這種情況下最重要的設定是:

  • 將時間碼來源設定為「系統時鐘」
  • 將「OnFi 時間碼頻率」設定為 1
  • 檢查視頻中的「時間代碼插入」
  • 強烈建議:畫面播放速率 = 追蹤來源

這是我們用於這個實驗的配置:

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

測試播放

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

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

將直播添加到YouTube直播

我們在這裡假設您已經為實時流媒體啟用了YouTube帳戶。

  1. 請點擊上線,您應該看到:

    youtube-go-live
    直播
  2. 點擊“編碼器直播”:

    youtube-encoder-live
    YouTube 編碼器即時原始碼
  3. 配置現場直播YouTube元數據,並使用“編碼器設置”數據將Brightcove實時流連接到YouTube:

    youtube-encoder-setup
    編碼器設定
  4. 現在我們已經建立了YouTube直播,我們將通過Live作業為其創建RTMP輸出。

  5. 複製curl下面的命令進入文本編輯器:

    curl -X POST \
      https://api.bcovlive.io/v1/jobs//rtmpouts \
      -H 'Content-Type: application/json' \
      -H 'x-api-key: ' \
      -d '{
      "url": "rtmp://a.rtmp.youtube.com/live2/"
    }'
  6. 取代:

    • 與你的布萊特灣現場工作 ID。在我們的例子中,這個值將是3b6871bf2f344acaa6b397d09b476018 -您的價值,從響應到您創建現場工作的請求,將會有所不同。
    • 為您的Brightcove實時API密鑰。例如:abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • YouTube提供的流名稱/密鑰
  7. 將編輯後的代碼粘貼到您的命令行應用程序中並運行它。
  8. 響應應該是這樣的:

    {
              "connection_info": {
                "host": "a.rtmp.youtube.com",
                "port": 1935,
                "application": "live2",
                "streamName": ""
              },
              "duration_history": [],
              "rtmp_out_id": "27aacdfa5bcf4436ade0519e6a748aba",
              "stream_start": 1542902218238
            }
  9. 要測試YouTube播放,您可以轉到YouTube 我的頻道

    youtube-my-channel-playback
    我的頻道播放

將實時流添加到Facebook live

我們在這裡假設您已經為實時流媒體啟用了Facebook帳戶。

  1. 請點擊實況視頻

  2. 請點擊連接和流密鑰以獲取連接Brightcove實時作業所需的數據:

    facebook-live-config
    臉書即時設定
  3. 接下來,使用Facebook上的“服務器URL”和“流密鑰”為Brightcove實時作業創建實時輸出。複製curl下面的命令並將其粘貼到文本編輯器中:

    curl -X POST \
      https://api.bcovlive.io/v1/jobs//rtmpouts \
      -H 'Content-Type: application/json' \
      -H 'x-api-key: ' \
      -d '{
      "url": "rtmp://live-api-s.facebook.com:80/rtmp/"
    }'
  4. 取代:

    • 與你的布萊特灣現場工作 ID。在我們的例子中,這個值將是3b6871bf2f344acaa6b397d09b476018 -您的價值,從響應到您創建現場工作的請求,將會有所不同。
    • 與您的布萊特灣實時 API 密鑰一起使用。例如:abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • 與您串流給Facebook提供的名稱
  5. 響應應該是這樣的:

    {
      "connection_info": {
          "host": "live-api-s.facebook.com",
          "port": 80,
          "application": "rtmp",
          "streamName": ""
      },
      "duration_history": [],
      "rtmp_out_id": "59323c3d1e2b44748755853193fb126c",
      "stream_start": 1542904101097
    }
  6. 要測試您的Facebook Live流,請在您的Facebook網頁上單擊“上線”。

    Facebook播放