Distribuer des diffusions en direct vers des points de terminaison distants

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 simplement rtmp://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 emplacements
    • us-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 emplacements
    • us-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 :

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 emplacements
    • us-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ée
  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé pour contenir le fichier manifeste et les fichiers de segment du flux en direct
  • SRT_SERVER_IP : adresse IP ou nom de domaine du point de terminaison distant.
  • SRT_SERVER_PORT : numéro de port du point de terminaison distant
  • SRT_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 emplacements
    • us-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ée
  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé pour contenir le fichier manifeste et les fichiers de segment du flux en direct
  • RTMP_SERVER_IP : adresse IP ou nom de domaine du point de terminaison distant.
  • RTMP_SERVER_PORT : numéro de port du point de terminaison distant
  • RTMP_APP_NAME : préfixe du chemin d'accès au nom du flux
  • RTMP_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 emplacements
    • us-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 emplacements
    • us-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 emplacements
    • us-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 emplacements
    • us-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 emplacements
    • us-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
  • DISTRIBUTION_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 emplacements
    • us-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 emplacements
    • us-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
  • DISTRIBUTION_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 :

  1. Créez un secret avec Secret Manager.
  2. 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 service service-PROJECT_NUMBER@gcp-sa-livestream.iam.gserviceaccount.com (comme pour l'accès du compte de service à vos buckets Cloud Storage).
  3. 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 emplacements
    • us-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 emplacements
    • us-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 emplacements
    • us-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

  1. Dans la console Google Cloud , accédez à la page du navigateur Cloud Storage.

    Accéder à la page du navigateur Cloud Storage

  2. Cochez la case à côté du bucket que vous avez créé.

  3. Cliquez sur Supprimer.

  4. Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer pour supprimer le bucket et son contenu.