soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema

Implementación de múltiples pistas de audio

En este tema se explica cómo agregar y administrar varias pistas de audio para videos usando el Dynamic Ingest and CMS APIs.

Introducción

La capacidad de asociar múltiples pistas de audio con un solo título puede ser útil en un par de escenarios clave:

  • Reproducción del mismo video en diferentes idiomas para un alcance más amplio a nivel mundial
  • Proporcionar audio con descripciones para los discapacitados visuales

Tenga en cuenta que agregar pistas de audio también se puede hacer en Studio - ver Agregar pistas de audio a videos usando el módulo de medios para más detalles.

Formatos de video compatibles

Múltiples pistas de audio son compatibles para HLS V4+ y DASH - con y sin DRM proteccion.

Muestra

A continuación se muestra un ejemplo simple de un video con múltiples pistas de audio.

Preparar

La configuración para Dynamic Ingest las solicitudes son las mismas, ya sea que esté ingiriendo un video, 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 una Authorization encabezamiento:
      Authorization: Bearer {access_token}

Para obtener tokens de acceso, necesitarás credenciales del cliente (vea abajo). Para el proceso de obtención de un token de acceso, consulte Obtener tokens de acceso.

Nota sobre S3

Si sus archivos fuente se extraerán de un depósito S3 protegido, deberá establecer una política de depósito para permitir Video Cloud para acceder a los archivos. Ver Usar Dynamic Ingest con S3 para más detalles.

Obtener credenciales

Conseguir un client_id y client_secret, deberá ir a la interfaz de usuario de OAuth y registrar esta aplicación:

Estos son los permisos que necesitará:

<span class =Permisos de ingesta dinámica "src =" / assets / images / dynamic-ingest / code-samples / di-permissions.png "/>
Dynamic Ingest Permissions

También puede obtener sus credenciales a través de CURL or Postman - ver:

Si obtiene 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:

  • Ingerir un nuevo video con múltiples pistas de audio
    Nuevo flujo de trabajo de video
    Nuevo flujo de trabajo de video
  • Agregue varias pistas de audio a un video existente
    Flujo de trabajo de video existente
    Flujo de trabajo de video existente

Veremos los detalles de las solicitudes de API en una sección a continuación.

Metadatos de la pista de audio

Hay algunos campos de metadatos adjuntos a las pistas de audio, algunos de estos se establecen cuando ingiere las pistas, mientras que otros son creados por Video Cloud. Algunos de estos campos son de solo lectura y otros pueden ser actualizados por usted. Los campos de metadatos se detallarán a continuación en el contexto de las solicitudes de API relevantes, pero dos en particular requieren una explicación aquí, ya que son cruciales para determinar cómo Brightcove Player Manejará las múltiples pistas de audio.

language

La language campo, establecido para cada pista durante la ingestión, especifica el idioma de la pista. Esto es importante si la pista es un doblaje de palabras habladas en el video. El valor de este campo será un código de dos letras como en or hi. Para obtener una lista completa de los códigos de idioma, consulte la Subtag Valores en http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry.

variant

La variant el campo describe el tipo de pista de audio. Los valores posibles, con significados estándar son:

  • main - la pista principal, por lo general la muxed en el archivo de video
  • alternate - una pista de audio alternativa
  • commentary - una pista de audio que proporciona comentarios sobre la pista de video
  • dub - una pista que contiene una versión doblada de palabras habladas en un idioma diferente
  • descriptive - la pista es descriptiva del contenido de video de alguna manera

Valores predeterminados de la cuenta

Puede establecer los valores predeterminados de cuenta para language y variant para determinar qué pista de audio se tratará como predeterminada por el Brightcove Player (el valor predeterminado también se puede anular actualizando los metadatos de la pista, como veremos en la siguiente sección). Para establecer los valores predeterminados para su cuenta, Póngase en contacto con el soporte de Brightcove.

Ingerir pistas de audio

Ahora veremos las llamadas a API para ingerir pistas de audio para los dos casos de uso descritos anteriormente.

Nuevo video con múltiples pistas de audio

Crea el objeto de video (CMS API)

  1. Puede agregar varios elementos de metadatos de video cuando crea el objeto de video, pero aquí solo agregaremos el mínimo: a name para el video:
          {
              "name": "YOUR_VIDEO_NAME"
          }
  2. Envíe el JSON anterior (con el texto del marcador de posición reemplazado por su nombre de video) como el cuerpo de solicitud para POST solicitud de https://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
  3. Obtendrá una gran cantidad de metadatos de video en la respuesta, pero la parte importante aquí es la id (la identificación del video), que necesita para el siguiente paso.

Ingerir las pistas de video y audio

A continuación, ingestaremos las pistas de audio y video (podríamos agregar otros recursos 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:

  • An audio_tracks objeto dentro del master objeto contiene metadatos para la pista de audio incluida en el archivo de video (si hay alguno, también se lo denomina muxed en audio); esto incluirá solo metadatos, sin una URL para el archivo de audio, ya que la pista de audio ya está incluida en el archivo de video
  • Un nivel superior audio_tracks objeto que describe las pistas de audio adicionales que está ingiriendo: estas incluirán una URL para el archivo de audio, así como otros metadatos
  1. Los datos JSON que se enviarán en el cuerpo de la 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"
              ]
          }
  2. Envíe el JSON anterior, sustituyendo sus propios URL por marcadores de posición y ajustando el language y variant valores, en una POST solicitud de https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests (El ID aquí está la identificación del video devuelta de la solicitud para crear el objeto de video)

Agregar pistas de audio a un video existente

