要件
- 多言語オーディオ機能を有効にした Live API 用のアカウント設定 (詳細については、アカウントマネージャーにお問い合わせください)
- Live API の API キー (アカウントの設定時に提供されます)
- RTP プロトコルをサポートするエンコーダ。多言語オーディオのサポートは、
rtp
rtp-fec
またはプロトコルに制限されています。 - ジョブを作成するときは、各オーディオトラックのPIDを知っている必要があります。
ライブジョブを作成する
ジョブに複数のオーディオトラックを追加するには、ライブジョブの作成時にリクエストボディにオーディオトラックのリストを指定する必要があります。
{
"live_stream": true,
"region": "us-west-2",
"protocol": "rtp",
"cidr_whitelist": [ /* omitted… */ ],
"outputs": [ /* omitted… */ ],
"alternate_audio": {
"tracks": [ { Track Details } ]
}
}
Track
オブジェクトでサポートされるフィールド
以下の表は、track
オブジェクトでサポートされるフィールドの完全な説明を示しています
フィールド | 説明 |
---|---|
pid |
必須。Wowza に送信されるストリームファイルで指定されているトラックの着信 TS から選択する PID。 |
language |
必須。使用する言語のコード。現時点では、これは柔軟性があり、仕様によって要求/サポートされているさまざまな言語形式、特に要件に応じてISO-639をカバーするRFC5456/BCP47のいずれかであってもかまいません。https://tools.ietf.org/html/rfc5646
> > |
variant |
任意。DASHロールスキーマの値 (メイン、代替、解説、補足、ダブ) にマッピングします。urn:mpeg:dash:role:2011 ダッシュロールで使用します。main デフォルトはです。
HLS > の特徴を参照してください https://tools.ietf.org/html/rfc8216#section-4.3.4.1 |
label |
任意。トラックに使用するテキスト説明です。可能な場合はプレーヤーが使用することを推奨します。使用場所:> NAME HLSフィールド。デフォルトは、各トラックの ID language を持つです。例えば、en-0 指定されていない場合。 |
streams [] |
任意。コピーが存在しない場合は、デフォルトのオーディオ設定のみを使用してください。
HLS > 例: これは、 |
default |
デフォルト以外の場合は必須です。DEFAULT でマークするオーディオトラックとEXT-X-MEDIA 、ビデオストリームにマルチプレックスするオーディオトラック*
存在しない場合、最初のものはデフォルトです。 * 複数のプレイリストが異なるデフォルトで定義されている場合、トップレベルのデフォルトトラックはマルチプレベルのトラックです |
例
このサンプルボディは、2 つのオーディオトラックを持つジョブを作成します。
要求
POST https://api.bcovlive.io/v1/jobs
Content-Type: application/json
X-API-KEY: your_API_key
リクエスト本文
<code class = "language-json" translate = "No> { "live_stream": true, "region": "us-west-2", "protocol": "rtp", "cidr_whitelist": [ "0.0.0.0/0" ], "outputs": [ { "label": "hls720p", "live_stream": true, "height": 720, "video_bitrate": 2400, "segment_seconds": 6, "keyframe_interval": 90 }、{ "label": "hls540p", "live_stream": true, "height": 540, "video_bitrate": 1200, "segment_seconds": 6, "keyframe_interval": 90 } ]、 "alternate_audio":{ "tracks": [ { "label": "English", "language": "en", "variant": "main", "pid": 257, "default": true }、{ "label": "Spanish", "language": "es", "variant": "main", "pid": 258 } ]} }
レスポンスの例
{
"id": "76f814fbcd7840e99ebf0e335c933730",
"outputs": [
{
"id": "0-76f814fbcd7840e99ebf0e335c933730",
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_0/chunklist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
"playback_url_vod": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_0/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls720p"
},
{
"id": "1-76f814fbcd7840e99ebf0e335c933730",
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_1/chunklist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
"playback_url_vod": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_1/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls540p"
},
{
"id": "2-76f814fbcd7840e99ebf0e335c933730",
"playlist_type": "defaultS3",
"type": "playlist",
"alternate_audio": {
"tracks": [
{
"label": "English",
"language": "en",
"name": "Alt0",
"pid": 257,
"playlistDefault": true,
"default": true,
"variant": "main",
"profile_sources": [
"profile_0"
]
},
{
"label": "Spanish",
"language": "es",
"name": "Alt1",
"pid": 258,
"playlistDefault": false,
"default": false,
"variant": "main",
"profile_sources": [
"profile_0"
]
}
]
},
"filename": "playlist.m3u8",
"dvr_filename": "playlist_dvr.m3u8",
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist_dvr.m3u8",
"playback_added_cdns": []
}
],
"stream_url": "rtp://ep3-usw2.a-live.io:11780",
"stream_name": "76f814fbcd7840e99ebf0e335c933730.stream",
"static": false,
"alternate_audio": {
"tracks": [
{
"label": "English",
"language": "en",
"pid": 257,
"default": true,
"variant": "main",
"name": "Alt0"
},
{
"label": "Spanish",
"language": "es",
"pid": 258,
"default": false,
"variant": "main",
"name": "Alt1"
}
]
},
"event_length": 93600,
"encryption": {},
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist_dvr.m3u8",
"playback_added_cdns": []
}
エンコーダーを設定する
作成応答から stream_url に RTP 経由で MPEG-TS を配信するようにエンコーダを設定します。リクエスト本文で提供されるオーディオトラックが、エンコーダで正しい PID で設定されていることを確認します。
テスト再生
Playback_url をBrightcoveプレーヤーまたは Safari にロードして、再生を確認します。
playback
現時点では、DRM はキャッチアップ (タイムシフト) サービスでのみサポートされています。[Create Job] リクエスト本文に次のフィールドを追加します。
{
"drm": {
"modes": [
"all"
]
},
"timeshift": {
"type": "single",
"startover_duration": 36000,
"skip_live_output": true
}
}
応答には、timeshift_url
再生に使用するDRM出力とが含まれます。