「クイックスタート:MPEG2-TS 入力のライブジョブを作成する
概要
このチュートリアルでは、MPEG2-TS 入力を受け入れるライブストリーミングジョブを Brightcove Liveで作成する方法を API レベルで説明します。MPEG2-TS 入力を使用する上で重要なのは、MPEG2-TS をサポートし、エンコーダが配信できるを選択することです。protocol
ライブ API でサポートされる TS 対応プロトコルは次のとおりです。
rtp
rtp-fec
srt
デフォルトの入力プロトコルはであるため、TS 入力を使用するには、これらのプロトコルのいずれかを明示的に指定する必要がありますrtmp
。
SMPTE タイムコードをクリッピング、SSAIキューポイント、または ID3 タグに使用するには、SEI ピクチャタイミングメッセージの H.264(AVC)ビデオに挿入する必要があります。
これらのプロトコルでは、エンコーダと Live 間の通信に TCP ではなく UDP(User Datagram Protocol)が使用されるため、ファイアウォール/ルータを適切に設定し、エンコーダの IP からインターネットへの UDP 出力を許可する必要があります。
を使用している場合rtp-fec
、FEC 情報はメディアとは異なるポートで送信されるため、たとえば、ポート 2000 を使用している場合は、ポート 2002 および 2004(2D FEC を使用している場合)も開く必要があります。
このチュートリアルでは curlを使用して API リクエストを作成しますが、代わりに Insomnia、 Postman、またはその他のRESTクライアントで簡単に作成できます。
ライブジョブを作成する
まず、ライブジョブを作成します。ライブ 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 }] }'
-
次の置換を行います。
- これらの変更を行ったら、ターミナルまたは使用するコマンドラインアプリにコードをコピーして貼り付けて実行します。
-
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
作成ジョブの応答で返された値を貼り付けるだけです。