Implementieren mehrerer Audiospuren

In diesem Thema wird erläutert, wie mehrere Audiospuren für Videos mithilfe der Dynamic Ingest- und CMS-APIs hinzugefügt und verwaltet werden können.

Einleitung

Die Möglichkeit, mehrere Audiospuren einem einzelnen Titel zuzuordnen, kann in einigen wichtigen Szenarien nützlich sein:

  • Wiedergabe desselben Videos in verschiedenen Sprachen für eine größere Reichweite weltweit 
  • Bereitstellung von Audio mit Beschreibungen für Sehbehinderte

Beachten Sie, dass das Hinzufügen von Audiospuren auch in Studio möglich ist - siehe Hinzufügen von Audiospuren zu Videos mit dem Medienmodul für mehr Details.

Unterstützte Videoformate

Mehrere Audiospuren werden unterstützt für HLS V4+ und DASH - mit und ohne DRM Schutz.

Probe

Unten sehen Sie ein einfaches Beispiel für ein Video mit mehreren Audiospuren.

Einrichtung

Das Setup für Dynamic Ingest Anforderungen ist die gleiche, ob Sie ein Video, Bilder, Audiospuren aufnehmen, WebVTT Dateien oder alle diese:

Anfrage-URL
      https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
Authentifizierung
Für die Authentifizierung ist ein Zugriffstoken erforderlich, das als Bearer Token in einem Authorization Header übergeben wird:
      Authorization: Bearer {access_token}

Um Zugriffstoken zu erhalten, benötigen Sie Kundenanmeldeinformationen (siehe unten). Informationen zum Abrufen eines Zugriffstokens finden Sie unter Zugriffstoken erhalten.

Hinweis zu S3

Wenn Ihre Quelldateien aus einem geschützten S3-Bucket abgerufen werden, müssen Sie eine Bucket-Richtlinie festlegen, um dies zuzulassen Video Cloud um auf die Dateien zuzugreifen. Sehen Verwenden von Dynamic Ingest mit S3 für Details.

Anmeldeinformationen erhalten

Um ein client_id und zu erhalten client_secret, müssen Sie zur OAuth UI gehen und diese App registrieren:

Dies sind die Berechtigungen, die Sie benötigen:

Dynamische Aufnahme Berechtigungen
Dynamic Ingest Berechtigungen

Sie können Ihre Anmeldeinformationen auch über erhalten CURL oder Postman - sehen:

Wenn Sie Anmeldeinformationen direkt von der API erhalten, benötigen Sie dies die Berechtigungen:

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

Arbeitsablauf

Es gibt zwei Hauptanwendungsfälle:

  • Ein neues Video mit mehreren Audiospuren aufnehmen
    Neuer Video-Workflow
    Neuer Video-Workflow
  • Mehrere Audiospuren zu einem vorhandenen Video hinzufügen
    Vorhandener Video-Workflow
    Vorhandener Video-Workflow

Wir werden uns die Details der API-Anfragen in einem Abschnitt unten ansehen.

Audiotrack-Metadaten

Es gibt einige Metadatenfelder, die an Audiospuren angehängt sind. Einige davon werden festgelegt, wenn Sie die Spuren aufnehmen, während andere von erstellt werden Video Cloud. Einige dieser Felder sind schreibgeschützt, andere können von Ihnen aktualisiert werden. Die Metadatenfelder werden im Folgenden im Zusammenhang mit den entsprechenden API-Anfragen detailliert beschrieben, aber zwei besondere bedürfen hier einer Erläuterung, da sie entscheidend dafür sind, wie der Brightcove Player mit den mehreren Audiospuren umgeht.

language

Die language Das Feld, das während der Aufnahme für jeden Track festgelegt wird, gibt die Sprache für den Track an. Dies ist wichtig, wenn es sich bei der Spur um eine Synchronisation gesprochener Wörter im Video handelt. Sie können Basiscodes wie fr oder Codes mit einer Gebietsschemakennung verwenden, z. fr-CA. See the ISO Language Code TableB.

variant

Die variant Feld beschreibt die Art der Audiospur. Die möglichen Werte mit Standardbedeutungen sind:

  • main- der Haupttrack, normalerweise der in die Videodatei gemuxte
  • alternate- eine alternative Audiospur
  • commentary- eine Audiospur, die den Videotrack kommentiert
  • dub- ein Track mit einer synchronisierten Version gesprochener Wörter in einer anderen Sprache
  • descriptive- Track beschreibt den Videoinhalt in gewisser Weise

