Introducción
La capacidad de asociar varias pistas de audio con un solo título puede ser útil en un par de escenarios clave:
- Reproducción del mismo vídeo en diferentes idiomas para un alcance más amplio a nivel mundial
- Proporcionar audio con descripciones para las personas con problemas visuales
Tenga en cuenta que la adición de pistas de audio también se puede hacer en Studio. Consulte Adición de pistas de audio a vídeos mediante el módulo multimedia para obtener más detalles.
Formatos de vídeo compatibles
Múltiples pistas de audio son compatibles con HLS V4+
y DASH
- con y sin DRM
protección.
Ejemplo
A continuación se muestra un ejemplo simple de un video con varias pistas de audio.
Configuración
La configuración de Dynamic Ingest las solicitudes es la misma, ya sea que esté ingerendo un vídeo, imágenes, pistas de audio, WebVTT archivos o todos estos:
- URL de solicitud
-
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
- Autenticación
- La autenticación requiere un token de acceso pasado como
Bearer
token en unAuthorization
encabezado:Authorization: Bearer {access_token}
Para obtener tokens de acceso, necesitará credenciales de cliente (ver a continuación). Para obtener un token de acceso, vea Obtener tokens de acceso.
Nota sobre S3
Si sus archivos de origen se extraerán de un depósito S3 protegido, deberá establecer una política de depósito para permitir el acceso Video Cloud a los archivos. Consulte Uso Dynamic Ingest con S3 para obtener más detalles.
Obtener credenciales
Para obtener un y, deberá ir a la interfaz de usuario de OAuth y registrar esta aplicación:client_id
client_secret
Estos son los permisos que necesitará:

También puede obtener sus credenciales a través de CURL o Postman - consulte:
Si está obteniendo credenciales directamente de la API, estos son los permisos que necesita:
[
"video-cloud/video/all",
"video-cloud/ingest-profiles/profile/read",
"video-cloud/ingest-profiles/account/read",
"video-cloud/upload-urls/read"
]
Flujo de trabajo
Hay dos casos de uso principales:
- Ingiera un nuevo vídeo con varias pistas de audio
Nuevo flujo de trabajo de vídeo - Agregar varias pistas de audio a un vídeo existente
Flujo de trabajo de vídeo
Vamos a ver los detalles de las solicitudes de API en una sección a continuación.
Metadatos de pista de audio
Hay algunos campos de metadatos adjuntos a pistas de audio; algunos de estos se configuran cuando se ingiere las pistas, mientras que otros son creados por Video Cloud. Algunos de estos campos son de sólo lectura y otros pueden ser actualizados por usted. Los campos de metadatos se detallarán a continuación en el contexto de las solicitudes API relevantes, pero dos particulares requieren alguna explicación aquí, ya que son cruciales para determinar cómo manejará Brightcove Player las múltiples pistas de audio.
language
El language
campo, establecido para cada pista durante la ingestión, especifica el idioma de la pista. Esto es importante si la pista es un dub de palabras habladas en el video. El valor de este campo será un código de dos letras como en
o hi
. Para obtener una lista completa de códigos de idioma, consulte los Subtag
valores en http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry.
variant
El variant
campo describe el tipo de pista de audio. Los valores posibles, con significados estándar son:
main
- la pista principal, generalmente la que se muxed en el archivo de vídeoalternate
- una pista de audio alternativacommentary
- una pista de audio que proporciona comentarios sobre la pista de vídeodub
- una pista que contiene una versión doblada de palabras habladas en un idioma diferentedescriptive
- pista es descriptiva del contenido de vídeo de alguna manera
Valores predeterminados de cuenta
Puede establecer los valores predeterminados de la cuenta language
y variant
para determinar qué pista de audio será tratada como predeterminada por el Reproductor de Brightcove (el valor predeterminado también se puede anular actualizando los metadatos de la pista, como veremos en una sección infra). Para establecer los valores predeterminados de su cuenta, póngase en contacto con el servicio de asistencia de Brightcove.
Ingesta de pistas de audio
Ahora veremos las llamadas API para ingerir pistas de audio para los dos casos de uso descritos anteriormente.
Nuevo vídeo con varias pistas de audio
Crear el objeto de vídeo (CMS API)
- Puede agregar varios elementos de metadatos de vídeo al crear el objeto de vídeo, pero aquí vamos a añadir el mínimo: a
name
para el vídeo:{ "name": "YOUR_VIDEO_NAME" }
- Envíe el JSON anterior (con el texto del marcador de posición reemplazado por su nombre de vídeo) como el cuerpo de la
POST
solicitud ahttps://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
- Obtendrá una gran cantidad de metadatos de vídeo en la respuesta, pero la pieza importante aquí es el
id
(el id de video), que necesita para el siguiente paso.
Ingesta las pistas de vídeo y audio
A continuación vamos a ingerir las pistas de vídeo y audio (podríamos añadir otros activos como imágenes y pistas de texto, pero lo mantendremos simple aquí). Lo único que puede encontrar un poco confuso es que audio_tracks
aparece dos veces en el JSON para el cuerpo de la solicitud:
- Un
audio_tracks
objeto dentro delmaster
objeto contiene metadatos para la pista de audio incluida en el archivo de vídeo (si hay alguno, esto también se conoce como muxed en audio) - esto incluirá sólo metadatos, sin una URL para el archivo de audio, ya que la pista de audio ya está incluida en el archivo de vídeo - Un
audio_tracks
objeto de nivel superior que describe las pistas de audio adicionales que está ingiriendo - estos incluirán una URL para el archivo de audio, así como otros metadatos
- Los datos JSON que se enviarán en el cuerpo de solicitud son los siguientes:
{ "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" ] }
- Envíe el JSON anterior, sustituya los marcadores de posición por sus propias URL y ajuste el
language
yvariant
valores, en unPOST
solicitud dehttps://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests
(laID
aquí está la identificación de video devuelta por la solicitud para crear el objeto de video)
Agregar pistas de audio a un vídeo existente
Para agregar pistas de audio adicionales a un video existente, el procedimiento es el mismo, excepto que no necesita hacer la solicitud CMS API para crear el video, porque ya existe. Y en la solicitud a la Dynamic Ingest API, no necesitará incluir la URL para el archivo de video o el audio_tracks
debajo master
que proporciona los metadatos para el muxed en audio. Sin embargo, desea incluir los metadatos de la pista de audio muxed en el vídeo existente. Entonces, el JSON para la solicitud de ingesta se verá así:
{
"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"
]
}
Campos de pista de audio para ingesta
Campo | Tipo | Descripción |
---|---|---|
master.audio_tracks |
Objeto [] | Metadatos para el muxed en audio |
master.audio_tracks.language |
Cadena | Código de idioma para el muxed en audio de las subetiquetas en http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |
master.audio_tracks.variant |
Cadena | El tipo de pista de audio: |||| (generalmente se usaría para el muxed en audio)main alternate dub commentary descriptive main |
audio_tracks |
Objeto | Información sobre las pistas de audio adicionales |
audio_tracks.merge_with_existing |
Booleano | Si estas pistas deben fusionarse con las existentes o reemplazarlas |
audio_tracks.masters |
Objeto [] | Información para las pistas de audio individuales |
audio_tracks.masters.url |
Cadena | URL para el archivo de pista de audio |
audio_tracks.masters.language |
Cadena | Código de idioma para la pista de audio de las subetiquetas en http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |
audio_tracks.masters.variant |
Cadena | El tipo de pista de audio: |||| (generalmente se usaría para el muxed en audio)main alternate dub commentary descriptive main |
Notificaciones
Si especifica una o más URL de devolución de llamada (como en el JSON de muestra para la solicitud de ingesta anterior), Video Cloud enviará una notificación para cada una de las pistas de audio que ingiera. Las notificaciones se verán así:
{
"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"
}
Para identificar notificaciones de pistas de audio, busque el language
y variant
campos en la notificación. los "action": "CREATE"
y "status": "SUCCESS"
Los campos indican que la pista se ingirió correctamente.
Gestión de pistas de audio
Una vez que haya ingerido las pistas de audio, puede administrarlas a través de CMS API.
Obtener todos los metadatos de pistas de audio para un vídeo
Para recuperar los metadatos de todas las pistas de audio asociadas a un vídeo, realice una GET
solicitud a:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks
La respuesta será una matriz de objetos que contengan metadatos para cada pista de audio. Consulte la tabla de campos de respuesta a continuación para obtener más detalles.
[
{
"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
]
}
]
También puede ver esta información en Studio viendo el vídeo en el módulo Media:

