Überblick: Brightcove Live-API
Einleitung
Das Live API ist eine REST-basierte API, mit der Sie Live-Streaming-Ereignisse erstellen und verwalten können. Zu den optionalen Funktionen gehören:
- Serverseitige Anzeigeneinfügung ( SSAI )
- AES-128 Verschlüsselung
- Erstellen Sie Video-on-Demand-Assets aus Clips aus dem Livestream
- DVR Fähigkeit
- Mehrere CDNs
Siehe auch die API-Referenz.
Basis-URL
Die Basis-URL für die Live API ist:
https://api.bcovlive.io
Header
Alle Anfragen werden mit einem API-Schlüssel authentifiziert, der Ihnen bei der Einrichtung Ihres Kontos zur Verfügung gestellt wird. Der Schlüssel wird in an . übergeben X-API-KEY
Header. EIN Content-Type
Kopfzeile ist auch erforderlich:
X-API-KEY : YOUR_APIKey
Content-Type: application/json
Unterstützte AWS-Regionen
Die folgenden AWS-Regionen werden unterstützt:
Standort | AWS-Name | SSAI-Unterstützung |
---|---|---|
Oregon | us-west-2 | |
Virginia | us-east-1 | |
Tokio | ap-northeast-1 | |
Singapur | ap-southeast-1 | |
Sydney | ap-southeast-2 | |
Mumbai | ap-south-1 | |
Frankfurt | eu-central-1 | |
Irland | eu-west-1 |
Beachten Sie, dass SEP-Jobs durch das Konto begrenzt sind, wobei das Standardlimit 3 beträgt, mit Ausnahme der us-west-2 dass seine Begrenzung bis zu 10 beträgt. Alle Einschränkungen werden nach Konto und nicht nach Region festgelegt.
Unterstützte CDNs
Die folgenden CDNs werden für das Live-Streaming unterstützt:
- Akamai
- Cloudfront
Andere dateibasierte CDNs sollten funktionieren, wurden aber nicht getestet und werden nicht aktiv unterstützt.
Kanäle und Veranstaltungszeiten
Es gibt zwei Kaufoptionen für Live:
- Event-Stunden Streaming-Zeit kaufen
- Streaming-Kanäle kaufen
Sie können auch sowohl Streaming-Stunden für Events als auch Kanäle erwerben. Weitere Informationen zu den Angeboten erhalten Sie von Ihrem Account Manager.
Token-Authentifizierung
Brightcove bietet die Möglichkeit, den Wiedergabe-URLs von Live-Videostreams eine Token-Authentifizierung hinzuzufügen. Wenn Sie die Token-Authentifizierung hinzufügen möchten, Brightcove-Support kontaktieren. Es kann bis zu drei Tage dauern, bis die Token-Authentifizierung eingerichtet ist.
Die TTL (Time-to-Live) für die Token kann auf einen beliebigen Wert von einer Stunde bis 365 Tage eingestellt werden. Wie lange Sie die TTL festlegen, hängt davon ab, welche Arten von Livestreams Sie bereitstellen. Beachten Sie jedoch, dass die TTL eine kontoweite Einstellung ist und für alle Livestreams gilt.
DVR Fähigkeit
Brightcove Live-Streams haben DVR Fähigkeit. Um diese Funktion zu verwenden, müssen Sie:
- Verwenden Sie die
playback_url_dvr
URL für die Wiedergabe - Verwenden Sie einen Player, der hat DVR Fähigkeit
Die DVR-Fähigkeit ist auf 86.400 Sekunden begrenzt.
Das DVR Der Stream bleibt 7 Tage nach Abschluss des Live-Streams verfügbar.
Endpunkte und Operationen
Die Hauptoperationen für die Live API erstellen und verwalten Live-Streams und generieren VOD-Clips aus Live-Streams. Diese Operationen werden durch Anfragen an folgende Endpunkte ausgeführt, die im Rest des Dokuments ausführlicher erläutert werden.
Stellen erstellen und verwalten
- Erstellen Sie einen Live-Job
- Listen Sie einen Live-Job auf
- Live-Jobdetails abrufen
- Manuelles Einfügen von Anzeigen-Cue-Points
- Stoppen Sie einen Live-Job
Clips erstellen
Verwaltung von SSAI
Stellen erstellen und verwalten
Mit diesen Operationen können Sie einen Live-Job erstellen, die Details dazu abrufen und ihn stoppen. Es gibt auch einen Endpunkt, um einen sofortigen Cue-Point für eine Werbeunterbrechung zu erstellen.
Erstellen Sie einen Live-Job
POST https://api.bcovlive.io/v1/jobs
Dieser Endpunkt wird verwendet, um Livestreams über a . zu erstellen POST
Anfrage. Neben der Angabe von Eigenschaften des Livestreams selbst kann die Anfrage auch VOD-Clips angeben, die aus dem Livestream generiert werden sollen (dies kann auch später über die Endpunkt). Einzelheiten zu den Feldern, die in den Anforderungstext aufgenommen werden können, finden Sie im API-Referenz.
Eingabeprotokoll
Brightcove Live unterstützt mehrere Eingabeprotokolle. Verwenden Sie die protocol
Feld im Anforderungstext, wenn Sie den Job erstellen, um den zu verwendenden Job anzugeben. Unterstützte Werte sind:
rtmp
(der Standardwert)rtp
rtp-fec
srt
Das RTMP-Protokoll dient zur Lieferung eines Streams im FLV-Format. Die anderen Protokolle dienen der Bereitstellung von MPEG2-TS.
Wenn du benutzt rtp
, rtp-fec
oder srt
, müssen Sie auch angeben a cidr_whitelist
(sehen Classless Inter-Domain Routing).
Wenn du benutzt rtmp
, können Sie ein . angeben ip_whitelist
stattdessen für die Eingabe, dies ist jedoch nicht erforderlich.
Beispiel-Anfragetext für RTP+FEC-Job:
{
"live_stream":true,
"region":"us-west-2",
"reconnect_time":300,
"outputs":[
{
"label": "hls720p",
"live_stream": true,
"height": 720,
"video_bitrate": 800,
"segment_seconds": 6,
"keyframe_interval": 90
}
],
"protocol": "rtp-fec",
"cidr_whitelist": ["127.0.0.1/32"]
}
Das Live API Schnellstart führt Sie durch das Erstellen eines Live-Stream-Jobs und das Einrichten eines Brightcove-Players zum Abspielen.
Live-Jobs auflisten
GET https://api.bcovlive.io/v1/jobs
Dieser Endpunkt wird verwendet, um Ihre Livestreams über a . aufzulisten GET
Anfrage. Der Endpunkt unterstützt Paginierung, Sortierung und Suchfilterung. Einzelheiten zu den Feldern, die in den Anforderungstext aufgenommen werden können, finden Sie im API-Referenz und einige zusätzliche Informationen finden Sie in Eine Liste von Live- oder VOD-Jobs abrufen.
Live-Jobdetails abrufen
GET https://api.bcovlive.io/v1/jobs/:jobId
Mit diesem Endpunkt können Sie detaillierte Informationen zu einem Livestream abrufen, die auch beim ursprünglichen Erstellen des Jobs zurückgegeben werden. Siehe die API-Referenz für Details zu den Antwortfeldern.
Manuelles Einfügen von Anzeigen-Cue-Points
POST https://api.bcovlive.io/v1/jobs/:jobId/cuepoint
Normalerweise sendet Ihr Encoder Cue-Points für Werbeunterbrechungen, Sie können jedoch auch eine sofortige Werbeunterbrechung erstellen, indem Sie eine Anfrage an diesen Endpunkt senden. Siehe die API-Referenz für Details.
Beachten Sie, dass a timecode
in der Form DD:HH:MM:SS
ist für den Cue-Punkt erforderlich.
Stoppen Sie einen Live-Job
PUT https://api.bcovlive.io/v1/jobs/:jobId/cancel
Verwenden Sie diesen Endpunkt, um einen Livestream sofort zu stoppen. Nach dem Abbruch kann ein Livestream nicht mehr neu gestartet werden. Siehe die API-Referenz für Details.
Clips erstellen
Sie können Video-on-Demand-Clips aus einem Livestream erstellen und in einem Video Cloud-Konto speichern oder an einen S3-Bucket oder eine FTP-Adresse senden. Sie können die Clips beim Erstellen des Livestreams definieren oder sie später mithilfe des unten beschriebenen Endpunkts erstellen. Siehe auch die Clips erstellen Handbuch.
VOD-Clip erstellen
POST https://api.bcovlive.io/v1/vods
Die Start- und Endpunkte der Clips können in Form von Offsets vom Anfang des Streams oder UNIX-Zeitstempeln definiert werden. Details zu den Anfragetextfeldern finden Sie im API-Referenz.
Erhalten Sie eine Liste von VOD (Clip) Jobs
Eine Liste Ihrer VOD-Jobs für Clips finden Sie unter Eine Liste von Live- oder VOD-Jobs abrufen und der API-Referenz.
Verwaltung SSAI
Verwenden der serverseitigen Anzeigeneinfügung ( SSAI können Sie beliebig viele Werbeunterbrechungen in Ihren Live-Stream einfügen. Sie können auch Slate-Assets (VOD-Clips) aufnehmen, um ungenutzte Werbezeit mit einer Nachricht über die Rückkehr zu füllen oder was auch immer Sie möchten.
Weitere Details zum Einrichten SSAI kann gefunden werden in Serverseitiges Einfügen von Anzeigen mithilfe der Brightcove Live API und der API-Referenz.
Anzeigenkonfigurationen für das Konto abrufen
GET https://api.bcovlive.io/v1/ssai/applications/:account_id
Über diesen Endpunkt können Sie alle Anzeigenkonfigurationen abrufen, die für ein Konto eingerichtet wurden. Details zu den Antwortfeldern finden Sie im API-Referenz.
Anzeigenkonfiguration erstellen
POST https://api.bcovlive.io/v1/ssai/application
Erstellen Sie eine Anzeigenkonfiguration, die definiert, wie Anzeigen abgerufen werden SSAI. Details zu den Anfragetextfeldern finden Sie im API-Referenz.
Anzeigenkonfiguration abrufen
GET https://api.bcovlive.io/v1/ssai/application/:application_id
Verwenden Sie diesen Endpunkt, um die Details einer von Ihnen erstellten Anzeigenkonfiguration abzurufen. Details zu den Antwortfeldern finden Sie im API-Referenz.
Anzeigenkonfiguration aktualisieren
PUT https://api.bcovlive.io/v1/ssai/application/account/:application_id
Aktualisieren Sie die Details einer Anzeigenkonfiguration. Details zu den Anfragetextfeldern finden Sie im API-Referenz.
Slate Media Source Assets abrufen
GET https://api.bcovlive.io/v1/ssai/slates/:ACCOUNT_ID
Rufen Sie die Slate-Media-Assets ab, die für ein Konto definiert wurden. Slate-Media-Assets werden verwendet, um Werbepausen zu füllen, die nicht durch Anzeigen gefüllt werden. Details zu den Antwortfeldern finden Sie im API-Referenz.
Ingest Slate Media Source Asset
POST https://api.bcovlive.io/v1/ssai/slates
Fügen Sie ein Media-Asset für Slates hinzu, um die Zeit der nicht ausgefüllten Werbeunterbrechungen zu füllen. Details zu den Anfragetextfeldern finden Sie im API-Referenz.
Slate-Medienquellen-Asset löschen
DELETE https://api.bcovlive.io/v1/ssai/slates/:SLATE_MSA_ID
Löscht ein Slate-Media-Asset.
Statische Einstiegspunkte
Die Funktion Static Entry Points (SEP) ermöglicht einen lang andauernden Live-Job, der aktiviert und deaktiviert werden kann, während die Einstiegspunkt-URLs und Wiedergabe-URLs statisch und wiederverwendbar bleiben. Mit dieser Funktion können Kunden ihren Encoder in ihren Einrichtungen oder im Außendienst konfigurieren und ihre eigene Planungslogik für Live-Kanäle oder -Programme erstellen. Sehen Statische Einstiegspunkte für Details.
Bildunterschriften
Wenn Untertitel im h264-Eingangssignal enthalten sind (korrekt im user_data-Paket signalisiert), werden diese an die h264-Ausgänge durchgereicht.
Wenn Sie einen Broadcast-Elementar-Live-Encoder verwenden, können Sie Beschriftungen von SDI (EIA-608/CEA-608) oder anderen Quellen (SCTE-20, SCC, Teletext, DVB-Sub, Hilfs-, ARIB, TTML, SCTE-27, STL, SRT, SMI) abrufen und sie in den h264-Stream abrufen, den Sie uns senden. Andere Sendegeber können wahrscheinlich dasselbe tun, aber wir haben sie nicht formell getestet.
Fügen Sie zeitgesteuerte ID3-Metadaten ein
Diese Informationen wurden verschoben nach Fügen Sie zeitgesteuerte ID3-Metadaten ein.
Einschränkungen
-
Damit Live-Jobs, die mit der API erstellt wurden, angezeigt werden und nicht im Live-Modul verwendet werden können, müssen Sie das
videocloud
Objekt beim Erstellen des Jobs in den Anforderungstext aufnehmen.Zum Beispiel:
{ "live_stream": true, "region": "eu-central-1", "reconnect_time": 1800, "live_sliding_window_duration_ms": 0, "outputs": [ { "label": "hls720p", "live_stream": true, "width": 1280, "height": 720, "video_codec": "h264", "h264_profile": "high", "video_bitrate": 2100, "segment_seconds": 4, "keyframe_interval": 60 } , { "label": "hls540p", "live_stream": true, "width": 960, "height": 540, "video_codec": "h264", "h264_profile": "main", "video_bitrate": 1500, "segment_seconds": 4, "keyframe_interval": 60 } , { "label": "hls360p", "live_stream": true, "width": 640, "height": 360, "video_codec": "h264", "h264_profile": "main", "video_bitrate": 800, "segment_seconds": 4, "keyframe_interval": 60 } ], "videocloud": { "video": { "name": "live event UI", "description": "live event UI", "long_description": "", "tags": [], "reference_id": "", "state": "ACTIVE" } } }
- Die anfängliche Verbindung vom Encoder liefert die Bandbreiteninformationen, die mit der Live-Wiedergabeliste erstellt werden sollen. Wenn die anfängliche Verbindung niedrig ist, behält die Wiedergabeliste, selbst wenn die Jobkonfiguration eine hohe Ausgabe hatte, die gleichen Informationen in der Wiedergabeliste bei, bis Folgendes getan wird:
- Encoder wird neu gestartet
- Möglicherweise muss auch der CDN-Cache geleert werden
- Derzeit ist die Framerate für Eingabestreams auf 30 FPS begrenzt. Wenn Sie eine höhere Framerate verwenden möchten, wenden Sie sich bitte an den Support.
- Standardmäßig ist die Auflösung des Eingabe-Streams auf 1080p begrenzt.
- Beim Trennen und erneuten Verbinden müssen die Stream-Einstellungen gleich bleiben. Alle Änderungen an der Anzahl der Audiokanäle, Auflösungen oder Codec-Einstellungen führen zu unvorhersehbarem Verhalten.
- Obwohl Sie DASH und MP4 für Remote-Quellen für Video Cloud-Videos hinzufügen können, unterstützt Live derzeit HLS nur.
- Für Eingabestreams wird nur AAC-Audio unterstützt.
- Maximal 5 aktive wartend, nicht gestartet Arbeitsplätze sind jederzeit erlaubt.
Zusätzliche Einschränkungen für gleichzeitige Jobs:
- Die Anzahl der
channel
(24x7) Jobs ist auf 0 oder eine geringe Anzahl pro Region begrenzt (je nach Kontotyp). - Die Anzahl der gleichzeitig Laufen
event
Arbeitsplätze sind regional begrenzt, in der Regel auf 100. - Die Anzahl der gleichzeitig warten auf die Verbindung
event
Arbeitsplätze sind auf 5 begrenzt. - Die Anzahl der SEP-Jobs pro Region ist auf 3 oder 10 begrenzt (siehe Unterstützte AWS-Regionen).
Jedes dieser Limits kann auf Kontoebene vom Support angepasst werden. Wenden Sie sich an Ihren Account Manager, wenn Sie zusätzliche Kapazitäten benötigen.
- Die Anzahl der
- Die als zurückgegebene "RTMP"-Adresse
stream_url
für Live-Jobs ist ein Akamai HD-Live-Stream, kein Legacy-FMS-RTMP-Stream – er wird von älteren Versionen von Internet Explorer nicht unterstützt. - Livestreams werden über HTTPS bereitgestellt, und wenn Ihr Brightcove-Konto nicht für HTTPS aktiviert ist, kann der Brightcove-Player den Livestream nicht laden. Wenn Ihr Konto keine HTTPS-Unterstützung für die Ursprungsbereitstellung aktiviert hat, bitte Brightcove-Support kontaktieren um die HTTPS-Unterstützung für die Ursprungsbereitstellung zu aktivieren, um Wiedergabeprobleme zu vermeiden.
- Wenn Sie eine transmuxte Wiedergabe in einer HLS-Ausgabe mit mehreren Bitraten verwenden,
segment_size
kann beim Transmuxen enthalten sein, sollte aber so eingestellt werden, dass es ein Vielfaches derGOP
Größe des Eingabestreams. Wenn die Eingabe also 30 fps mit Keyframes alle 60 Frames beträgt, wird dieGOP
Größe beträgt 2 Sekunden, und die Segmentgröße sollte ein Vielfaches von 2 sein. Wenn Sie dies nicht tun, haben die Stream-Segmente unterschiedliche Größen.Ebenfalls,
keyframe_interval
sollen nicht an beliebigen Ausgängen angegeben werden. - Wenn Sie Ihren eigenen FTP- oder S3-Ursprungsstandort verwenden, muss Ihr CDN so konfiguriert sein, dass er auf Ihren Ursprungsstandort zurückgreift. Das Brightcove Live-System überprüft nicht, ob die Ursprungsstandorte für die CDNs in der Auftragsanforderung angegeben sind.