Kontoausfälle

Sie können Konto-Standardeinstellungen für language und variant um zu bestimmen, welche Audiospur vom Brightcove Player als Standard behandelt wird (der Standard kann auch durch Aktualisieren der Spur-Metadaten überschrieben werden, wie wir in einem Abschnitt weiter unten sehen werden). Um die Standardeinstellungen für Ihr Konto festzulegen, Brightcove-Support kontaktieren.

Audiotracks aufnehmen

Betrachten wir nun die API-Aufrufe zur Aufnahme von Audiotracks für die beiden zuvor beschriebenen Anwendungsfälle.

Neues Video mit mehreren Audiospuren

Erstellen Sie das Videoobjekt (CMS API)

  1. Sie können beim Erstellen des Videoobjekts mehrere Videometadatenelemente hinzufügen, aber hier fügen wir nur das Minimum hinzu: a name zum Video:
          {
              "name": "YOUR_VIDEO_NAME"
          }
  2. Senden Sie die obige JSON (wobei der Platzhaltertext durch Ihren Videonamen ersetzt wird) als Anfragetext für POST Anfrage zu https://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
  3. Sie erhalten viele Video-Metadaten in der Antwort zurück, aber der wichtige Teil hier ist der id (die Video-ID), die Sie für den nächsten Schritt benötigen.

Aufnahme der Video- und Audiospuren

Als nächstes werden wir die Video- und Audiospuren aufnehmen (wir könnten andere Assets wie Bilder und Textspuren hinzufügen, aber wir halten es hier einfach). Das einzige, was Sie vielleicht ein wenig verwirrend finden werden, ist das audio_tracks erscheint zweimal im JSON für den Anfragetext:

  • Ein audio_tracks Objekt innerhalb der master -Objekt enthält Metadaten für die in der Videodatei enthaltene Audiospur (falls vorhanden - dies wird auch als in Audio gemuxt bezeichnet) - dies enthält nur Metadaten, ohne URL für die Audiodatei, da die Audiospur bereits in enthalten ist die Videodatei. Denken Sie daran, dass die codierte Audiospur als Stereo, 5.1, 7.1 komprimiert werden kann, sofern sie den Regeln für Audioformate entspricht. Wie in den bekannten Problemen angegeben, gibt es außer der Einstellung eines Standard-Audios keine andere Möglichkeit, Audiotracks zu bestellen.
  • Ein Top-Level audio_tracks Objekt, das die zusätzlichen Audiotracks beschreibt, die Sie aufnehmen – diese enthalten eine URL für die Audiodatei sowie andere Metadaten
  1. Die im Anfragetext zu sendenden JSON-Daten lauten wie folgt:
          {
            "master": {
                "url": "https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4",
                "audio_tracks": [
                    {
                        "language": "en",
                        "variant": "main"
                    }
                ]
            },
            "audio_tracks": {
                "merge_with_existing": true,
                "masters": [
                    {
                        "url": "https://support.brightcove.com/test-assets//audio/celtic_lullaby.m4a",
                        "language": "en",
                        "variant": "alternate"
                    },
                    {
                        "url": "https://support.brightcove.com/test-assets//audio/audio1.m4a",
                        "language": "en",
                        "variant": "commentary"
                    }
                ]
            },
              "profile": "BoltIngestProfile",
              "capture-images": true,
              "callbacks": [
                  "https://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
              ]
          }
  2. Senden Sie die obige JSON, ersetzen Sie die Platzhalter durch Ihre eigenen URLs und passen Sie die language und variant Werte, in a POST Anfrage zu https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests (das ID Hier ist die Video-ID, die von der Anfrage zum Erstellen des Videoobjekts zurückgegeben wurde)

Audiospuren zu einem vorhandenen Video hinzufügen

