GetMedia - Amazon Kinesis Video Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

GetMedia

Utilisez cette API pour récupérer du contenu multimédia à partir d'un flux vidéo Kinesis. Dans la demande, vous identifiez le nom du flux ou le nom Amazon Resource Name (ARN) du flux, ainsi que le segment de départ. Kinesis Video Streams renvoie ensuite un flux de segments classés par numéro de fragment.

Note

Vous devez d'abord appeler l'GetDataEndpointAPI pour obtenir un point de terminaison. Envoyez ensuite les GetMedia demandes à ce point de terminaison à l'aide du paramètre --endpoint-url.

Lorsque vous insérez des données multimédia (fragments) dans un flux, Kinesis Video Streams stocke chaque fragment entrant et les métadonnées associées dans ce que l'on appelle un « fragment ». Pour plus d'informations, consultez PutMedia. L'GetMediaAPI renvoie un flux de ces fragments à partir du segment que vous spécifiez dans la demande.

Les limites suivantes s'appliquent lors de l'utilisation de l'GetMediaAPI :

  • Un client peut appeler GetMedia jusqu'à cinq fois par seconde et par flux.

  • Kinesis Video Streams envoie des données multimédia à un débit pouvant atteindre 25 mégaoctets par seconde (ou 200 mégabits par seconde) au cours d'une session. GetMedia

Note

Le code d'état de la réponse GetMedia HTTP sera renvoyé immédiatement, mais la lecture de la charge utile de la réponse HTTP expirera au bout de 3 secondes si aucun fragment ingéré n'est disponible pour la lecture.

Note

Si une erreur est générée après avoir appelé une API multimédia Kinesis Video Streams, outre le code d'état HTTP et le corps de la réponse, elle inclut les informations suivantes :

  • x-amz-ErrorTypeEn-tête HTTP : contient un type d'erreur plus spécifique en plus de ce que fournit le code d'état HTTP.

  • x-amz-RequestIdEn-tête HTTP : si vous souhaitez signaler un problème à AWS, l'équipe d'assistance pourra mieux diagnostiquer le problème si vous lui donnez l'ID de demande.

Le code d'état HTTP et l' ErrorType en-tête peuvent être utilisés pour prendre des décisions programmatiques quant à savoir si les erreurs peuvent être réessayées et dans quelles conditions, ainsi que pour fournir des informations sur les actions que le programmeur client devra peut-être entreprendre pour réessayer avec succès.

Pour plus d'informations, consultez la section Erreurs au bas de cette rubrique, ainsi que les erreurs courantes.

Syntaxe de la demande

POST /getMedia HTTP/1.1 Content-type: application/json { "StartSelector": { "AfterFragmentNumber": "string", "ContinuationToken": "string", "StartSelectorType": "string", "StartTimestamp": number }, "StreamARN": "string", "StreamName": "string" }

Paramètres de demande URI

La demande n’utilise pas de paramètres URI.

Corps de la demande

Cette demande accepte les données suivantes au format JSON.

StartSelector

Identifie le segment de départ à obtenir à partir du flux spécifié.

Type : objet StartSelector

Obligatoire : oui

StreamARN

L'ARN du flux à partir duquel vous souhaitez obtenir le contenu multimédia. Si vous ne spécifiez pas lestreamARN, vous devez spécifier lestreamName.

Type : chaîne

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 1024.

Modèle : arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+

Obligatoire : non

StreamName

Le nom du flux vidéo Kinesis d'où vous souhaitez obtenir le contenu multimédia. Si vous ne spécifiez pas lestreamName, vous devez spécifier lestreamARN.

Type : chaîne

Contraintes de longueur : longueur minimum de 1. Longueur maximum de 256.

Modèle : [a-zA-Z0-9_.-]+

Obligatoire : non

Syntaxe de la réponse

HTTP/1.1 200 Content-Type: ContentType Payload

Eléments de réponse

