Démarrage rapide: Création d'une diffusion en direct à l'aide de l'API Live de Brightcove
De quoi as-tu besoin
Pour terminer ce didacticiel, vous avez besoin des éléments suivants.
- Un compte configuré pour l'API Live
- Une clé api pour l'API Live (fournie lors de la création du compte)
- Un compte Video Cloud (non requis pour créer la tâche de diffusion en direct, mais nécessaire pour configurer la lecture dans Brightcove Player)
- Si vous utilisez le CMS API pour créer la vidéo Video Cloud plutôt que Studio, vous aurez besoin d'informations d'identification client avec des autorisations vidéo/lecture et vidéo/écriture - si vous n'êtes pas familier avec le processus d'obtention des informations d'identification client, consultez la section section d'authentification ci-dessous.
- La possibilité de faire des requêtes API REST soit via boucle ou un client REST tel que Insomnie ou Facteur.
Pour vous aider, nous avons préparé quelques importations Insomnia et Postman que vous pouvez utiliser pour l'exercice (chez Brightcove Learning Services, nous préférons et utilisons Insomnia, mais Postman fonctionnera également si c'est ce que vous avez) :
Dans chacun des fichiers zip, vous trouverez une page readme pour vous aider.
- Pour créer une diffusion en direct réelle, vous aurez besoin d'un encodeur logiciel ou matériel pour la diffusion en direct. Les instructions ci-dessous incluront les étapes de configuration du flux en direct à l'aide de Wirecast ( inscrivez-vous à un essai). Si vous utilisez un encodeur différent, le processus sera différent mais devrait être similaire en termes d'informations dont vous avez besoin à partir de la réponse de l'API Live.
Obtenir des informations d'identification pour l'API CMS
Créer un emploi en direct
Nous allons d'abord créer le travail en direct.
- Pour cette étape, vous allez soumettre un
POST
demande à:https://api.bcovlive.io/v1/jobs
Utilisez ce qui suit comme corps de la requête :
{ "live_stream": true, "region": "us-west-2", "reconnect_time": 1800, "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 } ] }
- Si vous utilisez un client REST tel que Insomnia ou Postman, vous devrez ajouter les en-têtes suivants à votre demande :
Clé Montant X-API-KEY VOTRE CLÉ API Type de contenu application/json Utilisez le corps de la demande indiqué à l'étape 1 ci-dessus et assurez-vous d'envoyer la demande à l'aide de la méthode POST.
- La réponse de l'API devrait ressembler à ceci :
{ "id": "15981d93877e490185e6ebc9af2c79a3", "outputs": [ { "id": "0-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_vod.m3u8", "label": "hls720p" }, { "id": "1-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_vod.m3u8", "label": "hls540p" }, { "id": "2-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_vod.m3u8", "label": "hls360p" }, { "id": "3-15981d93877e490185e6ebc9af2c79a3", "playlist_type": "defaultS3", "type": "playlist", "filename": "playlist.m3u8", "dvr_filename": "playlist_dvr.m3u8", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Ads - a95ac581551b4478b27910e5675db1f8", "type": "ads" }, "c96e2d00d6744c65a3eddb15425e4a51": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } } ], "stream_url": "rtmp://ep1-apse2.bcovlive.io:1935/15981d93877e490185e6ebc9af2c79a3", "stream_name": "alive", "encryption": {}, "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Ads - a95ac581551b4478b27910e5675db1f8", "type": "ads" }, "c96e2d00d6744c65a3eddb15425e4a51": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } }
- Pour nos besoins, les champs importants de la réponse sont :
- stream_url (ligne 51)
- stream_name (ligne 52)
- playback_url (ligne 54)
Vous aurez besoin des valeurs de ces champs - à partir de votre propre réponse - dans les étapes suivantes.
Configurer la vidéo Video Cloud
Maintenant que nous avons les informations de diffusion en direct, nous allons configurer une vidéo à distance dans Video Cloud afin de pouvoir la lire dans un Brightcove Player.
Si vous utilisez Insomnia ou Postman, vous devrez configurer l'authentification OAuth2 à l'aide de vos informations d'identification client. Consultez l'un des guides suivants si vous avez besoin d'aide :
-
Tout d'abord, vous devrez créer une nouvelle vidéo en faisant un
POST
demande à:https://cms.api.brightcove.com/v1/accounts/account_id/videos
-
Le corps de la requête peut inclure plusieurs métadonnées (voir la référence de l'API pour plus de détails), mais la seule chose requise est
name
:{ "name": "some name for your live stream" }
-
La réponse contiendra toutes les métadonnées de la vidéo, mais le champ important est le
id
, dont vous aurez besoin pour ajouter l'actif distant. -
Pour ajouter le flux HLS, vous ferez un autre
POST
demande à:https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/hls_manifest
-
Cette fois, le corps de la requête sera :
{ "remote_url": "playback_url for your live stream" }
Ajouter une vidéo à un lecteur
Nous allons maintenant créer une simple page HTML et y ajouter un lecteur avec la vidéo que nous venons de créer.
- Créez une simple page HTML pour tester le lecteur de diffusion en direct. Vous pouvez inclure tout autre contenu que vous aimez, ou aucun.
- Dans Studio Media Module, sélectionnez la vidéo créée lors des étapes précédentes, puis cliquez sur Publier et intégrer > Lecteur Web:
- Dans la boîte de dialogue Publier, sélectionnez un lecteur (le lecteur par défaut Brightcove convient) :
- Faites défiler vers le bas, définissez la taille du lecteur comme vous le souhaitez, puis cliquez sur le bloc de code pour sélectionner le code standard du lecteur. Copiez ce code et collez-le dans le corps de votre page html :
- Enregistrez votre page html sur un serveur Web distant ou local afin de pouvoir la parcourir.
- Ouvrez la page dans votre navigateur Web. Comme nous n'avons pas commencé à diffuser, vous verrez une erreur de média :
commandes cURL
Cette section fournit des commandes cURL alternatives pour ceux qui n'utilisent pas de client REST tel que Insomnia ou Postman.
cURL pour créer un travail en direct
## Create Job - Simple
curl -X "POST" "https://api.bcovlive.io/v1/jobs" \
-H "X-API-KEY: YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d $'{
"outputs": [
{
"height": 720,
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 1280,
"video_codec": "h264",
"label": "hls720p",
"h264_profile": "high",
"live_stream": true
},
{
"height": 540,
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 960,
"video_codec": "h264",
"label": "hls540p",
"h264_profile": "main",
"live_stream": true
},
{
"height": 360,
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 640,
"video_codec": "h264",
"label": "hls360p",
"h264_profile": "main",
"live_stream": true
}
],
"region": "us-west-2",
"reconnect_time": 1800,
"live_stream": true
}'
Copiez ce code dans un éditeur de texte et remplacez-le YOUR_API_KEY_HERE
par votre propre clé api. Ensuite, copiez et collez le code sur une ligne de commande et exécutez-le.
Utiliser Studio pour créer la vidéo
Voici des étapes alternatives pour créer la vidéo dans Studio.
- Connectez-vous à Video Cloud Studio.
- Accédez au module multimédia.
- Dans les options de gauche, cliquez sur Ajouter une vidéo à distance:
- Dans le Ajouter une vidéo à distance boîte de dialogue, ajoutez un nom de vidéo et copiez et collez la valeur du
playback_url
de la réponse Live API dans le champ URL. Cliquez ensuite sur Ajouter un rendu, puis sur Enregistrer:
Utiliser Wirecast pour diffuser un événement
Dans cette section, nous allons configurer et utiliser l'encodeur Telestream Wirecast pour prendre en charge un événement de diffusion en direct. Le logiciel Telestream Wirecast est une application de bureau qui capture les entrées de votre caméra et produit un flux pouvant être diffusé par un CDN. Notez qu'il existe des solutions d'encodage matérielles et logicielles disponibles qui peuvent être mieux adaptées à la diffusion de votre événement de diffusion en direct. Vous pouvez télécharger une version d'essai du logiciel Wirecast à partir du Site Web de Telestream.
Remarque : Le logiciel Wirecast doit être installé et une caméra doit être connectée à votre ordinateur avant de continuer.
Pour configurer Wirecast pour un événement en direct, procédez comme suit.
- Ouvrez Wirecast.
- Survolez le +, cliquez sur Capture Devices, puis sélectionnez votre appareil photo.
- Cliquez sur le bouton fléché ( ) pour faire de la caméra la prise de vue en direct.
- Cliquez sur le bouton Stream ( ). Vous serez invité à configurer les paramètres de sortie.
- Met le Destination à Serveur RTMP. Cliquez sur d'accord.
- Pour le Adresse , Utilisez le stream_url renvoyé par l'API Live (étape 3).
- Pour le Stream, utilisez vivant.
- (Optionnel) Pour créer des flux de sortie supplémentaires, cliquez sur Ajouter... Lors de la création de flux de sortie supplémentaires, vous souhaiterez peut-être créer votre propre profil d'encodage personnalisé pour contrôler le débit de sortie. Assurez-vous que le Flux le nom reflète le nouveau débit.
- Cliquez sur d'accord pour enregistrer les paramètres de sortie.
- Cliquez sur le bouton Stream ( ). La diffusion en direct devrait commencer.
Conclusion
Vous êtes maintenant prêt à créer une session de diffusion en direct. Vous devez ajouter les éléments suivants à la configuration de votre encodeur :
stream_url
: ajoutez l'adressestream_url
de votre travail (l'rtmp
adresse)stream_name
: le nom du flux doit êtrealive
Une fois que vous avez démarré la diffusion en direct, vous devriez la voir apparaître dans le lecteur Brightcove que vous avez créé lors des étapes précédentes.