Um einem vorhandenen Video zusätzliche Audiospuren hinzuzufügen, ist die Vorgehensweise dieselbe, außer dass Sie die Anforderung nicht an das senden müssen CMS API um das Video zu erstellen, da es bereits vorhanden ist. Und in der Anfrage an die Dynamic Ingest API müssen Sie weder die URL für die Videodatei noch die angeben audio_tracks unter master Bereitstellung der Metadaten für die in Audio gemuxten. Sie möchten jedoch die Metadaten für die eingemuxte Audiospur in das vorhandene Video aufnehmen. Es ist auch wichtig zu bedenken, dass die Audiospur nach den Regeln in komprimiert werden muss Audioformate. Die JSON für die Ingest-Anfrage sieht also wie folgt aus:

      {
        "audio_tracks": {
            "merge_with_existing": true,
            "masters": [
                {
                    "url": "https://support.brightcove.com/test-assets/audio/celtic_lullaby.m4a",
                    "language": "en",
                    "variant": "alternate"
                },
                {
                    "url": "https://support.brightcove.com/test-assets/audio/audio1.m4a",
                    "language": "en",
                    "variant": "commentary"
                }
            ]
        },
          "profile": "BoltIngestProfile",
          "capture-images": true,
          "callbacks": [
              "https://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
          ]
      }

Audiospurfelder für die Aufnahme

Audiospurfelder
Feld Typ Beschreibung
master.audio_tracks Objekt[] Metadaten für das Muxed in Audio
master.audio_tracks.language Zeichenfolge Sprachcode für das eingemischte Audio. Sie können Basiscodes wie fr oder Codes mit einer Gebietsschemakennung verwenden, z. fr-CA. See the ISO Language Code TableB.
master.audio_tracks.variant Zeichenfolge Die Art der Audiospur: main|alternate|dub|commentary|descriptive (main würde im Allgemeinen für das Muxed-in-Audio verwendet werden)
audio_tracks Objekt Informationen zu den zusätzlichen Audiotracks
audio_tracks.merge_with_existing Boolescher Wert Ob diese Spuren in bestehende aufgenommen oder ersetzt werden sollen
audio_tracks.masters Objekt[] Informationen zu den einzelnen Audiotracks
audio_tracks.masters.url Zeichenfolge URL für die Audiotrackdatei
audio_tracks.masters.language Zeichenfolge Sprachcode für die Tonspur. Sie können Basiscodes wie fr oder Codes mit einer Gebietsschemakennung verwenden, z. fr-CA. See the ISO Language Code TableB.
audio_tracks.masters.variant Zeichenfolge Die Art der Audiospur: main|alternate|dub|commentary|descriptive (main würde im Allgemeinen für das Muxed-in-Audio verwendet werden)

Benachrichtigungen

Wenn Sie eine oder mehrere angeben zurückrufen URLs (wie im obigen JSON-Beispiel für die Ingest-Anforderung oben), Video Cloud sendet eine Benachrichtigung für jede der aufgenommenen Audiospuren. Benachrichtigungen sehen so aus:

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

Um Benachrichtigungen für Audiotracks zu identifizieren, suchen Sie nach dem language und variant Felder in der Benachrichtigung. Die "action": "CREATE" und "status": "SUCCESS" Felder zeigen an, dass der Track erfolgreich aufgenommen wurde.

Verwalten von Audiotracks

Sobald Sie die Audiotracks aufgenommen haben, können Sie sie über die verwalten CMS API.

Alle Audiotrack-Metadaten für ein Video abrufen

Um die Metadaten für alle mit einem Video verknüpften Audiospuren abzurufen, machen Sie a GET Anfrage zu:

      https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks

Die Antwort ist ein Array von Objekten, die Metadaten für jede Audiospur enthalten. Weitere Informationen finden Sie in der Tabelle mit den Antwortfeldern unten.

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

Sie können diese Informationen auch in Studio anzeigen, indem Sie das Video im Medienmodul ansehen:

Audiotrack-Informationen in Studio
Audiotrack-Informationen in Studio

Metadaten für einen Audiotrack abrufen

Um die Metadaten für einen mit einem Video verknüpften Audiotrack abzurufen, machen Sie a GET Anfrage zu:

      https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id

Die Antwort ist ein Objekt, das Metadaten für jede Audiospur enthält. Weitere Informationen finden Sie in der Tabelle mit den Antwortfeldern unten.

Aktualisieren von Audiotrack-Metadaten

Sie können jedes beschreibbare Metadatenfeld für einen Audiotrack aktualisieren, indem Sie a PATCH Anfrage zu:

      https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id

Fügen Sie in den Anfragetext die Felder ein, die Sie ändern möchten - zum Beispiel:

      {
          "language": "es",
          "is_default": true
      }

