Cette page explique comment distribuer le flux de diffusion en direct vers des points de terminaison distants à l'aide du protocole SRT (Secure Reliable Transport) ou du protocole RTMP (Real-Time Messaging Protocol). SRT et RTMP sont tous deux utilisés en mode push pour envoyer le flux aux points de terminaison. Les formats de conteneurs acceptés sont MPEG-TS pour SRT et FLV pour RTMP.
Avant de commencer
Cette page suppose que vous avez suivi les étapes de la section Avant de commencer du guide de démarrage rapide pour les diffusions en direct HLS.
Selon le protocole de distribution choisi, créez un point de terminaison SRT ou RTMP chez le fournisseur où vous souhaitez recevoir le flux de sortie en mode push. Le format de l'URI du point de terminaison varie selon le protocole :
- Pour SRT :
srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID
- Pour RTMP :
rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/RTMP_STREAM_KEY
ou simplementrtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME
SRT_SERVER_IP et RTMP_SERVER_IP peuvent être une adresse IP ou un nom de domaine.
Créer le point de terminaison d'entrée
Pour créer le point de terminaison d'entrée, utilisez la méthode projects.locations.inputs.create
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: emplacement dans lequel créer le point de terminaison d'entrée ; utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: identifiant défini par l'utilisateur pour le nouveau point de terminaison d'entrée à créer (auquel vous envoyez votre flux d'entrée). Cette valeur doit comporter entre 1 et 63 caractères, commencer et se terminer par[a-z0-9]
, et peut contenir des tirets (-) entre les caractères. Par exemple,my-input
.
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Copiez le OPERATION_ID renvoyé pour l'utiliser dans la section suivante.
Vérifier le résultat
Utilisez la méthode projects.locations.operations.get
pour vérifier si le point de terminaison d'entrée a été créé. Si la réponse contient "done: false"
, répétez la commande jusqu'à ce que la réponse contienne "done: true"
. La création du premier point de terminaison d'entrée dans une région peut prendre jusqu'à 10 minutes.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: emplacement de votre point de terminaison d'entrée. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
OPERATION_ID
: identifiant de l'opération
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Input", "name": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "type": "RTMP_PUSH", "uri": INPUT_STREAM_URI, # For example, "rtmp://1.2.3.4/live/b8ebdd94-c8d9-4d88-a16e-b963c43a953b", "tier": "HD" } }
Recherchez le champ uri
et copiez le INPUT_STREAM_URI renvoyé pour l'utiliser ultérieurement dans la section Envoyer le flux d'entrée.
Créer la chaîne
Pour créer le canal, utilisez la méthode projects.locations.channels.create
.
Notez les points suivants dans la configuration du canal :
- Le tableau
distributionStreams
contient les paramètres de multiplexage des flux pour les distributions. Chaque objet
DistributionStream
doit inclure un champkey
,container
etelementaryStreams
.{ "distributionStreams": [ { "key": "ds1", "container": "ts", // to be used with an SRT distribution "elementaryStreams": [ "es_video_720", "es_audio" ] }, { "key": "ds2", "container": "flv", // to be used with an RTMP distribution "elementaryStreams": [ "es_video_640", "es_audio" ] } ] }
Le tableau
distributions
répertorie les configurations de distribution, y compris les points de terminaison à distance.Définissez le champ
distributionStream
dans l'objetDistribution
sur lekey
d'un objetDistributionStream
.Pour la distribution SRT, définissez
uri
dans l'objetSrtPushOutputEndpoint
sur un point de terminaison SRT que vous avez créé. Pour la distribution RTMP, définissezuri
dans l'objetRtmpPushOutputEndpoint
sur un point de terminaison RTMP que vous avez créé.{ "distributions": [ { "key": "pd1", "distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } }, { "key": "pd2", "distributionStream": "ds2", // defined in a distributionStreams[] object with an FLV container "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/", "streamKey": "RTMP_STREAM_KEY" } } ] }
Pour distribuer des sous-titres générés par IA et des sous-titres traduits, consultez le guide Configurer les sous-titres et les traductions automatiques.
Les exemples suivants n'utilisent qu'un seul objet DistributionStream
et un seul objet Distribution
.
REST
SRT
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: emplacement dans lequel créer le canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal à créer. Cette valeur doit comporter entre 1 et 63 caractères, commencer et se terminer par[a-z0-9]
, et peut contenir des tirets (-) entre les caractères.INPUT_ID
: identifiant défini par l'utilisateur pour le point de terminaison d'entréeBUCKET_NAME
: nom du bucket Cloud Storage que vous avez créé pour contenir le fichier manifeste et les fichiers de segment du flux en directSRT_SERVER_IP
: adresse IP ou nom de domaine du point de terminaison distant.SRT_SERVER_PORT
: numéro de port du point de terminaison distantSRT_SERVER_STREAM_ID
: ID du flux du point de terminaison distant
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
RTMP
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: emplacement dans lequel créer le canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal à créer. Cette valeur doit comporter entre 1 et 63 caractères, commencer et se terminer par[a-z0-9]
, et peut contenir des tirets (-) entre les caractères.INPUT_ID
: identifiant défini par l'utilisateur pour le point de terminaison d'entréeBUCKET_NAME
: nom du bucket Cloud Storage que vous avez créé pour contenir le fichier manifeste et les fichiers de segment du flux en directRTMP_SERVER_IP
: adresse IP ou nom de domaine du point de terminaison distant.RTMP_SERVER_PORT
: numéro de port du point de terminaison distantRTMP_APP_NAME
: préfixe du chemin d'accès au nom du fluxRTMP_STREAM_KEY
: clé de flux du point de terminaison distant.
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
Obtenir la chaîne
Une fois le canal créé, utilisez la méthode projects.locations.channels.get
pour interroger l'état du canal.
REST
SRT
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } } ] }
RTMP
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "flv", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME", "streamKey": "RTMP_STREAM_KEY" } } ] }
La réponse complète contient les champs suivants :
{
...
"streamingState": "STOPPED",
"distributions": [
{
...
"state": "NOT_READY"
...
}
]
...
}
Cette réponse indique l'état de diffusion en streaming de la chaîne et les distributions de la chaîne.
Si la distribution est dans un état NOT_READY
, elle ne peut pas être démarrée. Vous devez attendre que l'état passe à READY
pour pouvoir commencer à distribuer votre flux.
La création du premier flux de distribution peut prendre jusqu'à 10 minutes. L'état de la distribution est indépendant de l'état du canal. Vous pouvez démarrer le canal et attendre que la distribution devienne READY
, puis démarrer la distribution.
Vous pouvez maintenant démarrer la chaîne.
Démarrer la chaîne
Utilisez la méthode projects.locations.channels.start
pour démarrer le canal. Une chaîne doit être démarrée avant de pouvoir accepter des flux d'entrée ou générer un flux de sortie.
Le démarrage du premier canal dans une région prend environ 10 minutes.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "start", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Pour déterminer si le canal a démarré, obtenez les informations sur le canal comme précédemment. La réponse doit contenir les éléments suivants :
{
...
"streamingState": "AWAITING_INPUT"
...
}
Envoyer le flux d'entrée
Ouvrez une nouvelle fenêtre de terminal. Exécutez la commande suivante en utilisant INPUT_STREAM_URI de la section Vérifier le résultat :
ffmpeg -re -f lavfi -i "testsrc=size=1280x720 [out0]; sine=frequency=500 [out1]" \
-acodec aac -vcodec h264 -f flv INPUT_STREAM_URI
La chaîne diffuse désormais du contenu, mais les distributions sont toujours arrêtées.
Démarrer les distributions
Les distributions doivent être à l'état READY
pour pouvoir être démarrées. Pour commencer à distribuer le flux en direct à tous les points de terminaison distants, utilisez la méthode projects.locations.channels.startdistribution
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération. Une fois la distribution démarrée, elle peut être dans l'état AWAITING_INPUT
si le flux d'entrée n'est pas démarré ou dans l'état DISTRIBUTING
si le flux d'entrée est distribué aux points de terminaison spécifiés.
(Facultatif) Démarrer un ensemble de distributions
Vous pouvez commencer par un ensemble de distributions plutôt que par toutes en même temps. Listez les distributions que vous souhaitez démarrer en ajoutant leurs clés à la liste du tableau distributionKeys
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canalDISTRIBUTION_KEYS
: liste de clés de chaîne séparées par une virgule (par exemple,"pd1"
)
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
Vérifier que les distributions sont en cours d'exécution
Pour vérifier que les distributions ont commencé, récupérez les informations sur le canal comme vous l'avez fait précédemment. La réponse doit contenir les éléments suivants :
{
"distributions": [
{
...
"state": "DISTRIBUTING"
...
},
...
]
}
Sur le serveur SRT ou RTMP distant, vérifiez que le point de terminaison que vous avez créé reçoit des données.
Arrêter les distributions
Pour arrêter de distribuer le flux en direct à tous les points de terminaison distants, utilisez la méthode projects.locations.channels.stopdistribution
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
(Facultatif) Arrêter un ensemble de distributions
Vous pouvez arrêter un ensemble de distributions plutôt que toutes en même temps. Listez les distributions que vous souhaitez arrêter en ajoutant leurs clés à la liste du tableau distributionKeys
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canalDISTRIBUTION_KEYS
: liste de clés de chaîne séparées par une virgule (par exemple,"pd1"
)
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
Compatibilité avec le chiffrement SRT
Si vous utilisez le protocole SRT pour distribuer le flux en direct à un point de terminaison distant, l'API Live Stream protège le contenu de votre flux en direct avec le chiffrement AES.
Créer la phrase secrète et préparer le serveur SRT distant
Avant de commencer, créez une phrase secrète SRT conforme au serveur SRT distant. La phrase secrète doit généralement comporter entre 10 et 79 caractères.
Assurez-vous que le processus de déchiffrement fonctionne en définissant la même phrase secrète sur le serveur SRT distant. Pour savoir comment procéder, consultez le guide de l'utilisateur du serveur SRT distant.
Ajouter la phrase secrète à Secret Manager
L'API Live Stream n'accepte ni ne gère directement la phrase secrète. Vous devez partager la phrase secrète avec l'API Live Stream via Google Secret Manager.
Vous devez effectuer toutes ces étapes avant de configurer la chaîne :
- Créez un secret avec Secret Manager.
- Configurez les autorisations Identity and Access Management sur votre secret afin que l'API Live Stream puisse accéder à son contenu. Pour ce faire, attribuez le rôle
secretmanager.secretAccessor
au compte de serviceservice-PROJECT_NUMBER@gcp-sa-livestream.iam.gserviceaccount.com
(comme pour l'accès du compte de service à vos buckets Cloud Storage). - Recherchez le nom de ressource de la version du secret que vous avez créée (par exemple,
projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/VERSION_ID
). Vous en aurez besoin pour configurer le canal.
Configurer le canal
La version secrète de la phrase secrète est spécifiée dans SrtPushOutputEndpoint
:
{
"distributions": [
{
"key": "pd1",
"distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container
"srtPush": {
"uri": "srt://{SRT_SERVER_IP}:{SRT_SERVER_PORT}?streamid={SRT_SERVER_STREAM_ID}",
"passphrase_secret_version": "projects/PROJECT_NUMBER/secrets/key1/versions/1"
}
}
]
}
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud , procédez comme suit :
Arrêter la chaîne
Utilisez la méthode projects.locations.channels.stop
pour arrêter le canal. Vous devez arrêter la chaîne avant de pouvoir la supprimer.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stop", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
Arrêter le flux d'entrée
Si vous avez utilisé ffmpeg
pour envoyer le flux d'entrée, la connexion est automatiquement interrompue une fois le canal arrêté.
Supprimer la chaîne
Utilisez la méthode projects.locations.channels.delete
pour supprimer la chaîne. Vous devez supprimer le canal avant de pouvoir supprimer le point de terminaison d'entrée utilisé par le canal.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: région où se trouve votre canal. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: identifiant défini par l'utilisateur pour le canal
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
Supprimer le point de terminaison d'entrée
Utilisez la méthode projects.locations.inputs.delete
pour supprimer le point de terminaison d'entrée.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloud . Vous le trouverez dans le champ Numéro du projet de la page Paramètres IAM.LOCATION
: emplacement de votre point de terminaison d'entrée. Utilisez l'une des régions disponibles.Afficher les emplacementsus-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: identifiant défini par l'utilisateur pour le point de terminaison d'entrée
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Vous pouvez vérifier le résultat de l'opération à l'aide du nouvel ID d'opération.
Supprimer le bucket Cloud Storage
Dans la console Google Cloud , accédez à la page du navigateur Cloud Storage.
Cochez la case à côté du bucket que vous avez créé.
Cliquez sur Supprimer.
Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer pour supprimer le bucket et son contenu.