Si l’action aboutit, le service renvoie une réponse HTTP 200.

La réponse renvoie les en-têtes HTTP suivants.

ContentType

Type de contenu du média demandé.

Contraintes de longueur : longueur minimum de 1. Longueur maximale de 128.

Modèle : ^[a-zA-Z0-9_\.\-]+$

La réponse renvoie ce qui suit en tant que corps HTTP.

Payload

La charge utile renvoyée par Kinesis Video Streams est une séquence de segments provenant du flux spécifié. Pour plus d'informations sur les segments, consultez PutMedia. Les segments renvoyés par Kinesis Video Streams lors de GetMedia l'appel incluent également les balises Matroska (MKV) supplémentaires suivantes :

  • AWS_KINESISVIDEO_CONTINUATION_TOKEN (chaîne UTF-8) - Si votre GetMedia appel prend fin, vous pouvez utiliser ce jeton de continuation dans votre prochaine demande pour obtenir le segment suivant où la dernière demande s'est terminée.

  • AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (chaîne UTF-8) - Les applications clientes peuvent utiliser cette valeur de balise pour déterminer la distance entre le fragment renvoyé dans la réponse et le dernier fragment du flux.

  • AWS_KINESISVIDEO_FRAGMENT_NUMBER - Numéro de fragment renvoyé dans le fragment.

  • AWS_KINESISVIDEO_SERVER_TIMESTAMP - Horodatage du fragment par le serveur.

  • AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Horodatage du producteur du fragment.

Les balises suivantes seront présentes en cas d'erreur :

  • AWS_KINESISVIDEO_ERROR_CODE - Description sous forme de chaîne d'une erreur à l'origine de l'arrêt. GetMedia

  • AWS_KINESISVIDEO_ERROR_ID : code entier de l'erreur.

Les codes d'erreur sont les suivants :

  • 3002 - Erreur lors de l'écriture dans le flux

  • 4000 - Le fragment demandé est introuvable

  • 4500 - Accès refusé pour la clé KMS du flux

  • 4501 - La clé KMS de Stream est désactivée

  • 4502 - Erreur de validation sur la clé KMS du flux

  • 4503 - La clé KMS spécifiée dans le flux n'est pas disponible

  • 4504 - Utilisation non valide de la clé KMS spécifiée dans le flux

  • 4505 - État non valide de la clé KMS spécifiée dans le flux

  • 4506 - Impossible de trouver la clé KMS spécifiée dans le flux

  • 5000 - Erreur interne

Erreurs

Pour plus d'informations sur les erreurs courantes pour toutes les actions, consultez Erreurs courantes.

ClientLimitExceededException

Kinesis Video Streams a limité le nombre de demandes car vous avez dépassé le nombre maximal d'appels clients autorisés. Essayez de passer l'appel plus tard.

Code d’état HTTP : 400

ConnectionLimitExceededException

Kinesis Video Streams a limité la demande car vous avez dépassé le nombre limite de connexions client autorisées.

Code d’état HTTP : 400

InvalidArgumentException

La valeur de ce paramètre d'entrée n'est pas valide.

Code d’état HTTP : 400

InvalidEndpointException

L'appelant a utilisé le mauvais point de terminaison pour écrire des données dans un flux. À la réception d'une telle exception, l'utilisateur doit appeler GetDataEndpoint avec APIName set to PUT_MEDIA et utiliser le point de terminaison de la réponse pour appeler le prochain PutMedia appel.

Code d’état HTTP : 400

NotAuthorizedException

L'appelant n'est pas autorisé à effectuer une opération sur le flux donné, ou le jeton a expiré.

Code d'état HTTP : 401

ResourceNotFoundException

Code d'état : 404, le flux portant le nom donné n'existe pas.

Code d’état HTTP : 404

consultez aussi

Pour plus d'informations sur l'utilisation de cette API dans l'un des AWS SDK spécifiques au langage, consultez les pages suivantes :