Löschen einer Audiospur

Um einen Audiotrack zu löschen, senden Sie eine DELETE-Anfrage an:

      https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id

Beachten Sie, dass der Erfolgsantwortcode 202 (Akzeptiert) anstelle von 204 (Kein Inhalt) sein kann, da der Löschvorgang asynchron ist und möglicherweise nicht sofort abgeschlossen wird.

Metadatenfelder für Audiospuren
Feld Typ Schreibgeschützt Beschreibung
id Zeichenfolge Ja ID für den Track, gebildet als Sprachvariante - Beachten Sie, dass sich die ID ändern kann, wenn diese Werte geändert werden
language Zeichenfolge Nein Sprachcode für die Tonspur. Sie können Basiscodes wie fr oder Codes mit einer Gebietsschemakennung verwenden, z. fr-CA. See the ISO Language Code TableB.
variant Zeichenfolge Nein Die Art der Audiospur: main|alternate|dub|commentary|descriptive (main würde im Allgemeinen für das Muxed-in-Audio verwendet werden)
duration Nummer Ja Die Länge des Tracks in Millisekunden
encoding_rates Nummer[] Ja Eine Liste der verfügbaren Codierungen dieses Tracks in bps
is_default Boolescher Wert Nein Wenn wahr, wird dies als Standard-Track für die Wiedergabe verwendet (überschreibt alle Standardeinstellungen auf Kontoebene).

Wiedergabe

Informationen dazu, wie die Brightcove-Web- und SDK-Player mehrere Audiospuren verarbeiten, finden Sie unter:

Bekannte Probleme

Audiomaster nicht gespeichert
  • Video Cloud werden nicht Audio-Master speichern
Nur Audiodateien müssen verwendet werden
Audiospuren müssen reine Audiodateien ohne Videospuren sein
HLSv3, HLS mit Audio und Video im gleichen Segment
  • Die Wiedergabe-API wird nicht zurückkehren HLSv3 manifestiert sich
  • Alle HLS Manifeste enthalten entmuxtes Video/Audio
Reibungsloses Streaming
Smooth Streaming-URLs sind nicht verfügbar.
Soziale Verteilung
Es ist nicht möglich, auszuwählen, welche Audiospur für die Verteilung verwendet wird. Es wird immer der in der Videoquelle enthaltene Track (der in Audio gemuxte) verwendet.
Studio
  • Studio zeigt Informationen zu Audiotracks an
  • Informationen zum Hinzufügen von Audiospuren mit Studio finden Sie unter Mehrere Audiospuren
Anordnen von Audiospuren über die eine "Standard"-Spur hinaus
  • Sie können eine Standard-Audiospur mit auswählen CMS API pro Titel durch Einstellen der is_default Feld zu true
  • Es gibt auch einen Account-Standard, der vom Support eingestellt werden kann
  • Dies wirkt sich nur auf den "Standard"-Track in HLS-Manifesten aus
  • Keine andere Bestellung möglich
Mehr als einen Audiotrack von einer einzigen Quelle aufnehmen
Wir unterstützen nur eine Audiospur pro Quelle. Jeder Audiotrack muss separat aufgenommen werden.
DRM-Schutz für Videos, die nur Audio enthalten
Sobald eine Videospur hinzugefügt wird, wird der DRM-Schutz aktiviert.
Endbenutzerfreundliche Etiketten
Wir unterstützen keine benutzerdefinierten Labels für Audiotracks. Wenn Sie dies wünschen, müssen Sie die Änderung auf der Client-Seite über die Player-API vornehmen.
In einigen Fällen kann das Wechseln der Spuren dazu führen, dass der Brightcove Player instabil wird
  • Titelwechsel, bevor alle Audiosegmente heruntergeladen wurden
  • Wenn das Video mit dem Silverlight-Plugin wiedergegeben wird (in Versionen von IE weniger als 10 oder einer beliebigen Version von IE in Versionen von Window weniger als 8) - sind mehrere Audiospuren nicht in Silverlight unterstützt.
  • Wenn die Dauer von Audio und Video unterschiedlich ist, stoppt der Player möglicherweise, wenn die kürzere aufgebraucht ist.
Video "duration
Das Video duration die von der Katalog-/Wiedergabe-API gemeldet werden, können falsch sein, wenn die Audiotracks unterschiedliche Dauern haben.