As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
GetMedia
Use essa API para recuperar conteúdo de mídia de um stream de vídeo do Kinesis. Na solicitação, você identifica o nome do stream ou o Amazon Resource Name (ARN) do stream e a parte inicial. Em seguida, o Kinesis Video Streams retorna um stream de partes em ordem por número de fragmentos.
nota
Você deve primeiro chamar a GetDataEndpoint API para obter um endpoint. Em seguida, envie as GetMedia solicitações para esse endpoint usando o parâmetro --endpoint-url.
Quando você coloca dados de mídia (fragmentos) em um stream, o Kinesis Video Streams armazena cada fragmento de entrada e metadados relacionados no que é chamado de “fragmento”. Para obter mais informações, consulte PutMedia. A GetMedia API retorna um fluxo desses fragmentos a partir do fragmento especificado na solicitação.
A GetMedia API foi projetada para operar como uma API de streaming em uma conexão de longa duração. Não se destina ao uso tradicional RESTful , em que uma nova conexão HTTP é estabelecida e fechada para cada fragmento. Quando você invoca a GetMedia API, o Kinesis Video Streams entrega fragmentos continuamente por meio de uma conexão persistente de longa duração usando a codificação de transferência fragmentada HTTP.
Os seguintes limites se aplicam ao usar a GetMedia API:
-
Um cliente pode ligar
GetMediaaté cinco vezes por segundo por stream. -
O Kinesis Video Streams envia dados de mídia a uma taxa de até 25 megabytes por segundo (ou 200 megabits por segundo) durante uma sessão.
GetMedianota
Use
GetMediacomo uma conexão de streaming de longa duração para recuperar vários fragmentos em uma única conexão persistente. Não use aGetMediaAPI da RESTful maneira tradicional em que você estabelece e fecha uma nova conexão HTTP para cada fragmento. Se você tentar mais de trêsGetMediaconexões simultâneas, o Kinesis Video Streams limitará as conexões mais recentes com um erro.ConnectionLimitExceededException
nota
O código de status da resposta GetMedia HTTP será retornado imediatamente, mas a leitura da carga útil da resposta HTTP atingirá o tempo limite após 3 segundos se não houver fragmentos ingeridos disponíveis para reprodução.
nota
Se um erro for gerado após a invocação de uma API de mídia do Kinesis Video Streams, além do código de status HTTP e do corpo da resposta, ele incluirá as seguintes informações:
-
x-amz-ErrorTypeCabeçalho HTTP — contém um tipo de erro mais específico, além do que o código de status HTTP fornece. -
x-amz-RequestIdCabeçalho HTTP — se você quiser relatar um problema AWS, a equipe de suporte poderá diagnosticar melhor o problema se receber o ID da solicitação.
Tanto o código de status HTTP quanto o ErrorType cabeçalho podem ser utilizados para tomar decisões programáticas sobre se os erros podem ser repetidos e sob quais condições, além de fornecer informações sobre quais ações o programador cliente pode precisar realizar para tentar novamente com sucesso.
Para obter mais informações, consulte a seção Erros na parte inferior deste tópico, bem como Erros comuns.
Sintaxe da Solicitação
POST /getMedia HTTP/1.1
Content-type: application/json
{
"StartSelector": {
"AfterFragmentNumber": "string",
"ContinuationToken": "string",
"StartSelectorType": "string",
"StartTimestamp": number
},
"StreamARN": "string",
"StreamName": "string"
}
Parâmetros da solicitação de URI
A solicitação não usa nenhum parâmetro de URI.
Corpo da Solicitação
A solicitação aceita os dados a seguir no formato JSON.
- StartSelector
-
Identifica a parte inicial a ser obtida do fluxo especificado.
Tipo: objeto StartSelector
Obrigatório: Sim
- StreamARN
-
O ARN do stream de onde você deseja obter o conteúdo de mídia. Se você não especificar o
streamARN, deverá especificarstreamNameo.Tipo: String
Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 1.024.
Padrão:
arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+Obrigatório: Não
- StreamName
-
O nome do stream de vídeo do Kinesis de onde você deseja obter o conteúdo de mídia. Se você não especificar o
streamName, deverá especificarstreamARNo.Tipo: String
Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 256.
Padrão:
[a-zA-Z0-9_.-]+Obrigatório: Não
Sintaxe da Resposta
HTTP/1.1 200
Content-Type: ContentType
Payload
Elementos de Resposta
Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 200.
A resposta retorna os cabeçalhos HTTP a seguir.
- ContentType
-
O tipo de conteúdo da mídia solicitada.
Restrições de Tamanho: Tamanho mínimo 1. O tamanho máximo é 128.
Padrão:
^[a-zA-Z0-9_\.\-]+$
A resposta retorna as informações a seguir como corpo HTTP.
- Payload
-
A carga que o Kinesis Video Streams retorna é uma sequência de partes do stream especificado. Para obter mais informações sobre os fragmentos, consulte. PutMedia Os trechos que o Kinesis Video Streams retorna na chamada também incluem as seguintes tags
GetMediaMatroska (MKV) adicionais:-
AWS_KINESISVIDEO_CONTINUATION_TOKEN (string UTF-8) - Caso sua
GetMediachamada seja encerrada, você pode usar esse token de continuação em sua próxima solicitação para obter a próxima parte em que a última solicitação foi encerrada. -
AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (string UTF-8) - Os aplicativos clientes podem usar esse valor de tag para determinar a distância entre o fragmento retornado na resposta e o fragmento mais recente no stream.
-
AWS_KINESISVIDEO_FRAGMENT_NUMBER - Número do fragmento retornado no pedaço.
-
AWS_KINESISVIDEO_SERVER_TIMESTAMP - Registro de data e hora do fragmento no servidor.
-
AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Registro de data e hora do fragmento do produtor.
As seguintes tags estarão presentes se ocorrer um erro:
-
AWS_KINESISVIDEO_ERROR_CODE - Descrição em cadeia de caracteres de um erro que causou GetMedia a parada.
-
AWS_KINESISVIDEO_ERROR_ID: código inteiro do erro.
Os códigos de erro são os seguintes:
-
3002 - Erro ao gravar no stream
-
4000 - O fragmento solicitado não foi encontrado
-
4500 - Acesso negado para a chave KMS do stream
-
4501 - A chave KMS do stream está desativada
-
4502 - Erro de validação na chave KMS do stream
-
4503 - A chave KMS especificada no fluxo não está disponível
-
4504 - Uso inválido da chave KMS especificada no fluxo
-
4505 - Estado inválido da chave KMS especificada no fluxo
-
4506 - Não é possível encontrar a chave KMS especificada no fluxo
-
5000 - Erro interno
-
Erros
Para obter informações sobre os erros comuns retornados pelas ações, consulte Erros comuns.
- ClientLimitExceededException
-
O Kinesis Video Streams limitou a solicitação porque você excedeu o limite permitido de chamadas de clientes. Tente fazer a ligação mais tarde.
Código de status HTTP: 400
- ConnectionLimitExceededException
-
O Kinesis Video Streams limitou a solicitação porque você excedeu o limite permitido de conexões de clientes.
Código de status HTTP: 400
- InvalidArgumentException
-
O valor desse parâmetro de entrada é inválido.
Código de status HTTP: 400
- InvalidEndpointException
-
O chamador usou o endpoint errado para gravar dados em um stream. Ao receber essa exceção, o usuário deve chamar
GetDataEndpointcomAPINameset toPUT_MEDIAe usar o endpoint from response para invocar a próximaPutMediachamada.Código de status HTTP: 400
- NotAuthorizedException
-
O chamador não está autorizado a realizar uma operação em determinado stream ou o token expirou.
Código de status HTTP: 401
- ResourceNotFoundException
-
Código de status: 404, O fluxo com o nome fornecido não existe.
Código de status HTTP: 404
Consulte também
Para obter mais informações sobre como usar essa API em uma linguagem específica AWS SDKs, consulte o seguinte: