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 que você especifica na solicitação.
Os seguintes limites se aplicam ao usar a GetMedia
API:
-
Um cliente pode ligar
GetMedia
até 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.
GetMedia
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-ErrorType
Cabeçalho HTTP — contém um tipo de erro mais específico, além do que o código de status HTTP fornece. -
x-amz-RequestId
Cabeç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á especificarstreamName
o.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á especificarstreamARN
o.Tipo: string
Restrições de tamanho: tamanho mínimo 1. Comprimento 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 adicionais de
GetMedia
Matroska (MKV):-
AWS_KINESISVIDEO_CONTINUATION_TOKEN (string UTF-8) - Caso sua
GetMedia
chamada 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 bloco.
-
AWS_KINESISVIDEO_SERVER_TIMESTAMP - Timestamp do servidor do fragmento.
-
AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Carimbo de data/hora do produtor do fragmento.
As seguintes tags estarão presentes se ocorrer um erro:
-
AWS_KINESISVIDEO_ERROR_CODE - Descrição da string de um erro que causou a interrupção. GetMedia
-
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 a todas as 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
GetDataEndpoint
comAPIName
set toPUT_MEDIA
e usar o endpoint from response para invocar a próximaPutMedia
chamada.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 um dos AWS SDKs específicos da linguagem, consulte o seguinte: