Live-API: Erstellen eines Frame-genauen Clips

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Live-API einen Live-Job erstellen und anschließend einen rahmengenauen Clip daraus erstellen.

Überblick

In diesem Tutorial wird auf API-Ebene erklärt, wie Sie einen Live-Streaming-Job in Brightcove Live erstellen und daraus dann einen bildgenauen Clip erstellen.

Beachten Sie, dass für bildgenaues Clipping erforderlich ist, dass Ihr Encoder SMPTE-Timecodes sendet.

Dieses Tutorial wird verwendet, curl um die API-Anforderungen zu stellen, aber Sie können sie einfach in Insomnia Postman oder stattdessen in anderen REST-Clients stellen.

Erstellen Sie einen Live-Job

Zuerst erstellen wir einen Live-Job. Sie benötigen eine API-KEY für die Live-API. Wenn Sie dies nicht tun und an einem Zugang interessiert sind, wenden Sie sich bitte an Ihren Customer Success Manager.

  1. Wir gehen davon aus, dass Sie bereits ein Brightcove-Konto haben und Sie haben Ihren API-KEY, nennen wir es so bcov-live-api-key
  2. Kopieren Sie Folgendes und fügen Sie es ein curl Befehl in einen Texteditor:

      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. Ersetzen:

    • mit der Ihrem Encoder am nächsten gelegenen verfügbaren Region, sehen Sie sich die nächstgelegenen verfügbaren Regionen zu Ihrem Encoder an. Zum Beispiel: us-west-2
    • mit Ihrem Brightcove Live-API-Schlüssel. Zum Beispiel: abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
  4. Nachdem Sie diese Änderungen vorgenommen haben, kopieren Sie den Code und fügen Sie ihn in das Terminal oder eine beliebige Befehlszeilen-App ein, die Sie verwenden, und führen Sie ihn aus.
  5. Die Antwort sollte ungefähr so lauten:

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

Mit diesen Jobs werden 5 Wiedergabeversionen erstellt basierend An Apple-Empfehlungen.

Konfigurieren Sie Ihren Encoder

Die hier gezeigten Schritte gehen davon aus, dass ein Elementare Live-Box Encoder, der beim Testen der Schritte für dieses Tutorial verwendet wurde. Wenn Sie einen anderen Encoder haben, sollten die Einstellungen ähnlich sein.

Die wichtigsten Einstellungen für diesen Fall sind:

  • Konfigurieren Sie die Timecode-Quelle als "Systemuhr"
  • Setzen Sie "OnFi-Timecode-Frequenz" auf 1
  • Überprüfen Sie "Timecode-Einfügung" im Video
  • Wärmstens empfohlen: Bildrate = Quelle folgen

Dies ist die Konfiguration, die wir für dieses Experiment verwendet haben:

elemental-live-job-konfiguration
Elementare Live-Konfiguration

Wiedergabe testen

Das kannst du benutzen VideoJS HLS-Demoseite Um die Wiedergabe zu testen, fügen Sie einfach den Wert ein playback_url in der Antwort des Erstellungsjobs zurückgegeben:

videojs-hls-Wiedergabe
VideoJS HLS-Wiedergabe-Demoseite

Erstellen Sie einen bildgenauen Clip

In diesem Tutorial gehen wir davon aus, dass Sie den Clip an Ihre Video Cloud-Bibliothek senden. Wenn Sie den Clip an einen S3-Bucket oder an einen anderen Ort senden, ist der Vorgang derselbe – es gibt nur einige geringfügige Unterschiede im Anfragetext für die API-Anfragen.

Referenzen

Wenn Sie in Ihrem Live-Konto keine Anmeldeinformationen für Video Cloud erstellt haben, können Sie dazu die hier beschriebenen Schritte ausführen. Dies ist ein einmaliger Vorgang.

Wenn Sie noch keine Client-Anmeldeinformationen für die dynamische Aufnahme von Videos in Video Cloud haben, müssen Sie diese erstellen. Sehen Anmeldeinformationen für die API-Authentifizierung verwalten Anweisungen dazu in Studio.

  1. Kopieren Sie den folgenden curl-Befehl in einen Texteditor:
    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. Ersetzen:

    • mit Ihrem Live-API-Schlüssel
    • mit Ihrem Kundengeheimnis
    • mit Ihrer Kundennummer
  3. Kopieren Sie den bearbeiteten Befehl, fügen Sie ihn in Terminal oder Ihre Befehlszeilen-App ein und führen Sie ihn aus.
  4. Die Antwort sollte ungefähr so aussehen:
      {
        "credential_id": "1e0180330b724dfbbcaf6b28b6c5d517",
        "user_id": "c2691d4d039040be96c190a949d754a7",
        "credential_label": "Video_Cloud_Uploads"
      }

Erstellen Sie den Clip

Sobald Sie Ihre Video Cloud-Anmeldeinformationen haben, können Sie einen Clip erstellen.

  1. Kopieren Sie die folgende Curl-Anfrage und fügen Sie sie in einen Texteditor ein:
      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. Ersetzen:

    • mit Ihrem Brightcove Live-API-Schlüssel. Zum Beispiel: abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • mit der Job-ID in der Antwort auf Ihre Anfrage zum Erstellen des Live-Jobs. In unserem Beispiel wäre dieser Wert 3b6871bf2f344acaa6b397d09b476018 - Ihre wird anders sein.
    • und sollten Werte sein, die in Ihrem Livestream Sinn machen (vorhanden sind). In unserem Beispiel haben wir verwendet: 17:33:11:12 und 17:34:00:00
    • mit dem Etikett für Ihre Video Cloud-Anmeldeinformationen. Wenn Sie sie nicht bereits hatten und sie mit den obigen Schritten erstellt haben, wäre dies Video_Cloud_Uploads
  3. Kopieren Sie den bearbeiteten Code, fügen Sie ihn in Terminal oder Ihre Befehlszeilen-App ein und führen Sie ihn aus.
  4. Die Antwort sollte ungefähr so aussehen:
      {
          "vod_jobs": [
              {
                  "jvod_id": "0b14a4ba326d4dd08f15053ca2a403b7",
                  "label": "Trim by SMPTE Timecodes"
              }
          ],
          "live_job_id": "3b6871bf2f344acaa6b397d09b476018"
      }

Wir haben die Genauigkeit des Experiments getestet, den Clip heruntergeladen und Adobe Premiere verwendet, um das erste und letzte Bild zu überprüfen. Da der Timecode überlagert ist, reicht eine einfache visuelle Überprüfung aus, um die Genauigkeit an Eingabe- und Ausgabepunkten zu bestätigen:

Clip-Genauigkeit
Visueller Clip-Genauigkeitstest - in
Clip-Genauigkeitsausschnitt
Visueller Clip-Genauigkeitstest - out