Paper Contacter le support | état du système L'état du système

Aperçu: Dynamic Ingest API

Dans cette rubrique, vous apprendrez à utiliser le Dynamic Ingest API pour ingérer des vidéos afin qu'elles puissent être diffusées via Dynamic Delivery. Notez que ce guide est pour la plupart Video Cloud les comptes qui se trouvent sur le système d'acquisition Dynamic Delivery. Ceux qui ont des comptes plus anciens encore sur le système d'ingestion hérité devraient aller à Dynamic Ingest API Héritage à la place.

Introduction

Brightcove's Dynamic Ingest API est basé sur une fonctionnalité dans laquelle les fichiers source vidéo sont téléchargés à partir de l'emplacement de stockage du client et où des rendus spécifiés des fichiers source sont créés. (Il y a aussi une option pour télécharger vos fichiers source à un emplacement temporaire où Dynamic Ingest peut y accéder.) La plateforme est centrée sur le cloud, distribuée dans le monde entier et basée sur des pratiques modernes afin d'offrir une cohérence et une vitesse optimales.

Voir aussi le Référence de l'API.

Présentation du flux de travail

Un certain nombre de systèmes / technologies sont utilisés dans le transcodage et le stockage global des médias. Elles sont:

  • CMS API: Crée un objet vidéo à utiliser dans l'API DI
  • Zencoder: Transcode la vidéo en créant plusieurs rendus
  • Amazon S3: Déplace le maître et les rendus vers le stockage, en fonction des paramètres de profil
  • Collections: Stocke les informations requises associées à la vidéo

Après le transcodage initial, vous pouvez effectuer les actions suivantes sur le média:

Opérations

Lorsque vous utilisez l'API DI, vous effectuez différentes opérations, telles que la lecture d'un profil d'acquisition et l'écriture d'informations d'acquisition dans votre compte. Voici une liste complète des opérations requises pour les tâches DI:

    • video-cloud/video/create
    • video-cloud/video/read
    • video-cloud/video/update
    • video-cloud/ingest-profiles/profile/read
    • video-cloud/ingest-profiles/account/read
    • video-cloud/ingest-profiles/account/write
    • video-cloud/ingest-profiles/profile/write
    • video-cloud/upload-urls/read

Pour obtenir les informations d'identification du client, utilisez le Studio outils d'administration ou consultez l'un des documents suivants:

Les meilleures pratiques

Voir API Dynamic Ingest: Meilleures pratiques.

Emplacements source valides

Ingestion par traction

Dynamic Ingest peut extraire des fichiers vidéo sources à partir de: HTTP / HTTPS, S3 et FTP - avec ou sans authentification

Exemples:

  • http://example.com/path/to/input.avi
  • https://dl.dropboxusercontent.com/u/3641457/Bird_Titmouse.mp4
  • s3: //my-bucket/video.mp4
  • ftp: //server/file.mp4

Notes sur S3

Si vos vidéos se trouvent dans un compartiment S3 protégé, reportez-vous à la section Utilisation de Dynamic Ingest avec S3 Pour plus d'informations sur la configuration des autorisations de Dynamic Ingest pour accéder à vos fichiers.

Notes sur FTP

Si vos vidéos sont sur un serveur FTP protégé, utilisez la méthode standard pour transmettre le nom d'utilisateur et le mot de passe sur l'URL, comme suit:

    ftp://username:password@server/file.mp4

Téléchargement du fichier source

Vous pouvez également télécharger vos fichiers vers un emplacement temporaire sécurisé à partir duquel Dynamic Ingest peut les extraire. Pour plus de détails, voir Téléchargement du fichier source.

Caractères spéciaux

Si vous fournissez une URL pour Video Cloud pour récupérer vos vidéos et vous envoyez des informations d'identification dans le cadre de l'URL, vous devez pourcentage d'encodage certains caractères spéciaux réservés:

Caractères spéciaux
Personnage Pourcentage codé
] % 5B
[ % 5D
? % 3F
/ % 2F
< % 3C
~ % 7E
# % 23
` % 6D
! % 21
@ % 40
$ % 24
% % 25
^ % 5E
et % 26
* % 2A
( % 28
) % 29
+ % 2B
= % 3D
} % 7D
| % 7C
: % 3A
" % 22
; % 3B
' % 27
, % 2C
> % 3E
{ % 7B
espace % 20

Exemple :

    
        /* unencoded */
        ftp://user@example.com:pass!word@example.com/path/to/input.mp3
    
        /* encoded */
        ftp://user%40example.com:pass%21word@example.com/path/to/input.mp3
      

Noms de fichiers sources

Toutes les URL d'entrée doivent correctement être codées en url selon RFC 3986 lors de l'envoi à Brightcove. Cela signifie que tout caractères réservés trouvé dans le chemin de l'URL sont codés en pourcentage (les espaces étant codés %20), et tous les caractères réservés trouvés dans la requête de l'URL sont codés en pourcentage (les espaces étant codés + or %20 + étant codé pour %2B).

A pré-signé S3 (v2 contient Signature, Expire le et AWSAccessKeyId v4 contient X-Amz-Algorithme, X-Amz-Credential, X-Amz-Date, X-Amz-Expire, X-Amz-SignedHeaders X-Amz-Signature) ou GCS (contient Signature, Expire le GoogleAccessId) url devrait déjà être correctement encodé et peut être utilisé tel quel.

Exemples d'actifs

Brightcove Learning Services fournit quelques exemples d'actifs que vous pouvez utiliser pour expérimenter la prise en main de Dynamic Ingest. Ces ressources comprennent de courtes vidéos, des images et des légendes WebVTT en plusieurs langues:

Ingest Profile

Des profils d'acquisition spéciaux sont requis pour créer des vidéos Dynamic Delivery. Vous trouverez quelques profils d'ingestion standard dans votre compte lorsque Dynamic Delivery est activé, et ceux-ci sont recommandés.

Vous pouvez également ajouter un profil de livraison dynamique personnalisé à vos profils d'acquisition dans la section Admin de Studio - voir Création de profils d'acquisition pour une livraison dynamique pour en savoir plus.

Exemple de profil de livraison dynamique

Voici un exemple de profil de livraison dynamique que vous pouvez utiliser pour commencer. Tout ce que vous devez faire est de remplacer YOUR_ACCOUNT_ID avec votre identifiant de compte, puis vous pouvez copier et coller le profil dans l'éditeur de profil d'acquisition.

    {
      "name": "DynamicDeliveryIngestProfile",
      "description": "Dynamic Delivery ingest profile.",
      "account_id": "YOUR_ACCOUNT_ID",
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/audio96",
          "default/audio128",
          "default/video450",
          "default/video700",
          "default/video900",
          "default/video1200",
          "default/video1700",
          "default/video2000"
        ],
        "images": [
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          },
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          }
        ]
      }
    }
    

Pour plus de détails sur les profils de livraison dynamique standard et les rendus, voir Profils d'acquisition standard pour la livraison dynamique

Ingérer des vidéos

Deux demandes d'API sont requises pour l'intégration de vidéos:

  1. Appeler le CMS API créer un objet vidéo dans le Video Cloud système et obtenir son identifiant
  2. Appeler le Dynamic Ingest API pour fournir l'URL du fichier source vidéo et spécifier d'autres fichiers et paramètres pour l'acquisition au besoin

Un exemple de requête de base ressemblerait à ceci:

CMS API nécessaire

Méthode HTTP
POSTEZ
Demander une URL
https://cms.api.brightcove.com/v1/accounts/{account_id}/videos
Demander un corps
    {
    "name": "My First Dynamic Delivery Video"
    }
    
    

Les données de réponse incluront la vidéo id , qui est utilisé dans la prochaine requête.

Ingest requête d'API

Méthode HTTP
POSTEZ
Demander une URL
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
Demander un corps
    {
      "master": {
        "url": "http://host/master.mp4"
      },
      "profile": "DynamicDeliverIngestProfile",
      "callbacks": [
        "http://mydomain.com/di-callbacks.php"
      ]
    }
    

Remarques

  • Si vous n'incluez pas le profile champ, ce profil par défaut du compte sera utilisé. Nous vous recommandons d'utiliser le compte par défaut, sauf si vous devez utiliser des profils différents pour différents types de vidéos. Veillez à définir le compte par défaut sur le profil que vous souhaitez (le plus souvent) utiliser.
  • Le système d'implants dentaires callbacks Le champ est facultatif, mais nous vous recommandons vivement de l'utiliser comme le meilleur moyen de suivre la progression des travaux d'acquisition. Voir ci-dessous pour en savoir plus sur les notifications.

Affichage des rendus

Vous pouvez afficher les rendus de votre vidéo en accédant à la Module média dans Studio.

Pour afficher toutes les propriétés des rendus, vous pouvez utiliser le CMS API demande détaillée ci-dessous.

Pour récupérer des URL pour la lecture, vous pouvez utiliser Playback API demande détaillée ci-dessous.

Remplacer une vidéo

Pour remplacer une vidéo par une nouvelle version ou un nouvel ensemble de rendus, la Dynamic Ingest API appel est exactement le même que ce serait pour ingérer de nouvelles vidéos - la seule différence est que vous n'avez pas besoin de téléphoner au préalable CMS API pour créer l'objet vidéo dans le Video Cloud système et obtenir un identifiant pour cela. Si le fichier vidéo source situé à l'URL spécifiée est identique à celui ingéré à l'origine, vous obtiendrez simplement un nouvel ensemble de rendus. Si le fichier source est nouveau, vous allez remplacer la vidéo existante. Toutes les vidéos resteront lisibles avec les rendus existants jusqu'à la fin du retranscodage.

Voir le échantillon de travail ici.

Retranscrire une vidéo

Si vous avez choisi de archiver un maître lorsque vous avez ingéré la vidéo à travers le Dynamic Ingest API ou le module de téléchargement Studio, vous pouvez également retransformer la vidéo à partir du fichier principal. Là encore, l'URL de la demande d'acquisition sera le même, mais le corps de la demande aura les éléments suivants:

    // request
    POST /v1/accounts/{account_id}/videos/{video_id}/ingest-requests
    // request body
    {
      "master": { "use_archived_master": true },
      "profile": "multi-platform-extended-static"
    }
    
    

Image ingest

Au lieu de capturer des images d'affiches et de vignettes pendant le transcodage, vous pouvez inclure vos propres images avec la requête d'acquisition ou les ajouter ultérieurement dans une demande distincte.

Exemple de corps de requête

    {
      "profile": "multi-platform-extended-static",
      "poster": {
        "url": "http://bcls@solutions.brightcove.com/bcls/assets/images/great-blue-heron-poster.png",
        "width": 1280,
        "height": 720
      },
      "thumbnail": {
        "url": "http://bcls@solutions.brightcove.com/bcls/assets/images/great-blue-heron-thumbnail.png",
        "width": 160,
        "height": 90
      },
      "callbacks": [
        "http://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
      ]
    }
    

Notifications pour l'ingestion d'actifs d'image

Vous trouverez ci-dessous des exemples de notifications que vous obtenez spécifiquement pour les images ingérées.

    {
        "entity": "thumbnail",
        "entityType": "ASSET",
        "version": "1",
        "action": "CREATE",
        "jobId": "0c2767c1-19ea-479d-b371-a0f5f3d154f5",
        "videoId": "5209530177001",
        "accountId": "57838016001",
        "status": "SUCCESS"
      }
      {
        "entity": "poster",
        "entityType": "ASSET",
        "version": "1",
        "action": "CREATE",
        "jobId": "0c2767c1-19ea-479d-b371-a0f5f3d154f5",
        "videoId": "5209530177001",
        "accountId": "57838016001",
        "status": "SUCCESS"
    }
    
    

Légendes ingérées

Les légendes au format WebVTT peuvent être ajoutées à votre vidéo avec la demande d'intégration initiale ou dans une demande ultérieure.

Exemple de corps de requête

    {
      "text_tracks": [
        {
          "url": "http://solutions.brightcove.com/bcls/assets/vtt/sample.vtt",
          "srclang": "en",
          "kind": "captions",
          "label": "EN",
          "default": true
        },
        {
          "url": "http://solutions.brightcove.com/bcls/assets/vtt/sample-es.vtt",
          "srclang": "es",
          "kind": "captions",
          "label": "ES",
          "default": false
        }
      ],
      "callbacks": [
        "http://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
      ]
    }
    

Les pistes de texte Sidecar s'affichent dans les réponses CMS ou Playback, comme pour les vidéos non dynamiques:

    "text_tracks": [
        {
        "id": null,
        "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt?akamai_token=exp=1479236791~acl=/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt*~hmac=df5b4ba1ef2549a7572346dd36a761534ffafe4b8cfbdf92d89013ec2f95699c",
        "srclang": "en",
        "label": "EN",
        "kind": "captions",
        "mime_type": "text/webvtt",
        "asset_id": null,
        "sources": [
          {
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt?akamai_token=exp=1479236791~acl=/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt*~hmac=df5b4ba1ef2549a7572346dd36a761534ffafe4b8cfbdf92d89013ec2f95699c"
          }
        ],
        "in_band_metadata_track_dispatch_type": "",
        "default": false
      ]
    }
    

Les traces de texte apparaîtront également dans les manifestes HLS et DASH:

HLS

    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="Captions",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="es",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/1bd49b7b-df40-414f-bb05-8840624663e1/de8144f4-b7d7-46ca-848f-dd2f7fa453d7/rendition.m3u8?fastly_token=NTg0ZjA5MWZfMzU1N2VhY2Y2MDA3NzkzYWM0ZjU2ZWQwNWE2NTYzMmI4MzMzMmJkZWM5Y2JmNzQ1MjRjM2QxYjI0NTYzODA5Zg%3D%3D"
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="Captions",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/1bd49b7b-df40-414f-bb05-8840624663e1/6399fcf2-cd27-4d97-ad30-e443f13563bd/rendition.m3u8?fastly_token=NTg0ZjA5MWZfYWMxYjllNDlkYzVlOTJkZWQ3ODk2YjE3MGI5NDlhYTlkOGQ1YzI5ZmI4ZjRlOWMzMzU5YmM1YzZkNTA4MTFmNQ%3D%3D"
    
    

TABLEAU DE BORD

    <AdaptationSet mimeType="text/vtt" lang="en">
      <Representation bandwidth="256" id="2f4bb3fb-1a7d-4f4c-bf44-00ef0e611131">
      <BaseURL>https://bcbolt446c5271-a.akamaihd.net/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557/2f4bb3fb-1a7d-4f4c-bf44-00ef0e611131.vtt?akamai_token=exp=1484784452~acl=/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557*~hmac=ae568ea5294280968de0a2766afd82922ea9aa83fe23a81b3379a46b8ef13284</BaseURL>
      </Representation>
      </AdaptationSet>
      <AdaptationSet mimeType="text/vtt" lang="hi">
      <Representation bandwidth="256" id="f5875617-40f4-4991-bc5b-7152c6e2a93a">
      <BaseURL>https://bcbolt446c5271-a.akamaihd.net/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557/f5875617-40f4-4991-bc5b-7152c6e2a93a.vtt?akamai_token=exp=1484784452~acl=/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557*~hmac=ae568ea5294280968de0a2766afd82922ea9aa83fe23a81b3379a46b8ef13284</BaseURL>
      </Representation>
    </AdaptationSet>
    
    

Notifications pour les éléments de suivi de texte

Vous trouverez ci-dessous des exemples de notifications spécifiques à l'ingestion de pistes de texte.

    {
      "entity": "en-captions-EN",
      "entityType": "ASSET",
      "version": "1",
      "action": "CREATE",
      "jobId": "ed429284-77c9-4905-a700-4c8edb77be3e",
      "videoId": "5209530177001",
      "accountId": "57838016001",
      "status": "SUCCESS"
    }
    {
      "entity": "es-captions-ES",
      "entityType": "ASSET",
      "version": "1",
      "action": "CREATE",
      "jobId": "ed429284-77c9-4905-a700-4c8edb77be3e",
      "videoId": "5209530177001",
      "accountId": "57838016001",
      "status": "SUCCESS"
    }
    
    

Échantillon player avec des pistes de texte (anglais et espagnol)

Vidéo de livraison dynamique Player

Légendes de Sidecar dans une application iOS

Légendes de la livraison dynamique Sidecar
Légendes de la livraison dynamique Sidecar

Récupérer des rendus dynamiques

Pour récupérer des informations sur les rendus dynamiques d'une vidéo, envoyez une demande GET à:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/dynamic_renditions
    
    

Exemple de réponse

    [
      {
        "rendition_id": "default/audio128",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 506818,
        "created_at": "2016-11-14T15:05:56.209214859Z",
        "updated_at": "2016-11-14T15:05:56.209214859Z",
        "encoding_rate": 125,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/audio64",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 261129,
        "created_at": "2016-11-14T15:05:53.926747456Z",
        "updated_at": "2016-11-14T15:05:53.926747456Z",
        "encoding_rate": 62,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/audio96",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 384568,
        "created_at": "2016-11-14T15:05:59.023381448Z",
        "updated_at": "2016-11-14T15:05:59.023381448Z",
        "encoding_rate": 94,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/video1200",
        "frame_height": 540,
        "frame_width": 960,
        "media_type": "video",
        "size": 4761241,
        "created_at": "2016-11-14T15:06:10.410020728Z",
        "updated_at": "2016-11-14T15:06:10.410020728Z",
        "encoding_rate": 1206,
        "duration": 31465
      },
      {
        "rendition_id": "default/video1700",
        "frame_height": 540,
        "frame_width": 960,
        "media_type": "video",
        "size": 6712422,
        "created_at": "2016-11-14T15:06:15.593063021Z",
        "updated_at": "2016-11-14T15:06:15.593063021Z",
        "encoding_rate": 1703,
        "duration": 31465
      },
      {
        "rendition_id": "default/video2500",
        "frame_height": 720,
        "frame_width": 1280,
        "media_type": "video",
        "size": 9795721,
        "created_at": "2016-11-14T15:06:12.148783841Z",
        "updated_at": "2016-11-14T15:06:12.148783841Z",
        "encoding_rate": 2486,
        "duration": 31465
      },
      {
        "rendition_id": "default/video4000",
        "frame_height": 1080,
        "frame_width": 1920,
        "media_type": "video",
        "size": 15718943,
        "created_at": "2016-11-14T15:06:15.463012005Z",
        "updated_at": "2016-11-14T15:06:15.463012005Z",
        "encoding_rate": 3992,
        "duration": 31465
      },
      {
        "rendition_id": "default/video450",
        "frame_height": 270,
        "frame_width": 480,
        "media_type": "video",
        "size": 1784858,
        "created_at": "2016-11-14T15:06:20.719400854Z",
        "updated_at": "2016-11-14T15:06:20.719400854Z",
        "encoding_rate": 451,
        "duration": 31465
      },
      {
        "rendition_id": "default/video700",
        "frame_height": 360,
        "frame_width": 640,
        "media_type": "video",
        "size": 2746520,
        "created_at": "2016-11-14T15:06:10.918331816Z",
        "updated_at": "2016-11-14T15:06:10.918331816Z",
        "encoding_rate": 695,
        "duration": 31465
      },
      {
        "rendition_id": "default/video900",
        "frame_height": 360,
        "frame_width": 640,
        "media_type": "video",
        "size": 3561912,
        "created_at": "2016-11-14T15:06:17.295871425Z",
        "updated_at": "2016-11-14T15:06:17.295871425Z",
        "encoding_rate": 902,
        "duration": 31465
      }
    ]
    

Récupérer les URL pour la lecture

Pour récupérer des informations sur les rendus dynamiques d'une vidéo, envoyez une demande GET à:

    https://edge.api.brightcove.com/playback/v1/accounts/account_id/videos/video_id
    
    

Exemple de réponse

    {
      "description": null,
      "poster_sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/1280x720/24s816ms/match/image.jpg"
      }
      ],
      "tags": [
        "dd-static"
      ],
      "cue_points": [],
      "custom_fields": {},
      "account_id": "57838016001",
      "sources": [
        {
          "ext_x_version": "4",
          "type": "application/x-mpegURL",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/10s/master.m3u8?fastly_token=NTk1YmE0ZmZfOGU5Njg0NGU1OWQ3NjI3ZDhmY2FhZTVmNGE0YzI1MWM1NjMyNTZkNzMzZmExMzRkN2ZmYzU0YWU5NzUyZTM2YQ%3D%3D"
        },
        {
          "ext_x_version": "5",
          "type": "application/x-mpegURL",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/10s/master.m3u8?fastly_token=NTk1YmE0ZmZfOTBkOThhYmQ5MWM0MmQwYmQwYTM4MGEzMjAzZTgyNDVlMDYzYzNhMzQ1ZWQ3MTMyMzVmM2Q1YjM2N2VlMjM0Yg%3D%3D"
        },
        {
          "type": "application/dash+xml",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/2s/manifest.mpd?fastly_token=NTk1YmE0ZmZfYzQyOWJiOTEzMGJmNGIyMjM1NmMwMzZmNGZkZjlkYjEzMzNmNzFlYmQxODg0Y2YzZDk3ZTljNzVhODg1YzRjMQ%3D%3D",
          "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
        },
        {
          "avg_bitrate": 2129000,
          "width": 1280,
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/high.mp4?akamai_token=exp=1499178239~acl=/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/high.mp4*~hmac=5880698556297bbe2f2f43ac8904c659c61fb9510db1a9bb106037eaea393339",
          "size": 13242064,
          "height": 720,
          "duration": 49690,
          "container": "MP4",
          "codec": "H264"
        },
        {
          "avg_bitrate": 574000,
          "width": 480,
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/mid.mp4?akamai_token=exp=1499178239~acl=/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/mid.mp4*~hmac=75e51439623a41b93d2a234c25683e76d43656f97a9dfb8efe61a5342d5ff2da",
          "size": 3586929,
          "height": 270,
          "duration": 49690,
          "container": "MP4",
          "codec": "H264"
        }
      ],
      "name": "Canada_Geese_Family",
      "reference_id": null,
      "long_description": null,
      "duration": 49633,
      "economics": "AD_SUPPORTED",
      "published_at": "2017-06-05T11:20:52.412Z",
      "text_tracks": [],
      "updated_at": "2017-06-05T12:06:55.121Z",
      "thumbnail": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/160x90/24s816ms/match/image.jpg",
      "poster": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/1280x720/24s816ms/match/image.jpg",
      "offline_enabled": false,
      "link": null,
      "id": "5459968909001",
      "ad_keys": null,
      "thumbnail_sources": [
        {
          "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/160x90/24s816ms/match/image.jpg"
        }
      ],
      "created_at": "2017-06-05T11:20:52.412Z"
    }
    
    

DRM

DRM est pris en charge, mais fonctionne différemment de l'acquisition vidéo ordinaire. Tu fais n'est pas besoin de spécifier l'emballage dans le profil d'ingestion. Au lieu de cela, l'empaquetage est automatique en fonction des paramètres DRM de votre compte. Contacter l'assistance Brightcove pour définir les valeurs par défaut pour l'emballage DRM de vos vidéos.

Pour plus de détails, voir L'ingestion de contenu avec DRM.

Rendus filigranés

Rendus filigranés sont pris en charge. Si vous souhaitez ajouter des filigranes à certaines ou à toutes vos vidéos, veuillez contacter l'assistance Brightcove.

Notez que des rendus filigranés peuvent être ajoutés pour les profils de distribution dynamique statiques, mais n'est pas pour les profils d’encodage conscient du contexte (CAE).

Acquisition du statut

Vous pouvez recevoir des informations sur votre traitement d'acquisition Dynamic Delivery en vous abonnant à des rappels et / ou en interrogeant une API Status pour connaître l'état du travail.

Rappels

Dans votre requête d'acquisition, vous pouvez spécifier une ou plusieurs URL de rappel pour recevoir les notifications des résultats du processus d'acquisition. Les URL que vous spécifiez doivent être réservées aux applications qui acceptent les requêtes POST. Les notifications seront envoyées au format JSON.

Les détails de la réception et de l'interprétation des notifications peuvent être trouvés dans Notifications

API de statut

Vous pouvez également obtenir l'état actuel des travaux d'acquisition à l'aide de l'API Status. Les messages d'état sont disponibles uniquement pour les travaux d'intégration soumis au cours des derniers jours 7.

Endpoints

Tous les messages d'état pour une vidéo
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs
    
    
Exemple
    https://cms.api.brightcove.com/v1/accounts/57838016001/videos/5128433746001/ingest_jobs
    
    
Message d'état pour un travail particulier
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs/:job_id
    
    
Exemple

Réponses

Voici un exemple de réponse pour un travail en cours de traitement.

    {
    "id": "7a196557-56ba-4218-ada5-e107ed554555",
    "state": "processing",
    "account_id": "57838016001",
    "video_id": "5128433746001",
    "error_code": null,
    "error_message": null,
    "updated_at": "2016-09-16T16:51:46.313Z",
    "started_at": "2016-09-16T16:51:22.258Z"
    }
    
    

Les éléments les plus importants ici sont:

  • state : le statut de l'emploi ( processing | publishing | finished | failed - Lorsque ce travail est terminé et que la vidéo est prête à être state sera finished )
  • error_code et error_message : pour un travail réussi, ceux-ci seront null ; pour les travaux échoués, vous obtiendrez un code d'erreur et un message explicatif

Voici un exemple de message d'état pour un travail échoué à comparer:

    {
    "id": "bc9dfb58-d502-43d5-97e4-41f3dcd44265",
    "state": "failed",
    "account_id": "57838016001",
    "video_id": "5128710227001",
    "error_code": "NoMediaError",
    "error_message": "Audio-only output was requested on a file that only contains video.",
    "updated_at": "2016-09-16T20:30:58.016Z",
    "started_at": "2016-09-16T20:29:14.139Z"
    }
    
    

Encodage contextuel

Context Aware Encoding (CAE) est une technologie développée par Brightcove pour analyser la vidéo source pendant le transcodage et générer un ensemble optimal de rendus et de débits en fonction de la complexité de la vidéo et un ensemble de paramètres de délimitation fournis (nombre minimum de rendus, débit maximal , etc.).

Pour apprendre à utiliser les profils CAE, voir Encodage contextuel.

Plusieurs pistes audio

Les comptes configurés pour la diffusion dynamique peuvent être activés pour autoriser plusieurs pistes audio pour les vidéos.

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

Pour plus de détails sur l'utilisation de cette fonctionnalité, voir Plusieurs pistes audio.

Exemple de code

Learning Services fournit plusieurs exemples d’applications qui fournissent une interface Web et envoient Dynamic Ingest API requêtes via un proxy PHP. Voir les exemples d'applications.

De plus, les référentiels GitHub suivants contiennent un exemple de code en Java, Python et C #. Notez que cet exemple de code est pas pris en charge par Brightcove:

Limites

  • Pour les types de vidéo segmentés (HLS et DASH), certains players ne gèrent pas le cas où les longueurs de flux audio et vidéo diffèrent de plus de la durée d'un segment. Si vous rencontrez ce problème, essayez d'utiliser une longueur de segment plus courte.

Dernière mise à jour de la page le 12 juin 2020