Para agregar pistas de audio adicionales a un video existente, el procedimiento es el mismo, excepto que no es necesario que realice la solicitud al CMS API para crear el video, porque ya existe Y en la solicitud al Dynamic Ingest API, no necesitará incluir la URL para el archivo de video o la audio_tracks bajo master proporcionando los metadatos para el muxed en audio. Sin embargo, desea incluir los metadatos para el multiplexado en la pista de audio en el video 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 pistas de audio para ingerir

Campos de pista de audio
Campo Tipo Descripción
master.audio_tracks Objeto[] Metadatos para el muxed en audio
master.audio_tracks.language Cuerda Código de idioma para el audio multiplexado de las subetiquetas en http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
master.audio_tracks.variant Cuerda El tipo de pista de audio: main|alternate|dub|commentary|descriptive (main generalmente se usaría para el audio multiplexado)
audio_tracks Objeto Información para las pistas de audio adicionales
audio_tracks.merge_with_existing Boolean Si estas pistas deberían fusionarse con las existentes o reemplazarlas
audio_tracks.masters Objeto[] Información para las pistas de audio individuales
audio_tracks.masters.url Cuerda Url para el archivo de pista de audio
audio_tracks.masters.language Cuerda 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 Cuerda El tipo de pista de audio: main|alternate|dub|commentary|descriptive (main generalmente se usaría para el audio multiplexado)

Notificaciones

Si especifica uno o más llamar de vuelta URLs (como en la muestra JSON para la solicitud de ingestión anterior) Video Cloud enviará una notificación para cada una de las pistas de audio que ingiere. 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 ruta fue ingerida con éxito.

Administrar 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 video

Para recuperar los metadatos de todas las pistas de audio asociadas a un video, haga una GET solicitud de:

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

La respuesta será una matriz de objetos que contienen metadatos para cada pista de audio. Consulte la tabla de campos de respuesta a continuación para obtener más información.

      [
        {
          "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 al ver el video en el módulo de medios:

Información de la pista de audio en Studio
Información de la pista de audio en Studio

Obtener metadatos para una pista de audio

Para recuperar los metadatos de una pista de audio asociada a un video, haga una GET solicitud de:

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

La respuesta será un objeto que contiene metadatos para cada pista de audio. Consulte la tabla de campos de respuesta a continuación para obtener más información.

Actualización de metadatos de pistas de audio

Puede actualizar cualquier campo de metadatos modificables para una pista de audio haciendo una PATCH solicitud de:

      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.

Pista de audio Campos de metadatos
Campo Tipo Sólo lectura Descripción
id Cuerda Id para la pista, formada como language_variant - tenga en cuenta que la identificación puede cambiar si se cambian estos valores
language Cuerda No Código de idioma para la pista de audio de las subetiquetas en http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
variant Cuerda No El tipo de pista de audio: main|alternate|dub|commentary|descriptive (main generalmente se usaría para el audio multiplexado)
duration Número La longitud de la pista en milisegundos
encoding_rates Número[] Una lista de codificaciones disponibles de esta pista, en bps
is_default Boolean No Si es verdadero, se usará la pista predeterminada para la reproducción (anulando cualquier valor predeterminado de nivel de cuenta)

Playback

Para obtener información sobre cómo funciona la web de Brightcove y el SDK players manejar múltiples pistas de audio ver:

Problemas conocidos

Audio masters no almacenados
  • Video Cloud va a no almacenar audio masters
  • Si vuelve a codificar el video del maestro de video, las pistas de audio adicionales se perderán y se deberán volver a agregar utilizando el Agregar pistas de audio a un video existente método descrito arriba
Se deben usar archivos de solo audio
Las pistas de audio deben ser archivos de solo audio sin pistas de video
HLSv3, HLS con audio y video en el mismo segmento
  • La reproducción API no regresará HLSv3 manifiestos
  • Todo HLS manifiestos incluirán video / audio sin mux
Flujo suave
Smooth Streaming URLs no estará disponible.
Social Distribución
No es posible seleccionar qué pista de audio se usará para la distribución. La pista incluida en la fuente de video (muxed en audio) se usará siempre.
Estudio
  • Studio mostrará información sobre pistas de audio
  • Para agregar pistas de audio usando Studio, consulte Varias pistas de audio
Ordenar pistas de audio más allá de la pista "predeterminada"
  • Puede elegir una pista de audio predeterminada con CMS API por título al configurar el is_default campo para true
  • También hay una cuenta predeterminada, que puede ser configurada por Support
  • Esto solo afectará la pista "predeterminada" en los manifiestos de HLS
  • No hay otro pedido posible
Ingerir más de una pista de audio desde una sola fuente
Apoyamos una pista de audio de la fuente suministrada en ".master"y uno para cada fuente en ".audio_tracks.masters".
Protección DRM en videos que incluyen solo audio
Tan pronto como se agregue una pista de video, se habilitará la protección DRM.
Etiquetas amigables para el usuario final
No admitimos etiquetas personalizadas para pistas de audio. Si lo requiere, deberá realizar el cambio en el lado del cliente a través de Player API.
En algunos casos, el cambio de pistas puede causar Brightcove Player volverse inestable
  • Seguir la conmutación antes de que se hayan descargado todos los segmentos de audio
  • Cuando el video se reproduce usando el plugin de Silverlight (en versiones de IE inferiores a 10, o cualquier versión de IE en versiones de Windows inferiores a 8), hay varias pistas de audio no compatible con Silverlight.
  • Si el audio y el video tienen duraciones diferentes, el player se detendrá cada vez que se agote el más corto.
Video "duration"
El video duration reportado por el catálogo /Playback API puede ser incorrecto si las pistas de audio tienen duraciones diferentes.

Página actualizada por última vez el 12 jun 2020