入門
複数のオーディオトラックを 1 つのタイトルに関連付ける機能は、いくつかの重要なシナリオで役立ちます。
- 同じビデオを異なる言語で再生し、グローバルに幅広いリーチに対応
- 視覚障害者の説明を音声で提供
オーディオトラックの追加はStudioでも実行できることに注意してください。を参照してください。メディアモジュールを使用したビデオへのオーディオトラックの追加詳細については。
サポートされているビデオ形式
複数のオーディオトラックがサポートされていますHLS V4+
そしてDASH
-ありとなしDRM
保護。
サンプル
以下は、複数のオーディオトラックを含むビデオの簡単な例です。
セットアップ
のセットアップ動的取り込みビデオ、画像、オーディオトラックを取り込んでいるかどうかに関係なく、リクエストは同じです。 WebVTTファイル、またはこれらすべて:
- URL をリクエスト
-
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
- 認証
- 認証には、
Bearer
Authorization
アクセストークンをトークンとしてヘッダーに渡す必要があります。Authorization: Bearer {access_token}
アクセストークンを取得するには、次のものが必要になりますクライアントの資格情報(下記参照)。アクセストークンを取得するプロセスについては、を参照してください。アクセストークンを取得する。
S3 に関する注意
ソースファイルが保護されたS3バケットからプルされる場合は、バケットポリシーを設定して許可する必要がありますビデオクラウドファイルにアクセスします。見る使用する動的取り込み S3で詳細については。
認証情報の取得
client_id
とを取得するにはclient_secret
、OAuth UI に移動してこのアプリを登録する必要があります。
必要な権限は次のとおりです。
クレデンシャルは次の方法で取得することもできますカールまた郵便配達員 - 見る:
API から直接認証情報を取得する場合は、次の権限が必要です。
[
"video-cloud/video/all",
"video-cloud/ingest-profiles/profile/read",
"video-cloud/ingest-profiles/account/read",
"video-cloud/upload-urls/read"
]
ワークフロー
2つの主な使用例があります。
- 複数のオーディオトラックを含む新しいビデオを取り込む
- 既存のビデオに複数のオーディオトラックを追加する
以下のセクションでAPIリクエストの詳細を見ていきます。
オーディオトラックのメタデータ
オーディオトラックに添付されたメタデータフィールドがいくつかあります-これらのいくつかはトラックを取り込むときに設定されますが、他はによって作成されますビデオクラウド。これらのフィールドの一部は読み取り専用であり、その他はユーザーが更新できます。メタデータフィールドについては、関連するAPIリクエストのコンテキストで以下で詳しく説明しますが、Brightcove Playerが複数のオーディオトラックを処理する方法を決定する上で重要であるため、2つの特定のフィールドについてここで説明する必要があります。
language
ザ・language
取り込み中に各トラックに設定されるフィールドは、トラックの言語を指定します。トラックがビデオ内の話し言葉のダブである場合、これは重要です。このフィールドの値は、次のような2文字のコードになります。en
またはhi
。言語コードの完全なリストについては、Subtag
の値http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry。
variant
ザ・variant
フィールドは、オーディオトラックの種類を示します。標準的な意味を持つ可能な値は次のとおりです。
main
-メイントラック、通常はビデオファイルに多重化されたトラックalternate
-代替オーディオトラックcommentary
-ビデオトラックの解説を提供するオーディオトラックdub
-別の言語で話された単語のダビングされたバージョンを含むトラックdescriptive
-トラックは何らかの方法でビデオコンテンツを説明しています
アカウントのデフォルト
アカウントのデフォルトを設定できますlanguage
そしてvariant
Brightcove Playerによってデフォルトとして扱われるオーディオトラックを決定します(以下のセクションで説明するように、トラックのメタデータを更新することでデフォルトをオーバーライドすることもできます)。アカウントのデフォルトを設定するには、 Brightcoveサポートに連絡する。
オーディオトラックを取り込む
次に、前述の2つのユースケースのオーディオトラックを取り込むためのAPI呼び出しについて説明します。
複数のオーディオトラックを含む新しいビデオ
ビデオオブジェクトを作成します( CMS API)
- ビデオオブジェクトを作成するときに、ビデオメタデータのいくつかのアイテムを追加できますが、ここでは最小限のものを追加します。
name
ビデオの場合:{ "name": "YOUR_VIDEO_NAME" }
- 上記のJSONを(プレースホルダーテキストを動画名に置き換えて)リクエスト本文として送信します
POST
リクエストするhttps://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
- 応答で多くのビデオメタデータが返されますが、ここで重要なのは
id
(ビデオID)、次のステップに必要です。
ビデオトラックとオーディオトラックを取り込む
次に、ビデオトラックとオーディオトラックを取り込みます(画像やテキストトラックなどの他のアセットを追加することもできますが、ここでは単純にしておきます)。少し紛らわしいと思うかもしれませんが、audio_tracks
リクエスト本文のJSONに2回表示されます。
- アン
audio_tracks
内のオブジェクトmaster
オブジェクトには、ビデオファイルに含まれるオーディオトラックのメタデータが含まれます(存在する場合-これはオーディオの多重化とも呼ばれます)-オーディオトラックはすでにに含まれているため、これにはオーディオファイルのURLなしでメタデータのみが含まれますビデオファイル。エンコードされたオーディオトラックは、のルールに準拠している限り、ステレオ、5.1、7.1として圧縮できることに注意してください。オーディオフォーマットそして、に示されているように既知の問題点、デフォルトのオーディオを設定する以外に、オーディオトラックを注文する方法はありません - トップレベル
audio_tracks
取り込みている追加のオーディオトラックを説明するオブジェクト-これらには、オーディオファイルのURLとその他のメタデータが含まれます
- リクエスト本文で送信されるJSONデータは次のとおりです。
{ "master": { "url": "https://learning-services-media.brightcove.com/videos/Great_Blue_Heron.mp4", "audio_tracks": [ { "language": "en", "variant": "main" } ] }, "audio_tracks": { "merge_with_existing": true, "masters": [ { "url": "http://learning-services-media.brightcove.com/audio/celtic_lullaby.m4a", "language": "en", "variant": "alternate" }, { "url": "http://learning-services-media.brightcove.com/audio/audio1.m4a", "language": "en", "variant": "commentary" } ] }, "profile": "BoltIngestProfile", "capture-images": true, "callbacks": [ "http://solutions.brightcove.com/bcls/di-api/di-callbacks.php" ] }
- 上記のJSONを送信し、プレースホルダーを独自のURLに置き換えて、
language
そしてvariant
値、POST
リクエストするhttps://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests
(ID
これは、ビデオオブジェクトを作成するためのリクエストから返されたビデオIDです)
既存のビデオにオーディオトラックを追加する
既存のビデオにオーディオトラックを追加する場合、手順は同じですが、リクエストを行う必要がない点が異なります。 CMS APIビデオはすでに存在するため、作成します。そして、へのリクエストで動的取り込み API、ビデオファイルのURLまたはaudio_tracks
下master
オーディオで多重化されたメタデータを提供します。ただし、既存のビデオのオーディオトラックに多重化されたメタデータを含める必要があります。オーディオトラックは、のルールに従って圧縮する必要があることを覚えておくことも重要です。オーディオフォーマット。したがって、取り込みリクエストのJSONは次のようになります。
{
"audio_tracks": {
"merge_with_existing": true,
"masters": [
{
"url": "http://learning-services-media.brightcove.com/audio/celtic_lullaby.m4a",
"language": "en",
"variant": "alternate"
},
{
"url": "http://learning-services-media.brightcove.com/audio/audio1.m4a",
"language": "en",
"variant": "commentary"
}
]
},
"profile": "BoltIngestProfile",
"capture-images": true,
"callbacks": [
"http://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
]
}
取り込み用のオーディオトラックフィールド
フィールド | タイプ | 説明 |
---|---|---|
master.audio_tracks |
オブジェクト [] | オーディオで多重化されたメタデータ |
master.audio_tracks.language |
文字列 | のサブタグからの音声で多重化された言語コードhttp://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |
master.audio_tracks.variant |
文字列 | オーディオトラックの種類: main | alternate | dub | commentary | descriptive ( main 一般的にはオーディオのマルチプレックスに使われる) |
audio_tracks |
オブジェクト | 追加のオーディオトラックに関する情報 |
audio_tracks.merge_with_existing |
ブール値 | これらのトラックを既存のトラックにマージするか、置き換えるか |
audio_tracks.masters |
オブジェクト [] | 個々のオーディオトラックの情報 |
audio_tracks.masters.url |
文字列 | オーディオトラックファイルのURL |
audio_tracks.masters.language |
文字列 | http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry のサブタグからのオーディオトラックの言語コード |
audio_tracks.masters.variant |
文字列 | オーディオトラックの種類: main | alternate | dub | commentary | descriptive ( main 一般的にはオーディオのマルチプレックスに使われる) |
通知
1つ以上を指定した場合折り返し電話 URL(上記の取り込みリクエストのサンプルJSONのように)、ビデオクラウド取り込むオーディオトラックごとに通知を送信します。通知は次のようになります。
{
"entity": "default/audio128",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "0f703adb-0f17-4a35-8395-21c7fcdd2649",
"videoId": "5298468208001",
"dynamicRenditionId": "default/audio128",
"accountId": "1910141565001",
"status": "SUCCESS",
"language" : "en",
"variant" : "alternate"
}
オーディオトラックの通知を特定するには、language
そしてvariant
通知のフィールド。ザ・"action": "CREATE"
そして"status": "SUCCESS"
フィールドは、トラックが正常に取り込まれたことを示します。
オーディオトラックの管理
オーディオトラックを取り込んだら、 CMS API。
ビデオのすべてのオーディオトラックメタデータを取得する
ビデオに関連付けられているすべてのオーディオトラックのメタデータを取得するには、GET
リクエスト先:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks
応答は、各オーディオトラックのメタデータを含むオブジェクトの配列になります。詳細については、以下の回答フィールドの表を参照してください。
[
{
"id": "en_alternate",
"language": "en",
"variant": "alternate",
"duration": 86100,
"encoding_rates": [
64000,
96000,
127000
]
},
{
"id": "en_commentary",
"language": "en",
"variant": "commentary",
"duration": 34203,
"encoding_rates": [
10000,
13000,
15000
]
},
{
"id": "en_main",
"language": "en",
"variant": "main",
"duration": 31488,
"encoding_rates": [
62000,
94000,
125000
]
}
]
メディアモジュールのビデオを表示して、Studioでこの情報を表示することもできます。
1つのオーディオトラックのメタデータを取得する
ビデオに関連付けられた1つのオーディオトラックのメタデータを取得するには、GET
リクエスト先:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
応答は、各オーディオトラックのメタデータを含むオブジェクトになります。詳細については、以下の回答フィールドの表を参照してください。
オーディオトラックメタデータの更新
オーディオトラックの書き込み可能なメタデータフィールドを更新するには、PATCH
リクエスト先:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
リクエストの本文に、変更するフィールドを含めます(例:
{
"language": "es",
"is_default": true
}
オーディオトラックを削除する
オーディオトラックを削除するには、次の宛先にDELETEリクエストを送信します。
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
削除プロセスは非同期であり、すぐに完了しない可能性があるため、成功応答コードは204(コンテンツなし)ではなく202(承認済み)になる可能性があることに注意してください。
フィールド | タイプ | 読み取り専用 | 説明 |
---|---|---|---|
id |
文字列 | はい | として形成されたトラックのID language_variant -これらの値が変更されると、IDが変更される可能性があることに注意してください |
language |
文字列 | いいえ | http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry のサブタグからのオーディオトラックの言語コード |
variant |
文字列 | いいえ | オーディオトラックの種類: main | alternate | dub | commentary | descriptive ( main 一般的にはオーディオのマルチプレックスに使われる) |
duration |
数値 | はい | ミリ秒単位のトラックの長さ |
encoding_rates |
数[] | はい | このトラックで使用可能なエンコーディングのリスト(bps単位) |
is_default |
ブール値 | いいえ | trueの場合、これは再生のデフォルトトラックとして使用されます(アカウントレベルのデフォルトを上書きします) |
再生
Brightcove WebおよびSDKプレーヤーが複数のオーディオトラックを処理する方法については、以下を参照してください。
既知の問題
- オーディオマスターが保存されない
-
- ビデオクラウド意思いいえオーディオマスターを保存する
- ビデオマスターからビデオを再トランスコードすると、追加のオーディオトラックが失われるため、を使用して再追加する必要があります。既存のビデオにオーディオトラックを追加する上記の方法
- オーディオのみのファイルを使用する必要があります
- オーディオトラックは、ビデオトラックを含まないオーディオ専用ファイルである必要があります
HLSv3
、HLS
同じセグメントにオーディオとビデオがあります-
- Playback APIは返されません
HLSv3
マニフェスト - すべて
HLS
マニフェストには、デコードされたビデオ/オーディオが含まれます
- Playback APIは返されません
- スムーズなストリーミング
- スムーズストリーミング URL は使用できません。
- 社会的分布
- 配信に使用するオーディオトラックを選択することはできません。ビデオソースに含まれるトラック(オーディオのマルチプレス)が常に使用されます。
- Studio
-
- スタジオはオーディオトラックに関する情報を表示します
- Studioを使用してオーディオトラックを追加するには、を参照してください。複数のオーディオトラック
- 1 つの「デフォルト」トラックを超えるオーディオトラックの順序
-
- デフォルトのオーディオトラックを選択できますCMS APIタイトルごとに
is_default
フィールドにtrue
- アカウントのデフォルトもあります。これはサポートで設定できます
- これはHLSマニフェストの「デフォルト」トラックにのみ影響します
- 他の注文はできません
- デフォルトのオーディオトラックを選択できますCMS APIタイトルごとに
- 1 つのソースから複数のオーディオトラックを取り込み
- サポートのみソースごとに1つのオーディオトラック。各オーディオトラックは個別に取り込む必要があります。
- オーディオのみを含む動画の DRM 保護
- ビデオトラックが追加されるとすぐに、DRM 保護が有効になります。
- エンドユーザーにわかりやすいラベル
- オーディオトラックのカスタムラベルはサポートされていません。必要な場合は、Player API を使用してクライアント側で変更を行う必要があります。
- 場合によっては、トラックを切り替えると Brightcove Player が不安定になる場合があります
-
- すべてのオーディオセグメントがダウンロードされる前のトラック切り替え
- Silverlight プラグインを使用してビデオを再生する場合 (10 未満のバージョンの IE、または 8 未満のバージョンの Window の IE のバージョン)-複数のオーディオトラックは Silverlight でサポートされません。
- オーディオとビデオのデュレーションが異なる場合は、短いものがなくなるたびにプレーヤーが停止することがあります。
- ビデオ "
duration
「」 - オーディオトラックのデュレーションが異なる場合、カタログ/Playback API
duration
で報告されたビデオが正しくない可能性があります。