Paper Contacter le support | état du système L'état du système
Contenu de la page

    Implémentation de plusieurs pistes audio

    Cette rubrique explique comment ajouter et gérer plusieurs pistes audio pour des vidéos à l’aide des méthodes d’analyse dynamique et d'acquisition. CMS APIs.

    Introduction

    La possibilité d'associer plusieurs pistes audio à un seul titre peut être utile dans quelques scénarios clés:

    • Lecture de la même vidéo dans différentes langues pour une portée plus large à l'échelle mondiale
    • Fournir de l'audio avec des descriptions pour les personnes ayant une déficience visuelle

    Notez que l'ajout de pistes audio peut également être fait dans Studio - voir Ajout de pistes audio à des vidéos à l'aide du module média pour plus de détails.

    Formats vidéo pris en charge

    Plusieurs pistes audio sont prises en charge pour HLS V4+ et DASH - Avec et sans DRM protection.

    Échantillon

    Voici un exemple simple d'une vidéo avec plusieurs pistes audio.

    installation

    La configuration pour Dynamic Ingest les demandes sont les mêmes, que vous ingériez une vidéo, des images, des pistes audio, WebVTT fichiers, ou tous:

    Demander une URL
          https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
    Authentification
    L'authentification nécessite un jeton d'accès transmis en tant que Bearer jeton dans un Authorization en-tête:
          Authorization: Bearer {access_token}

    Pour avoir des jetons d'accès, vous aurez besoin informations d'identification du client (voir ci-dessous). Pour le processus d'obtention d'un jeton d'accès, voir Obtenir des jetons d'accès.

    Note sur S3

    Si vos fichiers source seront extraits d'un compartiment S3 protégé, vous devrez définir une stratégie de compartiment pour autoriser Video Cloud pour accéder aux fichiers. Voir En utilisant Dynamic Ingest avec S3 pour en savoir plus.

    Obtenir des informations d'identification

    Pour obtenir une client_id et client_secret, vous devrez aller à l'interface utilisateur OAuth et enregistrer cette application:

    Voici les autorisations dont vous aurez besoin:

    <span class =Autorisations d'acquisition dynamique "src =" / assets / images / absorption dynamique / échantillons de code / di-permissions.png "/>
    Dynamic Ingest Permission

    Vous pouvez également obtenir vos informations d'identification via CURL or Postman - voir:

    Si vous obtenez des informations d'identification directement à partir de l'API, voici les autorisations dont vous avez besoin:

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

    flux de travail

    Il y a deux cas d'utilisation principaux:

    • Ingest une nouvelle vidéo avec plusieurs pistes audio
      Nouveau flux de travail vidéo
      Nouveau flux de travail vidéo
    • Ajouter plusieurs pistes audio à une vidéo existante
      Flux de production vidéo existant
      Flux de production vidéo existant

    Nous examinerons les détails des demandes d'API dans une section ci-dessous.

    Métadonnées de piste audio

    Il y a certains champs de métadonnées attachés aux pistes audio - certains d'entre eux sont définis lorsque vous ingérez les pistes, tandis que d'autres sont créés par Video Cloud. Certains de ces champs sont en lecture seule et d’autres peuvent être mis à jour par vous. Les champs de métadonnées seront détaillés ci-dessous dans le contexte des demandes d'API pertinentes, mais deux d'entre elles nécessitent une explication, car elles sont essentielles pour déterminer la manière dont le Brightcove Player va gérer les pistes audio multiples.

    language

    Le système language champ, défini pour chaque piste pendant l'ingestion, spécifie la langue de la piste. Ceci est important si la piste est un doublon de mots parlés dans la vidéo. La valeur de ce champ sera un code à deux lettres comme en or hi. Pour une liste complète des codes de langue, voir Subtag Valeurs dans http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry.

    variant

    Le système variant field décrit le type de piste audio. Les valeurs possibles, avec des significations standard sont:

    • main - la piste principale, généralement celle qui est incluse dans le fichier vidéo
    • alternate - une piste audio alternative
    • commentary - une piste audio qui fournit des commentaires sur la piste vidéo
    • dub - une piste contenant une version doublée de mots parlés dans une langue différente
    • descriptive - la piste est descriptive du contenu vidéo d'une manière ou d'une autre

    Valeurs par défaut du compte

    Vous pouvez définir les paramètres par défaut du compte pour language et variant pour déterminer quelle piste audio sera traitée comme valeur par défaut par le Brightcove Player (la valeur par défaut peut également être remplacée par la mise à jour des métadonnées de la piste, comme nous le verrons dans une section ci-dessous). Pour définir les paramètres par défaut de votre compte, Contacter l'assistance Brightcove.

    Ingest les pistes audio

    Maintenant, nous allons regarder les appels API pour ingérer des pistes audio pour les deux cas d'utilisation décrits plus haut.

    Nouvelle vidéo avec plusieurs pistes audio

    Créez l'objet vidéo (CMS API)

    1. Vous pouvez ajouter plusieurs éléments de métadonnées vidéo lorsque vous créez l'objet vidéo, mais ici nous allons simplement ajouter le minimum: a name pour la vidéo:
            {
                "name": "YOUR_VIDEO_NAME"
            }
    2. Soumettez le JSON ci-dessus (avec le texte d'espace réservé remplacé par votre nom de vidéo) en tant que corps de demande pour POST demande à https://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
    3. Vous obtiendrez beaucoup de métadonnées vidéo dans la réponse, mais l'élément important ici est le id (l'identifiant de la vidéo), dont vous avez besoin pour la prochaine étape.

    Ingest les pistes vidéo et audio

    Ensuite, nous allons ingérer les pistes vidéo et audio (nous pourrions ajouter d'autres actifs comme des images et des pistes de texte, mais nous allons rester simple ici). La seule chose que vous pourriez trouver un peu déroutant est que audio_tracks apparaît deux fois dans le JSON pour le corps de la requête:

    • An audio_tracks objet dans le master objet contient des métadonnées pour la piste audio incluse dans le fichier vidéo (le cas échéant - c'est ce qu'on appelle le muxed dans l'audio) - ceci inclura les métadonnées seulement, sans URL pour le fichier audio, puisque la piste audio est déjà incluse dans le fichier vidéo
    • Un haut niveau audio_tracks objet décrivant les pistes audio supplémentaires que vous êtes en train d'ingérer - elles incluront une URL pour le fichier audio, ainsi que d'autres métadonnées
    1. Les données JSON à envoyer dans le corps de la requête sont les suivantes:
            {
              "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. Envoyer le JSON ci-dessus, en substituant vos propres URL pour les espaces réservés, et en ajustant le language et variant valeurs, dans un POST demande à https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests (les ID voici l'identifiant vidéo renvoyé par la requête pour créer l'objet vidéo)

    Ajouter des pistes audio à une vidéo existante

    Pour ajouter des pistes audio supplémentaires à une vidéo existante, la procédure est la même, sauf que vous n'avez pas besoin de faire la demande au CMS API pour créer la vidéo, car elle existe déjà. Et dans la demande à la Dynamic Ingest API, vous n’aurez pas besoin d’inclure l’URL du fichier vidéo ou audio_tracks pour master fournissant les métadonnées pour le multiplexé en audio. Cependant, vous souhaitez inclure les métadonnées du multiplexage dans la piste audio de la vidéo existante. Le JSON de la requête d'acquisition ressemblera donc à ceci:

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

    Champs de piste audio pour l'ingestion

    Champs de piste audio
    Champ Type Description
    master.audio_tracks Objet[] Métadonnées pour le muxed en audio
    master.audio_tracks.language Chaîne Code de langue pour le multiplexé dans l'audio des sous-étiquettes dans http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
    master.audio_tracks.variant Chaîne Le genre de piste audio: main|alternate|dub|commentary|descriptive (main serait généralement utilisé pour le multiplexé en audio)
    audio_tracks objet Informations pour les pistes audio supplémentaires
    audio_tracks.merge_with_existing Boolean Si ces pistes doivent être fusionnées dans celles existantes ou les remplacer
    audio_tracks.masters Objet[] Informations pour les pistes audio individuelles
    audio_tracks.masters.url Chaîne URL du fichier de piste audio
    audio_tracks.masters.language Chaîne Code de langue pour la piste audio des sous-étiquettes dans http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
    audio_tracks.masters.variant Chaîne Le genre de piste audio: main|alternate|dub|commentary|descriptive (main serait généralement utilisé pour le multiplexé en audio)

    Notifications

    Si vous spécifiez un ou plusieurs rappeler URL (comme dans l'exemple JSON pour la demande d'ingestion ci-dessus), Video Cloud enverra une notification pour chacune des pistes audio que vous ingérez. Les notifications ressembleront à ceci:

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

    Pour identifier les notifications pour les pistes audio, recherchez le language et variant champs dans la notification. le "action": "CREATE" et "status": "SUCCESS" les champs indiquent que la piste a été ingérée avec succès.

    Gérer les pistes audio

    Une fois que vous avez ingéré les pistes audio, vous pouvez les gérer via le CMS API.

    Obtenir toutes les métadonnées de piste audio pour une vidéo

    Pour récupérer les métadonnées de toutes les pistes audio associées à une vidéo, faites un GET demande à:

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

    La réponse sera un tableau d'objets contenant des métadonnées pour chaque piste audio. Voir le tableau des champs de réponse ci-dessous pour plus de détails.

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

    Vous pouvez également afficher ces informations dans Studio en visualisant la vidéo dans le module Médias:

    Informations sur les pistes audio dans Studio
    Informations sur les pistes audio dans Studio

    Obtenir des métadonnées pour une piste audio

    Pour récupérer les métadonnées d'une piste audio associée à une vidéo, faites un GET demande à:

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

    La réponse sera un objet contenant des métadonnées pour chaque piste audio. Voir le tableau des champs de réponse ci-dessous pour plus de détails.

    Mise à jour des métadonnées de piste audio

    Vous pouvez mettre à jour n'importe quel champ de métadonnées inscriptible pour une piste audio en effectuant un PATCH demande à:

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

    Dans le corps de la requête, incluez le (s) champ (s) que vous souhaitez modifier, par exemple:

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

    Supprimer une piste audio

    Pour supprimer une piste audio, envoyez une requête DELETE à:

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

    Notez que le code de réponse de réussite peut être 202 (Accepté) plutôt que 204 (Pas de contenu), car le processus de suppression est asynchrone et peut ne pas être terminé immédiatement.

    Champs de métadonnées de piste audio
    Champ Type Lecture seule Description
    id Chaîne Oui Id pour la piste, formé comme language_variant - notez que l'identifiant peut changer si ces valeurs sont modifiées
    language Chaîne Non Code de langue pour la piste audio des sous-étiquettes dans http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
    variant Chaîne Non Le genre de piste audio: main|alternate|dub|commentary|descriptive (main serait généralement utilisé pour le multiplexé en audio)
    duration Numéro Oui La longueur de la piste en millisecondes
    encoding_rates Nombre[] Oui Une liste des encodages disponibles de cette piste, en bps
    is_default Boolean Non Si vrai, ce sera utilisé la piste par défaut pour la lecture (en remplaçant toute valeur par défaut au niveau du compte)

    Playback

    Pour plus d'informations sur la façon dont Brightcove Web et SDK players gérer plusieurs pistes audio voir:

    Problèmes connus

    Les maîtres audio ne sont pas stockés
    • Video Cloud aura n'est pas stocker des maîtres audio
    • Si vous transcodez à nouveau la vidéo à partir du maître vidéo, les pistes audio supplémentaires seront perdues et doivent être ajoutées à nouveau à l'aide de Ajouter des pistes audio à une vidéo existante méthode décrite ci-dessus
    Les fichiers audio uniquement doivent être utilisés
    Les pistes audio doivent être des fichiers audio uniquement sans pistes vidéo
    HLSv3, HLS avec audio et vidéo dans le même segment
    • L'API de lecture ne retournera pas HLSv3 manifestes
    • Tous HLS les manifestes incluront la vidéo / audio dé-multiplexée
    Smooth Streaming
    Les URL de diffusion fluide ne seront pas disponibles.
    Social Distribution de Tokens
    Il n'est pas possible de sélectionner quelle piste audio sera utilisée pour la distribution. La piste incluse dans la source vidéo (le muxed en audio) sera toujours utilisée.
    Studio
    • Studio affichera des informations sur les pistes audio
    • Pour ajouter des pistes audio à l'aide de Studio, voir Plusieurs pistes audio
    Commande de pistes audio au-delà de la piste "par défaut"
    • Vous pouvez choisir une piste audio par défaut avec CMS API par titre en définissant le is_default champ à true
    • Il existe également un compte par défaut, qui peut être défini par le support
    • Cela n'affectera que la piste "par défaut" dans les manifestes HLS
    • Aucune autre commande possible
    L'ingestion de plus d'une piste audio à partir d'une seule source
    Nous soutenons une piste audio de la source fournie dans ".master", et une pour chaque source sous ".audio_tracks.masters".
    Protection DRM sur les vidéos comportant uniquement de l'audio
    Dès qu'une piste vidéo est ajoutée, la protection DRM est activée.
    Étiquettes conviviales pour l'utilisateur final
    Nous ne prenons pas en charge les étiquettes personnalisées pour les pistes audio. Si vous en avez besoin, vous devrez effectuer la modification côté client via le Player API.
    Dans certains cas, le changement de piste peut entraîner la Brightcove Player devenir instable
    • Suivre la commutation avant que tous les segments audio aient été téléchargés
    • Lorsque la vidéo est lue à l'aide du plug-in Silverlight (dans les versions de IE inférieures à 10, ou de toute version de IE dans les versions de Window inférieures à 8) - plusieurs pistes audio sont n'est pas pris en charge dans Silverlight.
    • Si l'audio et la vidéo ont des durées différentes, le player La volonté peut s'arrêter chaque fois que la plus courte s'épuise.
    Vidéo "duration"
    La vidéo duration rapporté par le catalogue /Playback API peut être incorrect si les pistes audio ont des durées différentes.

    Dernière mise à jour de la page le 10 août 2020