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 einemAuthorization
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:
Sie können Ihre Anmeldeinformationen auch über erhalten CURL oder Postman - sehen:
- Holen Sie sich Client-Anmeldeinformationen mit CURL
- Holen Sie sich Client-Anmeldeinformationen mit Postman
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
- Mehrere Audiospuren zu einem vorhandenen Video hinzufügen
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 Table
B.
variant
Die variant
Feld beschreibt die Art der Audiospur. Die möglichen Werte mit Standardbedeutungen sind:
main
- der Haupttrack, normalerweise der in die Videodatei gemuxtealternate
- eine alternative Audiospurcommentary
- eine Audiospur, die den Videotrack kommentiertdub
- ein Track mit einer synchronisierten Version gesprochener Wörter in einer anderen Sprachedescriptive
- 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)
- 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" }
- Senden Sie die obige JSON (wobei der Platzhaltertext durch Ihren Videonamen ersetzt wird) als Anfragetext für
POST
Anfrage zuhttps://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
- 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 dermaster
-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
- 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" ] }
- Senden Sie die obige JSON, ersetzen Sie die Platzhalter durch Ihre eigenen URLs und passen Sie die
language
undvariant
Werte, in aPOST
Anfrage zuhttps://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests
(dasID
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
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 Table B. |
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 Table B. |
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:
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.
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 Table B. |
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
- Die Wiedergabe-API wird nicht zurückkehren
- 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 zutrue
- 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
- Sie können eine Standard-Audiospur mit auswählen CMS API pro Titel durch Einstellen der
- 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.