Obtener metadatos para una pista de audio
Para recuperar los metadatos de una pista de audio asociada a un vídeo, realice una GET
solicitud a:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
La respuesta será un objeto que contenga metadatos para cada pista de audio. Consulte la tabla de campos de respuesta a continuación para obtener más detalles.
Actualización de metadatos de pista de audio
Puede actualizar cualquier campo de metadatos de escritura para una pista de audio haciendo una PATCH
solicitud a:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
En el cuerpo de la solicitud, incluya los campos que desea modificar, por ejemplo:
{
"language": "es",
"is_default": true
}
Eliminar una pista de audio
Para eliminar una pista de audio, envíe una solicitud DELETE a:
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
Tenga en cuenta que el código de respuesta correcta puede ser 202 (Aceptado) en lugar de 204 (Sin contenido) porque el proceso de eliminación es asincrónico y puede que no se complete inmediatamente.
Reproducción
Para obtener información sobre cómo los reproductores web y SDK de Brightcove manejan varias pistas de audio, consulte:
Problemas conocidos
- Patrones de audio no almacenados
-
- Video Cloud no almacenará maestros de audio
- Si vuelve a transcodificar el vídeo desde el maestro de vídeo, se perderán las pistas de audio adicionales y se deben volver a agregar utilizando el método Agregar pistas de audio a un vídeo existente descrito anteriormente
- Se deben utilizar archivos de solo audio
- Las pistas de audio deben ser archivos de solo audio sin pistas de vídeo
HLSv3
,HLS
con audio y vídeo en el mismo segmento-
- La API de reproducción no devolverá
HLSv3
manifiestos - Todos los
HLS
manifiestos incluirán vídeo/audio desmuxed
- La API de reproducción no devolverá
- Smooth Streaming
- Las URL de transmisión fluida no estarán disponibles.
- Distribución social
- No es posible seleccionar qué pista de audio se utilizará para la distribución. La pista incluida en la fuente de vídeo (el muxed en audio) se utilizará, siempre.
- Studio
-
- Studio mostrará información sobre pistas de audio
- Para agregar pistas de audio con Studio, consulte Varias pistas de audio
- Ordenación de pistas de audio más allá de la pista «predeterminada»
-
- Puede elegir una pista de audio predeterminada con por título estableciendo el campo aCMS API
is_default
true
- También hay un valor predeterminado de la cuenta, que puede ser configurado por Soporte
- Esto solo afectará a la pista «predeterminada» en los manifiestos HLS
- Ningún otro pedido es posible
- Puede elegir una pista de audio predeterminada con por título estableciendo el campo aCMS API
- Ingerir más de una pista de audio de una sola fuente
- Solo soporta una pista de audio por fuente ingerida. Cada pista de audio debe ingerirse por separado.
- Protección DRM en vídeos que solo incluyen audio
- Tan pronto como se añada una pista de vídeo, se habilitará la protección DRM.
- Etiquetas fáciles de usar
- No se admiten etiquetas personalizadas para pistas de audio. Si lo requiere, deberá realizar el cambio en el lado del cliente a través de la Player API.
- En algunos casos, el cambio de pistas puede provocar que el reproductor de Brightcove se vuelva inestable.
-
- Cambio de pista antes de que se hayan descargado todos los segmentos de audio
- Cuando el vídeo se reproduce usando el plugin Silverlight (en versiones de IE menores de 10, o cualquier versión de IE en versiones de Windows menos de 8), Silverlight no admite varias pistas de audio.
- Si el audio y el vídeo tienen diferentes duraciones, el reproductor puede detenerse siempre que se agote el más corto.
- Vídeo "
duration
» - El vídeo reportado por la API de catálogo/reproducción puede ser incorrecto si las pistas de audio tienen diferentes duraciones.
duration