概覽
本教程在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)。
建立即時工作
首先,我們將創建一個現場工作。您將需要即時 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": "", "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 }] }'
-
進行以下替換:
與您的布萊特灣實時 API 密鑰一起使用。例如:
abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
與您的編碼器最接近的可用區域,查看最接近編碼器的可用區域。例如:
us-west-2
使用輸入協議,編碼器將提供:
rpt
,rtp-fec
, 要么srt
編碼器將使用的IP範圍,格式為
1.2.3.4/32
(如果有)與您的備用編碼器將使用的IP範圍,格式為
1.2.3.4/32
- 進行這些更改後,將代碼複製並粘貼到終端或您使用的任何命令行應用程序中並運行它。
-
如果您使用的是
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示例的配置:
測試播放
您可以使用此 VideoJS HLS 演示頁面來測試播放,只需在創建作業響應中粘貼playback_url
返回的值即可: