概要
このチュートリアルでは、MPEG2-TS 入力を受け入れるライブストリーミングジョブを Brightcove ライブで作成する方法を API レベルで説明します。MPEG2-TS 入力を使用する鍵は、MPEG2-TS をサポートし、エンコーダが提供できるを選択することです。protocol
Live API でサポートされる TS 対応プロトコルは次のとおりです。
rtp
rtp-fec
srt
デフォルトの入力プロトコルはであるため、TS 入力を使用するには、これらのプロトコルの 1 つを明示的に指定する必要がありますrtmp
。
クリッピング、SSAIキューポイント、またはID3タグにSMPTEタイムコードを使用するには、SEI Picture TimingメッセージのH.264(AVC)ビデオに挿入する必要があります。
これらのプロトコルでは、エンコーダと Live 間の通信に TCP ではなく UDP(User Datagram Protocol)が使用されるため、ファイアウォール/ルータを適切に設定し、エンコーダの IP からインターネットへの UDP 出力を許可する必要があります。
を使用している場合rtp-fec
、FEC 情報はメディアとは異なるポートに送信されるため、たとえば、ポート 2000 を使用している場合は、ポート 2002 と 2004 (2D FEC を使用している場合) も開く必要があります。
このチュートリアルではカール APIリクエストを作成しますが、簡単に作成できます不眠症、郵便配達員または代わりに他のRESTクライアント。
ライブジョブを作成する
まず、ライブジョブを作成します。Live API API-KEY
にはが必要です。アクセスできない場合は、アカウントマネージャーにお問い合わせください。
-
以下をコピーして貼り付けますカールテキストエディタへのコマンド:
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 }] }'
-
次の置換を行います。
をBrightcoveのLive 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" }
このジョブは5つのレンディションを作成しますベースオンAppleの推奨事項。
エンコーダを設定する (TS+FEC)
ここで示す手順は、このチュートリアルの手順をテストするために使用された Elemental ライブボックスエンコーダを想定しています。別のエンコーダを使用している場合は、設定が似ているはずです。
rtp-fec
この入力の最も重要な設定は次のとおりです。
- タイムコードソースを「システムクロック」として設定
- 「前方エラー訂正」を「列と行」に設定し、「列の深さ」と「行の長さ」の値を設定します。
- カラム深さ:4 (「列深度」TS パケットごとに 1 個追加される FEC パケットが追加されます)
- 行の長さ:10(「行長」TS パケットごとに 1 個追加される FEC パケットが追加されます)
- 追加したデータを計算できます。TotalBitRate = MediaBitRate * (1/ (列深度 + 1) + 1/ (行長 + 1)
- ビデオ内の「タイムコード挿入」を確認する
- 強く推奨:フレームレート = ソースに従う
これは、この TS+FEC サンプルで使用した設定です。
エンコーダ(SRT)の設定
ここに示す設定は、このチュートリアルの手順をテストするために使用された Haivision KB エンコーダに基づいています。別のエンコーダを使用している場合は、設定が似ているはずです。
これは、この SRT サンプルで使用した設定です。
テスト再生
この VideoJS HLS デモページを使用して再生をテストできます。playback_url
返された値を作成ジョブの応答に貼り付けるだけです。