Aperçu: API Live Brightcove
Introduction
L' Live API est une API basée sur REST qui vous permet de créer et de gérer des événements de streaming en direct. Les fonctionnalités optionnelles incluent :
- Insertion d'annonces côté serveur ( SSAI )
- AES-128 cryptage
- Créez des ressources de vidéo à la demande à partir de clips extraits du flux en direct
- DVR capacité
- Multiples CDNs
Voir aussi le Référence API.
URL de base
L'URL de base de l' Live API est :
https://api.bcovlive.io
Headers
Toutes les demandes sont authentifiées à l'aide d'une clé API qui vous sera fournie lors de la configuration de votre compte. La clé est passée dans un X-API-KEY
entête. UNE Content-Type
l'en-tête est également requis :
X-API-KEY : YOUR_APIKey
Content-Type: application/json
Régions AWS prises en charge
Les régions AWS suivantes sont prises en charge :
Emplacement | Nom AWS | Soutien SSAI |
---|---|---|
Oregon | us-west-2 | |
Virginie | us-east-1 | |
Tokyo | ap-northeast-1 | |
Singapour | ap-southeast-1 | |
Sydney | ap-southeast-2 | |
Mumbai | ap-south-1 | |
Francfort | eu-central-1 | |
Irlande | eu-west-1 |
Notez que les travaux SEP sont limités par compte où la limite standard est de 3, sauf pour le nous-ouest-2 que sa limitation est jusqu'à 10. Toutes les limitations sont définies par compte et non par région.
CDN pris en charge
Les CDN suivants sont pris en charge pour la diffusion en direct :
- Akamai
- Cloudfront
D'autres CDN basés sur des fichiers devraient fonctionner, mais n'ont pas été testés et ne sont pas activement pris en charge.
Chaînes et heures de l'événement
Il existe deux options d'achat pour Live :
- Achetez des heures de diffusion en continu pour l'événement
- Acheter des chaînes de streaming
Vous pouvez également acheter à la fois des heures de diffusion d'événements et des chaînes. Contactez votre gestionnaire de compte pour plus d'informations sur les offres.
Authentification par jeton
Brightcove offre la possibilité d'ajouter une authentification par jeton aux URL de lecture de flux vidéo en direct. Si vous souhaitez ajouter une authentification par jeton, Contacter l'assistance Brightcove. La configuration de l'authentification par jeton peut prendre jusqu'à trois jours.
Le TTL (durée de vie) des jetons peut être défini sur n'importe quelle valeur d'une heure à 365 jours. La durée pendant laquelle vous définissez la durée de vie dépendra des types de flux en direct que vous déployez. Sachez toutefois que la durée de vie est un paramètre à l'échelle du compte et s'appliquera à tous les flux en direct.
DVR capacité
Les flux Brightcove Live ont des DVR capacités. Pour utiliser cette fonctionnalité, vous devez :
- Utilisez le
playback_url_dvr
URL de lecture - Utilisez un lecteur doté d'une fonction DVR
La capacité du DVR est limitée à 86 400 secondes.
Le DVR flux restera disponible pendant 7 jours après la fin de la diffusion en direct.
Points de terminaison et opérations
Les principales opérations de Live API sont la création et la gestion de flux en direct, et générer des clips VOD à partir de flux en direct. Ces opérations sont effectuées via des requêtes aux points de terminaison suivants, qui sont expliqués plus en détail dans la suite du document.
Création et gestion d'emplois
- Créer un travail en direct
- Lister un emploi en direct
- Obtenez les détails du travail en direct
- Insertion manuelle de point de repère publicitaire
- Arrêter un travail en direct
Création de clips
Gestion de la SSAI
Création et gestion d'emplois
Ces opérations vous permettent de créer une tâche en direct, d'en obtenir les détails et de l'arrêter. Il existe également un point de terminaison pour créer un point de repère immédiat pour une pause publicitaire.
Créer un travail en direct
POST https://api.bcovlive.io/v1/jobs
Ce point de terminaison est utilisé pour créer des flux en direct via un POST
demander. En plus de spécifier les propriétés du flux en direct lui-même, la demande peut également spécifier les clips VOD à générer à partir du flux en direct (cela peut également être fait plus tard via le point final). Les détails des champs qui peuvent être inclus dans le corps de la requête sont donnés dans le Référence API.
Protocole d'entrée
Brightcove Live prend en charge plusieurs protocoles d'entrée. Utilisez le protocol
dans le corps de la demande lorsque vous créez le travail pour spécifier celui que vous utiliserez. Les valeurs prises en charge sont :
rtmp
(valeur par défaut)rtp
rtp-fec
srt
Le protocole RTMP permet de délivrer un flux au format FLV. Les autres protocoles sont destinés à fournir MPEG2-TS.
Si tu utilises rtp
, rtp-fec
ou srt
, vous devez également spécifier un cidr_whitelist
(voir Routage inter-domaines sans classe).
Si tu utilises rtmp
, vous pouvez spécifier un ip_whitelist
pour l'entrée à la place, mais ce n'est pas obligatoire.
Exemple de corps de requête pour le travail RTP+FEC :
{
"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"]
}
Le Live API Quick Start vous guide à travers la création d'une tâche en direct et la configuration d'un lecteur Brightcove pour y jouer.
Répertorier les emplois en direct
GET https://api.bcovlive.io/v1/jobs
Ce point de terminaison est utilisé pour répertorier vos diffusions en direct via un GET
demander. Le point de terminaison prend en charge la pagination, le tri et le filtrage de recherche. Les détails des champs qui peuvent être inclus dans le corps de la requête sont donnés dans le Référence API et quelques informations supplémentaires peuvent être trouvées dans Obtenir une liste de travaux en direct ou en VOD.
Obtenez les détails du travail en direct
GET https://api.bcovlive.io/v1/jobs/:jobId
Ce point de terminaison vous permet d'obtenir des informations détaillées sur un flux en direct, qui sont également renvoyées lors de la création initiale du travail. Voir le Référence API pour plus de détails sur les champs de réponse.
Insertion manuelle de point de repère publicitaire
POST https://api.bcovlive.io/v1/jobs/:jobId/cuepoint
En règle générale, votre encodeur enverra des points de repère pour les coupures publicitaires, mais vous pouvez également créer une coupure publicitaire immédiate en envoyant une demande à ce point de terminaison. Voir le Référence API pour les détails.
Notez qu'un timecode
sous la forme DD:HH:MM:SS
est requis pour le point de repère.
Arrêter un travail en direct
PUT https://api.bcovlive.io/v1/jobs/:jobId/cancel
Utilisez ce point de terminaison pour arrêter immédiatement une diffusion en direct. Une fois annulé, un flux en direct ne peut pas être redémarré. Voir le Référence API pour les détails.
Création de clips
Vous pouvez créer des clips vidéo à la demande à partir d'un flux en direct et les stocker dans un compte Video Cloud, ou les envoyer vers un compartiment S3 ou une adresse FTP. Vous pouvez définir les clips lorsque vous créez le flux en direct, ou les créer plus tard à l'aide du point de terminaison décrit ci-dessous. Voir aussi le Création d'extraits guider.
Créer un clip VOD
POST https://api.bcovlive.io/v1/vods
Les points de début et de fin des clips peuvent être définis en termes de décalages par rapport au début du flux ou d'horodatages UNIX. Les détails des champs du corps de la requête peuvent être trouvés dans le Référence API.
Obtenez une liste des travaux de VOD (clip)
Pour obtenir une liste de vos tâches VOD pour les clips, consultez Obtenir une liste de travaux en direct ou en VOD et le Référence API.
Gestion SSAI
En utilisant l'insertion d'annonces côté serveur ( SSAI), vous pouvez insérer autant de sauts publicitaires que vous le souhaitez dans votre flux en direct. Vous pouvez également ingérer des actifs d'ardoise (clips VOD) pour remplir tout temps publicitaire inutilisé avec un message de retour ou tout ce que vous voulez.
SSAI Vous trouverez plus de détails sur la configuration dans Insertion d'annonces côté serveur à l'aide de Brightcove Live API et de l' API Reference.
Obtenir les configurations d'annonces de compte
GET https://api.bcovlive.io/v1/ssai/applications/:account_id
Ce point de terminaison vous permet d'obtenir toutes les configurations d'annonces qui ont été configurées pour un compte. Les détails des champs de réponse peuvent être trouvés dans le Référence API.
Créer une configuration d'annonce
POST https://api.bcovlive.io/v1/ssai/application
Créez une configuration d'annonce qui définit la manière dont les annonces seront récupérées SSAI. Les détails des champs du corps de la requête peuvent être trouvés dans le Référence API.
Obtenir la configuration de l'annonce
GET https://api.bcovlive.io/v1/ssai/application/:application_id
Utilisez ce point de terminaison pour obtenir les détails d'une configuration d'annonce que vous avez créée. Les détails des champs de réponse peuvent être trouvés dans le Référence API.
Mettre à jour la configuration des annonces
PUT https://api.bcovlive.io/v1/ssai/application/account/:application_id
Mettez à jour les détails d'une configuration d'annonce. Les détails des champs du corps de la requête peuvent être trouvés dans le Référence API.
Obtenir des ressources Slate Media Source
GET https://api.bcovlive.io/v1/ssai/slates/:ACCOUNT_ID
Obtenez les ressources multimédias de l'ardoise qui ont été définies pour un compte. Les éléments multimédias Slate sont utilisés pour remplir le temps de pause publicitaire qui n'est pas rempli par les publicités. Les détails des champs de réponse peuvent être trouvés dans le Référence API.
Ingérer l'actif de la source multimédia Slate
POST https://api.bcovlive.io/v1/ssai/slates
Ajoutez un élément multimédia pour les ardoises afin de remplir le temps de pause publicitaire non rempli. Les détails des champs du corps de la requête peuvent être trouvés dans le Référence API.
Supprimer l'actif de la source multimédia Slate
DELETE https://api.bcovlive.io/v1/ssai/slates/:SLATE_MSA_ID
Supprime un élément multimédia d'ardoise.
Points d'entrée statiques
La fonction Static Entry Points (SEP) permet une tâche en direct de longue durée qui peut être activée et désactivée tout en gardant les URL de point d'entrée et les URL de lecture statiques et réutilisables. Cette fonctionnalité permet aux clients de configurer leur encodeur dans leurs installations ou sur le terrain et permet au client de créer sa propre logique de programmation pour les chaînes ou les programmes en direct. Voir Points d'entrée statiques pour les détails.
Légendes
Si les légendes se trouvent à l'intérieur du signal d'entrée h264 (correctement signalées dans le paquet user_data), elles sont transmises aux sorties h264.
Si vous utilisez un encodeur en direct Elemental de diffusion, vous pouvez obtenir des sous-titres de SDI (EIA-608/CEA-608) ou d'autres sources (SCTE-20, SCC, Teletext, DVB-Sub, Ancillary, ARIB, TTML, SCTE-27, STL, SRT, SMI) et les mettre dans le flux h264 que vous nous envoyez. D'autres encodeurs de qualité diffusion peuvent probablement faire la même chose, mais nous ne les avons pas testés formellement.
Insérer des métadonnées programmées ID3
Ces informations ont été déplacées vers Insérer des métadonnées temporelles ID3.
Contraintes
-
Pour que les tâches en direct créées à l'aide de l'API apparaissent et ne puissent pas être utilisées dans le Module en direct , Vous devez inclure le
videocloud
dans le corps de la demande lorsque vous créez la tâche.Par exemple :
{ "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" } } }
- La connexion initiale de l'encodeur fournit les informations de bande passante à créer avec la liste de lecture Live. Si la connexion initiale est faible, même si la configuration du travail avait un rendement élevé, la liste de lecture conservera toujours les mêmes informations sur la liste de lecture jusqu'à ce que les étapes suivantes soient effectuées :
- L'encodeur est redémarré
- Le cache CDN peut également avoir besoin d'être vidé
- Actuellement, le framerate pour les flux d'entrée est limité à 30 FPS. Si vous souhaitez utiliser une fréquence d'images plus élevée, veuillez contacter le support.
- Par défaut, la résolution du flux d'entrée est limitée à 1080p.
- Lors de la déconnexion et de la reconnexion, les paramètres du flux doivent rester inchangent. Toute modification du nombre de canaux audio, de résolutions ou de paramètres de codec entraînera un comportement imprévisible.
- Bien que vous puissiez ajouter DASH et MP4 pour les sources distantes pour les vidéos Video Cloud, Live prend actuellement en charge HLS uniquement.
- Seul l'audio AAC est pris en charge pour les flux d'entrée.
- Un maximum de 5 actifs en attente, non commencé les travaux sont autorisés à tout moment.
Limitations supplémentaires sur les tâches simultanées :
- Le nombre de
channel
(24x7) jobs est limité à 0 ou à un petit nombre par région (selon le type de compte). - Le nombre de simultanément fonctionnement
event
emplois est limité par région, généralement à 100. - Le nombre de simultanément en attente de connexion
event
les emplois sont limités à 5. - Le nombre d'emplois SEP par région est limité à 3 ou 10 (voir Régions AWS prises en charge).
Chacune de ces limites peut être ajustée au niveau du compte par l'assistance. Contactez votre gestionnaire de compte si vous avez besoin de capacité supplémentaire.
- Le nombre de
- L'adresse « RTMP » renvoyée comme
stream_url
pour les tâches en direct est un flux Akamai HD Live, et non un flux RTMP FMS hérité - elle n'est pas prise en charge par les anciennes versions d'Internet Explorer. - Les flux en direct sont diffusés via HTTPS, et si votre compte Brightcove n'est pas activé pour HTTPS, le lecteur Brightcove ne parviendra pas à charger le flux en direct. Si votre compte n'a pas activé la prise en charge HTTPS pour la diffusion d'origine, veuillez Contacter l'assistance Brightcove pour que la prise en charge HTTPS pour la diffusion d'origine soit activée afin d'éviter les problèmes de lecture.
- Lors de l'utilisation d'un rendu transmuxé dans une sortie HLS à plusieurs débits,
segment_size
peut être inclus lors du transmuxage, mais doit être réglé de manière à ce qu'il soit un multiple duGOP
taille du flux d'entrée. Donc, si l'entrée est de 30 ips avec des images clés toutes les 60 images, leGOP
la taille est de 2 secondes et la taille du segment doit être un multiple de 2. Si vous ne le faites pas, les segments de flux seront de tailles différentes.Aussi,
keyframe_interval
devrait ne pas être spécifié sur toutes les sorties. - Lorsque vous utilisez votre propre emplacement d'origine FTP ou S3, votre CDN doit être configuré pour revenir à votre emplacement d'origine. Le système Brightcove Live ne validera pas les emplacements d'origine des CDN fournis dans la demande de travail.