サポート サポート問い合わせ先 | システムステータス システムステータス
ページ内容

    複数のオーディオトラックの実装

    このトピックでは、Dynamic Ingestを使用してビデオの複数のオーディオトラックを追加および管理する方法と、 CMS APIs.

    賃貸システムの概要

    複数のオーディオトラックを1つのタイトルに関連付ける機能は、次の2つの重要なシナリオで役立ちます。

    • 同じビデオをさまざまな言語で再生することで、世界中の幅広いリーチに対応
    • 視覚障害者のための説明をオーディオに提供する

    オーディオトラックを追加することもStudioで行うことができます。 メディアモジュールを使用してビデオにオーディオトラックを追加する 詳細はこちら

    サポートされているビデオ形式

    複数のオーディオトラックがサポートされています HLS V4+DASH - 有り無し DRM 保護。

    サンプル

    以下は、複数のオーディオトラックを持つビデオの簡単な例です。

    セットアップ

    のセットアップ Dynamic Ingest あなたがビデオ、画像、オーディオトラックなどを摂取しているかどうかにかかわらず、要求は同じです。 WebVTT ファイル、またはこれらのすべて:

    リクエストURL
          https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
    認証
    認証には、アクセストークンが Bearer トークン Authorization ヘッダ:
          Authorization: Bearer {access_token}

    トークンにアクセスするには、 クライアントの資格情報 (下記参照)。 アクセストークンを取得するプロセスについては、 アクセストークンを取得する.

    S3に関する注意

    ソースファイルが保護されたS3バケットから取得される場合は、許可するバケットポリシーを設定する必要があります Video Cloud ファイルにアクセスします。 見る 使い方 Dynamic Ingest S3で 詳細については。

    OAuth 資格情報

    取得するには client_idclient_secretOAuthのUIにアクセスしてこのアプリを登録する必要があります:

    以下は、必要な権限です。

    <span class =動的取り込み権限 "src =" / assets / images / dynamic-ingest / code-samples / di-permissions.png "/>
    Dynamic Ingest パーミッション

    あなたはまた、 CURL or Postman - 見る:

    APIから資格情報を直接取得する場合は、必要な権限があります。

          [
            "video-cloud/video/all",
            "video-cloud/ingest-profiles/profile/read",
            "video-cloud/ingest-profiles/account/read",
            "video-cloud/upload-urls/read"
          ]

    ワークフロー

    主な使用例は2つあります。

    • 複数のオーディオトラックで新しいビデオを取り込む
      新しいビデオワークフロー
      新しいビデオワークフロー
    • 複数のオーディオトラックを既存のビデオに追加する
      既存のビデオワークフロー
      既存のビデオワークフロー

    以下のセクションでAPIリクエストの詳細を見ていきます。

    オーディオトラックのメタデータ

    オーディオトラックにはいくつかのメタデータフィールドが付いています。これらのうちのいくつかは、トラックを取り込むときに設定されます。 Video Cloud。 これらのフィールドの一部は読み取り専用であり、他のフィールドは更新可能です。 メタデータフィールドについては、関連するAPIリクエストのコンテキストで詳しく説明しますが、ここでは2つの説明が必要です。 Brightcove Player 複数のオーディオトラックを処理します。

    language

    language フィールドは、摂取中に各トラックに設定され、トラックの言語を指定します。 これは、トラックが動画の音声語のダビングである場合に重要です。 このフィールドの値は、次のような2文字のコードになります。 en or hi。 言語コードの完全なリストについては、 Subtag の値 http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry.

    variant

    variant フィールドは、オーディオトラックの種類を示します。 可能な値は、標準的な意味で次のとおりです。

    • main - メイントラック、通常はビデオファイルに多重化されているトラック
    • alternate - 代替オーディオトラック
    • commentary - ビデオトラックに解説を提供するオーディオトラック
    • dub - 別の言語の話された言葉のダビングされたバージョンを含むトラック
    • descriptive - トラックは何らかの形でビデオコンテンツを記述しています

    口座のデフォルト

    あなたはアカウントのデフォルトを設定できます languagevariant どのオーディオトラックがデフォルトとして扱われるかを決定する Brightcove Player (デフォルトは、以下のセクションで説明するように、トラックメタデータを更新することによっても上書きすることができます)。 アカウントのデフォルトを設定するには、 Brightcove カスタマーサポート.

    オーディオトラックを聴く

    次に、前に説明した2つのユースケースのオーディオトラックを取り込むAPI呼び出しを見ていきます。

    複数のオーディオトラックを持つ新しいビデオ

    ビデオオブジェクトを作成する(CMS API)

    1. ビデオオブジェクトを作成するときに複数のビデオメタデータ項目を追加できますが、ここでは最小値を追加します。 name ビデオの場合:
            {
                "name": "YOUR_VIDEO_NAME"
            }
    2. 上記のJSONをリクエスト本体として(プレースホルダテキストを動画名に置き換えて)リクエストしてください POST 要求する https://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
    3. レスポンスには多くの動画メタデータが戻ってきますが、ここで重要な点は id (ビデオID)を取得する必要があります。

    ビデオとオーディオのトラックを取り込む

    次に、ビデオトラックとオーディオトラックを取り込みます(イメージやテキストトラックのような他のアセットを追加することもできますが、ここでは簡単にします)。 あなたが少し混乱しているかもしれない1つのことは、 audio_tracks リクエスト本文のJSONに2回表示されます。

    • An audio_tracks 内のオブジェクト master オブジェクトには、ビデオファイルに含まれるオーディオトラックのメタデータが含まれています(存在する場合、これはオーディオで多重化されているとも言われます)。オーディオトラックは既に含まれているため、ビデオファイル
    • トップレベル audio_tracks 取り込んだ追加のオーディオトラックを記述するオブジェクト - オーディオファイルのURLとその他のメタデータが含まれます
    1. 要求本体で送信される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"
                ]
            }
    2. 上記のJSONを送信して、プレースホルダに独自のURLを置き換えて、 languagevariant 値、 POST 要求する https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requestsID ここでは、ビデオオブジェクトを作成する要求から返されたビデオIDです)

    既存のビデオにオーディオトラックを追加する

    追加のオーディオトラックを既存のビデオに追加するには、手順は同じですが、 CMS API それが既に存在するので、ビデオを作成する。 そして、 Dynamic Ingest APIを使用する場合は、動画ファイルのURLや audio_tracksmaster オーディオに多重化されたメタデータを提供する。 ただし、既存のビデオに多重化されたオーディオトラックのメタデータを含める必要があります。 したがって、インジェストリクエストの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と同様) Video Cloud あなたが取り込んだオーディオトラックごとに通知を送信します。 通知は次のようになります。

          {
            "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"
          }

    オーディオトラックの通知を特定するには、 languagevariant 通知のフィールド。 ザ "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
              ]
            }
          ]

    また、Mediaモジュールでビデオを見ることで、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

    削除プロセスは非同期であり、直ちに完了しない可能性があるため、成功応答コードは202(内容なし)ではなく204(受け入れ可能)であることに注意してください。

    オーディオトラックのメタデータフィールド
    フィールド 種類 読み取り専用の 説明
    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の場合、これは再生のデフォルトトラックとして使用されます(アカウントレベルのデフォルトを上書きします)

    Playback

    Brightcove WebおよびSDKの方法については players複数のオーディオトラックを処理する:

    既知の問題点

    オーディオマスターが保存されていない
    • Video Cloud 意志 Studio上ではサポートされていません。 オーディオマスターを保存する
    • ビデオマスターからビデオを再トランスコードすると、追加のオーディオトラックは失われるため、次を使用して再度追加する必要があります。 既存のビデオにオーディオトラックを追加する 上記の方法
    音声のみのファイルを使用する必要があります
    オーディオトラックは、ビデオトラックのないオーディオ専用ファイルでなければなりません
    HLSv3, HLS 同じセグメントにオーディオとビデオがある
    • 再生APIは返されません HLSv3 目録
    • 全て HLS マニフェストには、逆多重化されたビデオ/オーディオ
    スムーズストリーミング
    Smooth Streaming URLは利用できません。
    Social ディストリビューション
    配信に使用するオーディオトラックを選択することはできません。 ビデオソースに含まれるトラック(オーディオに多重化されている)が常に使用されます。
    Studio
    • Studioはオーディオトラックに関する情報を表示します
    • Studioを使用してオーディオトラックを追加する方法については、 複数のオーディオトラック
    1つの「デフォルト」トラックを超えたオーディオトラックの注文
    • あなたはデフォルトのオーディオトラックを CMS API タイトルごとに is_default 〜へのフィールド true
    • アカウントのデフォルトもあり、サポートによって設定できます
    • これは、HLSマニフェストの "デフォルト"トラックにのみ影響します
    • 他に注文はできません
    単一のソースから複数のオーディオトラックを取り込む
    我々はサポート ソースからの1つのオーディオトラックは、.master"、 ".audio_tracks.masters".
    オーディオのみを含むビデオのDRM保護
    ビデオトラックが追加されるとすぐに、DRM保護が有効になります。
    エンドユーザーフレンドリーなラベル
    オーディオトラックのカスタムラベルはサポートされていません。 それが必要な場合は、クライアント側で変更を行う必要があります Player API.
    場合によっては、トラックを切り替えると、 Brightcove Player 不安定になる
    • すべてのオーディオセグメントがダウンロードされる前のトラックの切り替え
    • Silverlightプラグインを使用してビデオを再生すると(10未満のIEのバージョン、または8未満のウィンドウのバージョンのIEのバージョンで)、複数のオーディオトラックが Studio上ではサポートされていません。 Silverlightでサポートされています。
    • オーディオとビデオのデュレーションが異なる場合、 player 短い方がなくなると停止します。
    ビデオ "duration"
    ビデオ duration カタログ/Playback API オーディオトラックの長さが異なる場合は正しくない可能性があります。

    ページの最終更新日:10年2020月XNUMX日