soporte Contactar con Soporte | Estadoestado del sistema del sistema
Contenido de la página

    Implementación de varias pistas de audio

    En este tema se explica cómo agregar y administrar varias pistas de audio para vídeos mediante la ingesta dinámica y las API de CMS.

    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 un Authorization 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_idclient_secret

    • Administración de credenciales de autenticación de API

    Estos son los permisos que necesitará:

    Permisos de ingesta dinámica
    Dynamic Ingest Permisos

    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
      Nuevo flujo de trabajo de vídeo
    • Agregar varias pistas de audio a un vídeo existente
      Flujo de trabajo de vídeo
      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ídeo
    • alternate - una pista de audio alternativa
    • commentary - una pista de audio que proporciona comentarios sobre la pista de vídeo
    • dub - una pista que contiene una versión doblada de palabras habladas en un idioma diferente
    • descriptive - 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)

    1. 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"
            }
    2. 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 a https://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
    3. 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 del master 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
    1. 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"
                ]
            }
    2. Envíe el JSON anterior, sustituya los marcadores de posición por sus propias URL y ajuste el language y variant valores, en un POST solicitud de https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests (la ID 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

    Campos de pista de audio
    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)mainalternatedubcommentarydescriptivemain
    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)mainalternatedubcommentarydescriptivemain

    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:

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

    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.

    Campos de metadatos de pista de audio
    Campo Tipo Sólo lectura Descripción
    id Cadena yes Id para la pista, formada como language_variant - tenga en cuenta que el id puede cambiar si se cambian estos valores
    language Cadena 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 Cadena No El tipo de pista de audio: |||| (generalmente se usaría para el muxed en audio)mainalternatedubcommentarydescriptivemain
    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 Booleano No Si es cierto, se utilizará la pista predeterminada para la reproducción (anulando cualquier valor predeterminado de nivel de cuenta)

    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
    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 APIis_defaulttrue
    • 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
    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

    Última actualización de la página el 25 oct 2020