Instructions de CLI pour la création d’un canal IVS - Amazon IVS

Instructions de CLI pour la création d’un canal IVS

La création d'un canal avec l'AWS CLI est une option avancée et nécessite le téléchargement et la configuration de la CLI sur votre machine. Pour plus de détails, consultez le ‬Guide de l’utilisateur de l’Interface de ligne de commande AWS‭.

Suivez l'une des deux procédures ci-dessous en fonction de ce que vous souhaitez : créer un canal avec ou sans enregistrement.

Créer un canal sans enregistrement

  1. Exécutez la commande create-channel et renseignez un nom (facultatif).

    aws ivs create-channel --name test-channel
  2. Cela renvoie un nouveau canal.

    { "channel": { "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "authorized": false, "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", "insecureIngest": false, "latencyMode": "LOW", "name": "channel-live", "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/abcdABCDefgh", "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", "recordingConfigurationArn": "none", "srt": { "endpoint": "a1b2c3d4e5f6.srt.live-video.net", "passphrase: "ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ", }, "tags": {}, "type": "STANDARD" }, "streamKey": { "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6", "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "tags": {}, "value": "sk_us-west-2_abcdABCDefgh_567890abcdef" } }
  3. Important : notez les valeurs ingestEndpoint, streamKey value et playbackUrl. Elles vous seront utiles pour configurer le streaming et la lecture.

Créer un canal avec enregistrement

Prérequis : avant de commencer cette procédure, créez un compartiment Amazon S3 et notez l'ARN. Consultez Mise en route avec Amazon S3. Le compartiment S3 doit se trouver dans la même région que la configuration d'enregistrement. Prenez connaissance du problème rencontré à l'étape 1 ci-dessous.

Suivez ensuite ces étapes pour créer le canal :

  1. Exécutez la commande create-recording-configuration et renseignez l’ARN d’un compartiment Amazon S3 existant :

    aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=test-bucket}

    Vous pouvez également passer le paramètre thumbnail-configuration pour définir manuellement le mode d’enregistrement des miniatures et l’intervalle entre les miniatures :

    aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=s3_bucket_name} --thumbnail-configuration recordingMode="INTERVAL",targetIntervalSeconds=60

    Si vous le souhaitez, transmettez le paramètre recording-reconnect-window-seconds permettant d'activer la fonctionnalité de fusion de flux fragmentés :

    aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=test-bucket} --recording-reconnect-window-seconds 60

    Problème connu : dans la région us-east-1, si vous utilisez l'AWS CLI pour créer une configuration d'enregistrement, cela fonctionne même si le compartiment S3 se trouve dans une autre région. Le cas échéant, la valeur state de la configuration d'enregistrement est la suivante : CREATE_FAILED (et non ACTIVE). (Dans d'autres régions, la CLI bloque l'action si le compartiment est dans une autre région.)

    Solution de contournement : assurez-vous que votre compartiment S3 se trouve dans la même région que la configuration d'enregistrement. Si vous créez une configuration d’enregistrement dans une autre région que votre compartiment S3, supprimez-la et créez-en une nouvelle avec un compartiment S3 dans la bonne région.

  2. Cette action renvoie une nouvelle configuration d’enregistrement avec un ARN unique. La configuration d’enregistrement affiche le statut « CREATING », ce qui signifie qu’elle est en cours de création.

    { "recordingConfiguration": { "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te", "name": "configuration-1", "destinationConfiguration": { "s3": { "bucketName": "s3_bucket_name" } }, "recordingReconnectWindowSeconds": 60, "state": "CREATING", "tags": {}, "thumbnailConfiguration": { "recordingMode": "INTERVAL", "targetIntervalSeconds": 60 } } }
  3. La création d’une configuration d’enregistrement ne prend que quelques secondes, mais cela peut aller jusqu’à 20 secondes. Pour vérifier que la configuration d’enregistrement a été créée, exécutez la commande get-recording-configuration :

    aws ivs get-recording-configuration --arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
  4. Cette action renvoie une réponse indiquant que la configuration d’enregistrement a été créée (state est ACTIVE) :

    { "recordingConfiguration": { "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te", "name": "configuration-1", "destinationConfiguration": { "s3": { "bucketName": "s3_bucket_name" } }, "recordingReconnectWindowSeconds": 60, "state": "ACTIVE", "tags": {}, "thumbnailConfiguration": { "recordingMode": "INTERVAL", "targetIntervalSeconds": 60 } } }
  5. Pour créer un canal et activer l’enregistrement sur ce dernier, exécutez la commande create-channel et indiquez l’ARN de configuration d’enregistrement :

    aws ivs create-channel --name channel-live --recording-configuration-arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"

    De la même façon, pour activer l’enregistrement sur un canal existant, exécutez la commande update-channel et indiquez l’ARN de configuration d’enregistrement :

    aws ivs update-channel --arn "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh" --recording-configuration-arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
  6. Cette action renvoie un objet de canal pour recordingConfigurationArn avec une autre valeur que « Aucun », indiquant que l'enregistrement est activé. (La réponse ci-dessous provient de create-channel. La réponse update-channel n’inclut pas l’objet streamKey.)

    { "channel": { "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "authorized": false, "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", "insecureIngest": false, "latencyMode": "LOW", "name": "channel-live", "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te", "srt": { "endpoint": "a1b2c3d4e5f6.srt.live-video.net", "passphrase: "ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ", }, "tags": {}, "type": "STANDARD" }, "streamKey": { "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6", "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "tags": {}, "value": "sk_us-west-2_abcdABCDefgh_567890abcdef" } }
  7. Important : notez les valeurs ingestEndpoint, streamKey value et playbackUrl. Elles vous seront utiles pour configurer le streaming et la lecture.