Démarrage rapide : Création d'une diffusion en direct à l'aide de l'API Live de Brightcove

Ce tutoriel vous guidera à travers la création d'un travail de streaming en direct à l'aide de l'API Live.

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 comptez utiliser 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 familiarisé avec le processus d'obtention d'informations d'identification client, consultez le authentification section 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 incluent les étapes à suivre pour configurer la diffusion en direct à l'aide de Wirecast ( inscrivez-vous pour 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

Pour utiliser le CMS API vous aurez besoin des informations d'identification appropriées.

Dans la plupart des cas, le moyen le plus simple d'obtenir des informations d'identification consiste à utiliser la section Authentification de l'API Studio Admin (nécessite des autorisations d'administrateur sur votre compte). Voir Gestion des informations d'identification d'authentification API pour plus de détails. Dans ce cas, les autorisations dont vous avez besoin concernent le partage de relations. Vous avez besoin d'autorisations de lecture et d'écriture :

Partage des autorisations de relation
Partage des autorisations de relation

Si les autorisations dont vous avez besoin ne sont pas disponibles dans Studio, ou si vous préférez les obtenir directement à partir de l'API OAuth, utilisez votre choix de Obtenir les informations d'identification du client documents énumérés ci-dessous. Quelle que soit l'option que vous choisissez, vous devrez demander les autorisations d'opération correctes. Les éléments suivants peuvent être utilisés avec cURL ou Postman pour obtenir les autorisations appropriées :

"operations": [
    "video-cloud/videos/read",
    "video-cloud/videos/create",
    "video-cloud/videos/update"]

Créer un emploi en direct

Nous allons d'abord créer le travail en direct.

  1. Pour cette étape, vous allez soumettre une 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
            }
        ]
    }
  2. 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.

  3. La réponse de l'API devrait ressembler à ceci :
    Exemple de réponse
    		{
    				"id": "15981d93877e490185e6ebc9af2c79a3",
    				"outputs": [
    						{
    								"id": "0-15981d93877e490185e6ebc9af2c79a3",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_dvr.m3u8",
    								"playback_url_vod": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_vod.m3u8",
    								"label": "hls720p"
    						},
    						{
    								"id": "1-15981d93877e490185e6ebc9af2c79a3",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_dvr.m3u8",
    								"playback_url_vod": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_vod.m3u8",
    								"label": "hls540p"
    						},
    						{
    								"id": "2-15981d93877e490185e6ebc9af2c79a3",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_dvr.m3u8",
    								"playback_url_vod": "https://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": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8",
    								"ssai_playback_urls": {
    										"685b239f582c42fca49da33be4f2328e": {
    												"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8",
    												"playback_url_dvr": "https://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": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8",
    												"playback_url_dvr": "https://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": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8",
    						"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8",
    						"ssai_playback_urls": {
    								"685b239f582c42fca49da33be4f2328e": {
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8",
    								"playback_url_dvr": "https://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": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8",
    								"playback_added_cdns": [],
    								"description": "House Counter - a95ac581551b4478b27910e5675db1f8",
    								"type": "counter"
    						}
    				}
    		}
    		
    		
  4. 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, issues de votre propre réponse, dans les étapes qui suivent.

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.

Dans ces étapes, nous avons configuré la vidéo à l'aide de l'API CMS, mais cela peut également être fait dans Video Cloud Studio, si vous préférez, voir les étapes alternatives ci-dessous.

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 :

  1. Tout d'abord, vous devez créer une nouvelle vidéo en faisant une POST demande à :

    https://cms.api.brightcove.com/v1/accounts/account_id/videos
  2. 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"
    }
  3. La réponse contiendra toutes les métadonnées vidéo, mais le champ important est celui id dont vous aurez besoin pour ajouter la ressource distante.

  4. Pour ajouter le flux HLS, vous devez faire une autre POST demande à :

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/hls_manifest
  5. Cette fois, le corps de la demande sera le suivant :

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

  1. 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.
  2. Dans le module Studio Media, sélectionnez la vidéo créée lors des étapes précédentes et cliquez sur Publier et intégrer > Lecteur Web:
    Publier une vidéo
    Publier une vidéo
  3. Dans la boîte de dialogue Publier, sélectionnez un lecteur (le lecteur par défaut Brightcove convient) :
    Sélectionner un joueur
    Sélectionner un joueur
  4. 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 :
    Obtenir le code de publication
    Obtenir le code de publication
  5. Enregistrez votre page html sur un serveur Web distant ou local afin de pouvoir la parcourir.
  6. Ouvrez la page dans votre navigateur Web. Comme nous n'avons pas commencé à diffuser, vous verrez une erreur de média :
    Erreur de média
    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 le code dans un éditeur de texte et remplacez YOUR_API_KEY_HERE avec 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.

  1. Connectez-vous à Video Cloud Studio.
  2. Accédez au module multimédia.
  3. Dans les options de gauche, cliquez sur Ajouter une vidéo à distance:
    Ajouter un élément de menu vidéo à distance
    Ajouter un élément de menu vidéo à distance
  4. 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:
    Boîte de dialogue Ajouter un rendu
    Boîte de dialogue Ajouter un rendu

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.

  1. Ouvrez Wirecast.
  2. Survolez le +, cliquez sur Capture Devices, puis sélectionnez votre appareil photo.
    Sélectionner la caméra
    Sélection d'une caméra
  3. Cliquez sur le bouton fléché ( ) pour que la caméra prenne la prise de vue en direct.
    Configuration de la caméra
    Configuration de la caméra filaire
  4. Clique le Flux bouton ( ). Vous serez invité à configurer les paramètres de sortie.
  5. Met le Destination à Serveur RTMP. Cliquez sur d'accord.
  6. Pour l' adresse, utilisez le stream_url renvoyé par l'API Live (étape 3).
  7. Pour le Stream, utilisez vivant.
    Paramètres de sortie
    Paramètres de sortie Wirecast
  8. (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.
  9. Cliquez sur d'accord pour enregistrer les paramètres de sortie.
  10. Clique le Flux bouton ( ). 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 le stream_url depuis votre poste (l' rtmp adresse)
  • stream_name: le nom du flux doit être alive

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.