API en direct : Création d'un clip précis

Ce tutoriel vous guide cependant en utilisant l'API Live pour créer un travail en direct, puis créer un clip précis à partir de celui-ci.

Aperçu

Ce didacticiel explique au niveau de l'API comment créer une tâche de streaming en direct dans Brightcove Live, puis créer un clip précis à partir de celui-ci.

Notez que l'écrêtage à l'image près nécessite que votre encodeur envoie des codes temporels SMPTE.

Ce tutoriel utilisera curl pour faire les requêtes API, mais vous pouvez facilement les faire dans Insomnia , Postman ou d'autres clients REST à la place.

Créer un emploi en direct

Tout d'abord, nous allons créer un emploi réel. Vous aurez besoin d'un API-KEY pour l'API en direct. Si ce n'est pas le cas et que vous souhaitez obtenir un accès, veuillez contacter votre Customer Success Manager.

  1. Nous supposons que vous avez déjà un compte Brightcove et que vous avez votre API-KEY, appelons-le bcov-live-api-key
  2. Copiez et collez la curl commande suivante dans un éditeur de texte :

      curl -X POST \
        https://api.bcovlive.io/v1/jobs \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_stream": true,
          "region": "",
          "outputs": [{
            "label": "hls360p",
            "live_stream": true,
            "height": 360,
            "video_bitrate": 365,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls432p",
            "live_stream": true,
            "height": 432,
            "video_bitrate": 730,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls540p",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 2000,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls720p3M",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 2000,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls720p4.5M",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 4500,
            "segment_seconds": 6,
            "keyframe_interval": 60
          }]
        }'
      
  3. Remplacer :

    • avec la région disponible la plus proche de votre encodeur, voir régions disponibles les plus proches à votre encodeur. Par exemple : us-west-2
    • avec votre clé API live Brightcove. Par exemple : abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
  4. Après avoir apporté ces modifications, copiez et collez le code dans Terminal ou dans l'application de ligne de commande que vous utilisez et exécutez-le.
  5. La réponse devrait ressembler à ceci :

      {
          "id": "3b6871bf2f344acaa6b397d09b476018",
          "outputs": [... removed for simplicity ...],
          "stream_url": "rtmp://ep1-usw2.bcovlive.io:1935/3b6871bf2f344acaa6b397d09b476018",
          "stream_name": "alive",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist_dvr.m3u8"
      }

Ce travail créera 5 rendus basé au Recommandations Apple.

Configurer votre encodeur

Les étapes indiquées ici supposeront une Live box élémentaire encodeur, qui a été utilisé pour tester les étapes de ce didacticiel. Si vous avez un autre encodeur, les paramètres doivent être similaires.

Les paramètres les plus importants pour ce cas sont les suivants :

  • Configurer la source du timecode en tant qu'"horloge système"
  • Réglez "Fréquence du code temporel OnFi" sur 1
  • Vérifiez "l'insertion du code temporel" dans la vidéo
  • Fortement recommandé : Framerate = suivre la source

Voici la configuration que nous avons utilisée pour cette expérience :

élémental-live-job-config
Configuration élémentaire en direct

Tester la lecture

Vous pouvez utiliser ceci Page de démonstration VideoJS HLS pour tester la lecture, collez simplement la valeur playback_url renvoyé dans la réponse de la tâche de création :

videojs-hls-lecture
Page de démonstration de lecture VideoJS HLS

Créer un clip à l'image près

Dans ce didacticiel, nous supposerons que vous envoyez le clip à votre bibliothèque Video Cloud. Si vous envoyez le clip vers un compartiment S3 ou un autre emplacement, le processus est le même : il y a quelques différences mineures dans le corps de la requête pour les demandes d'API.

Crédits

Si vous n'avez pas créé d'identifiants pour Video Cloud dans votre compte Live, vous pouvez suivre les étapes ici pour le faire. Il s'agit d'une opération ponctuelle.

Si vous n'avez pas encore d'informations d'identification client pour l'ingestion dynamique de vidéos sur Video Cloud, vous devrez les créer. Voir Gestion des informations d'authentification API pour obtenir des instructions sur la façon de procéder dans Studio.

  1. Copiez la commande curl ci-dessous dans un éditeur de texte :
    curl -X POST \ https://api.bcovlive.io/v1/credentials \ -H 'Content-Type: application/json' \ -H 'x-api-key: ' \ -d '{ "credential_default_for_type": true, "credential_label": "Video_Cloud_Uploads", "credential_private": "", "credential_public": "", "credential_type": "videocloud" }' 
  2. Remplacer :

    • avec votre clé API Live
    • avec votre secret client
    • avec votre identifiant client
  3. Copiez et collez la commande modifiée dans Terminal ou votre application de ligne de commande, et exécutez-la.
  4. La réponse devrait ressembler à ceci :
      {
        "credential_id": "1e0180330b724dfbbcaf6b28b6c5d517",
        "user_id": "c2691d4d039040be96c190a949d754a7",
        "credential_label": "Video_Cloud_Uploads"
      }

Créer le clip

Une fois que vous avez vos identifiants Video Cloud, vous êtes prêt à créer un clip.

  1. Copiez la requête curl ci-dessous et collez-la dans un éditeur de texte :
      curl -X POST \
        https://api.bcovlive.io/v1/vods \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_job_id":"",
          "outputs":[{
              "label": "Trim by SMPTE TC 17:33:11:12 to 17:34:00:00",
            "stream_start_timecode": "",
            "stream_end_timecode": "",
              "videocloud":{"ingest":{"capture-images":true},"video":{"name":"test-frame-accurate-clip"}},
              "credentials": ""
          }]
      }'
  2. Remplacer :

    • avec votre clé API live Brightcove. Par exemple : abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • avec l'identifiant de la tâche dans la réponse à votre demande de création de la tâche en direct. Dans notre exemple, cette valeur serait la 3b6871bf2f344acaa6b397d09b476018suivante : la vôtre sera différente.
    • et devraient être des valeurs qui ont du sens (sont présentes) dans votre flux en direct. Dans notre exemple, nous avons utilisé : 17:33:11:12 et 17:34:00:00
    • avec l'étiquette de vos identifiants Video Cloud. Si vous ne les aviez pas déjà et que vous les avez créés en suivant les étapes ci-dessus, ce serait Video_Cloud_Uploads
  3. Copiez et collez le code modifié dans Terminal ou votre application de ligne de commande, et exécutez-le.
  4. La réponse devrait ressembler à ceci :
      {
          "vod_jobs": [
              {
                  "jvod_id": "0b14a4ba326d4dd08f15053ca2a403b7",
                  "label": "Trim by SMPTE Timecodes"
              }
          ],
          "live_job_id": "3b6871bf2f344acaa6b397d09b476018"
      }

Nous avons testé la précision de l'expérience, téléchargé le clip et utilisé Adobe Premiere pour vérifier la première et la dernière image. Comme le timecode est superposé, une simple vérification visuelle suffit à confirmer la précision aux points d'entrée et de sortie :

précision du clipsage
Test de précision du clip visuel - en
précision de l'écrête-sortie
Test de précision du clip visuel - sortie