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'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 plus d'informations, consultez PutMedia. L'GetMedia
API 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'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 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-ErrorType
En-tête HTTP : contient un type d'erreur plus spécifique en plus de ce que fournit le code d'état HTTP. -
x-amz-RequestId
En-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 le
streamARN
, 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 le
streamName
, 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
avecAPIName
set toPUT_MEDIA
et utiliser le point de terminaison de la réponse pour appeler le prochainPutMedia
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 :