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-le 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 de ressource Amazon (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 le GetDataEndpoint API 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 de plus amples informations, veuillez consulter PutMedia. Le GetMedia API renvoie un flux de ces fragments à partir du morceau que vous spécifiez dans la demande.

GetMediaAPIIl est conçu pour fonctionner comme un streaming API sur une connexion de longue durée. Il n'est pas destiné à être utilisé de RESTful manière traditionnelle, lorsqu'une nouvelle HTTP connexion est établie et fermée pour chaque fragment. Lorsque vous utilisez le GetMediaAPI, utilisez le codage de transfert HTTP fragmenté pour envoyer des fragments en continu via une connexion persistante.

Les limites suivantes s'appliquent lors de l'utilisation du GetMedia API :

  • 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 GetMedia HTTP réponse sera renvoyé immédiatement, mais la lecture de la charge utile de HTTP réponse 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 invoqué un API média Kinesis Video Streams, outre le code d'état et HTTP le corps de la réponse, elle inclut les informations suivantes :

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

  • x-amz-RequestIdHTTPen-tête : si vous souhaitez signaler un problème à AWS, l'équipe d'assistance peut mieux diagnostiquer le problème si elle reçoit l'identifiant de demande.

Le code d'HTTPétat 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 requête

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

URIParamètres de demande

La demande n'utilise aucun URI paramètre.

Corps de la requête

La demande accepte les données suivantes au JSON format suivant.

StartSelector

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

Type : objet StartSelector

Obligatoire : oui

StreamARN

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

Type : String

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 : String

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 HTTP en-têtes 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 le HTTP corps suivant.

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 MKV Matroska () 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 segment renvoyé dans la réponse et le dernier segment du flux.

  • AWS_KINESISVIDEO_FRAGMENT_NUMBER - Numéro du fragment renvoyé dans le bloc.

  • 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 GetMedia de l'arrêt.

  • 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 KMS clé du stream

  • 4501 - La KMS clé du stream est désactivée

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

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

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

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

  • 4506 - Impossible de trouver la KMS clé 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é la demande car vous avez dépassé le nombre maximal d'appels clients autorisés. Essayez de passer l'appel plus tard.

HTTPCode de statut : 400

ConnectionLimitExceededException

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

HTTPCode de statut : 400

InvalidArgumentException

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

HTTPCode de statut : 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.

HTTPCode de statut : 400

NotAuthorizedException

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

HTTPCode de statut : 401

ResourceNotFoundException

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

HTTPCode de statut : 404

consultez aussi

Pour plus d'informations sur son utilisation API dans l'une des langues spécifiques AWS SDKs, consultez ce qui suit :