Ü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.
- 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
-
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 }] }'
-
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
- 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.
-
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:
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:
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.
- 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" }'
-
Ersetzen:
mit Ihrem Live-API-Schlüssel
mit Ihrem Kundengeheimnis
mit Ihrer Kundennummer
- Kopieren Sie den bearbeiteten Befehl, fügen Sie ihn in Terminal oder Ihre Befehlszeilen-App ein und führen Sie ihn aus.
- 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.
- 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": "" }] }'
-
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
und17: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
- Kopieren Sie den bearbeiteten Code, fügen Sie ihn in Terminal oder Ihre Befehlszeilen-App ein und führen Sie ihn aus.
- 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: