概覽
本教程在API級別說明瞭如何在中創建實時流作業Brightcove直播然後創建RTMP輸出並將其重新流式傳輸到YouTube Live和Facebook Live。
建立即時工作
首先,我們將創建一個現場工作。您將需要即時 API 的一API-KEY
個。如果您沒有,並且有興趣取得存取權限,請聯絡您的客戶經理。
-
將下列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 }] }'
-
取代:
與您的編碼器最接近的可用區域,查看最接近編碼器的可用區域。例如:
us-west-2
與您的布萊特灣實時 API 密鑰一起使用。例如:
abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
- 進行這些更改後,將代碼複製並粘貼到終端或您使用的任何命令行應用程序中並運行它。
-
響應應該是這樣的:
{ "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
返回的值即可:
將直播添加到YouTube直播
我們在這裡假設您已經為實時流媒體啟用了YouTube帳戶。
-
請點擊上線,您應該看到:
-
點擊“編碼器直播”:
-
配置現場直播YouTube元數據,並使用“編碼器設置”數據將Brightcove實時流連接到YouTube:
-
現在我們已經建立了YouTube直播,我們將通過Live作業為其創建RTMP輸出。
-
複製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/" }'
-
取代:
與你的布萊特灣現場工作 ID。在我們的例子中,這個值將是
3b6871bf2f344acaa6b397d09b476018
-您的價值,從響應到您創建現場工作的請求,將會有所不同。為您的Brightcove實時API密鑰。例如:
abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
YouTube提供的流名稱/密鑰
- 將編輯後的代碼粘貼到您的命令行應用程序中並運行它。
-
響應應該是這樣的:
{ "connection_info": { "host": "a.rtmp.youtube.com", "port": 1935, "application": "live2", "streamName": "" }, "duration_history": [], "rtmp_out_id": "27aacdfa5bcf4436ade0519e6a748aba", "stream_start": 1542902218238 }
-
要測試YouTube播放,您可以轉到YouTube 我的頻道:
將實時流添加到Facebook live
我們在這裡假設您已經為實時流媒體啟用了Facebook帳戶。
-
請點擊實況視頻
-
請點擊連接和流密鑰以獲取連接Brightcove實時作業所需的數據:
-
接下來,使用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/" }'
-
取代:
與你的布萊特灣現場工作 ID。在我們的例子中,這個值將是
3b6871bf2f344acaa6b397d09b476018
-您的價值,從響應到您創建現場工作的請求,將會有所不同。與您的布萊特灣實時 API 密鑰一起使用。例如:
abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
與您串流給Facebook提供的名稱
-
響應應該是這樣的:
{ "connection_info": { "host": "live-api-s.facebook.com", "port": 80, "application": "rtmp", "streamName": "" }, "duration_history": [], "rtmp_out_id": "59323c3d1e2b44748755853193fb126c", "stream_start": 1542904101097 }
-
要測試您的Facebook Live流,請在您的Facebook網頁上單擊“上線”。