Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Estruturas de transmissão de vídeo do Kinesis

Modo de foco
Estruturas de transmissão de vídeo do Kinesis - Amazon Kinesis Video Streams

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á.

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á.

Você pode usar as estruturas a seguir para fornecer dados a uma instância de um stream de vídeo do Kinesis.

StreamDefinition/StreamInfo

O objeto StreamDefinition na camada C++ encapsula o objeto StreamInfo no Platform Independent Code (PIC - Código independente de plataforma) e fornece alguns valores padrão no construtor.

Campos de membros

Campo Tipo de dados Descrição Valor padrão
stream_name string Nome de stream opcional. Para obter mais informações sobre o tamanho do nome do streaming, consulte SDKQuotas de produção. Cada stream deve ter um nome exclusivo. Se nenhum nome for especificado, ele será gerado aleatoriamente.
retention_period duration<uint64_t, ratio<3600>> O período de retenção do streaming em segundos. Especificar 0 indica que não há retenção. 3.600 (uma hora)
tags const map<string, string>* Um mapa de pares de chave-valor que contêm as informações do usuário. Se o streaming já tiver um conjunto de tags, as novas tags serão acrescentadas ao conjunto de tags existente. Sem tags
kms_key_id string O ID da AWS KMS chave a ser usado para criptografar o fluxo. Para obter mais informações, consulte Proteção de dados no Kinesis Video Streams. A KMS chave padrão (aws/kinesisvideo.)
tipo de streaming Enumeração STREAMING_TYPE O único valor aceito é STREAMING_TYPE_REALTIME.
tipo de conteúdo string O formato do conteúdo do stream. O console do Kinesis Video Streams pode reproduzir conteúdo video/h264 no formato. video/h264
latência máxima duration<uint64_t, milli> A latência máxima em milissegundos para o stream. O retorno de chamada de pressão de latência de streaming (se especificado) será chamado quando a duração do buffer exceder esse intervalo. A especificação de 0 indica que nenhum retorno de pressão de latência de stream será chamado. milliseconds::zero()
fragment_duration duration<uint64_t> A duração do fragmento desejada, em segundos. Esse valor é usado juntamente com o valor de key_frame_fragmentation. Se esse valor forfalse, o Kinesis Video Streams gerará fragmentos em um quadro-chave após o término dessa duração. Por exemplo, um fluxo de áudio Advanced Audio Coding (AAC) tem cada quadro como quadro-chave. A especificação de key_frame_fragmentation = false fará com que a fragmentação aconteça em um quadro chave após o término desse período, resultando em fragmentos de dois segundos. 2
escala de código de hora duration<uint64_t, milli> A escala do MKV timecode em milissegundos, que especifica a granularidade dos timecodes para os quadros dentro do cluster. MKV O timecode do MKV quadro é sempre relativo ao início do cluster. MKVusa um valor assinado de 16 bits (0-32767) para representar o timecode dentro do cluster (fragmento). Verifique se o timecode do quadro pode ser representado com a escala de timecode fornecida. O valor padrão da escala do timecode de 1 ms garante que o maior quadro que pode ser representado seja 32767 ms ~= 32 segundos. Isso está acima da duração máxima de fragmentos especificada em Cotas do serviço Amazon Kinesis Video Streams, que é 10 segundos. 1
key_frame_fragmentation bool Se fragmentos devem ser produzidos em um quadro chave. Setrue, o SDK produz um início do fragmento toda vez que há um quadro-chave. Sefalse, o Kinesis Video Streams espera pelo menos e produz um novo fragmento fragment_duration no quadro-chave que o segue. true
frame_timecodes bool Determina se usará códigos de hora de quadros ou gerará carimbos de hora usando o retorno de hora atual. Muitos codificadores não produzem time stamps com os quadros. Portanto, especificar false esse parâmetro garante que os quadros tenham um registro de data e hora à medida que são inseridos no Kinesis Video Streams. true
absolute_fragment_times bool O Kinesis Video MKV Streams usa como mecanismo de empacotamento subjacente. A MKV especificação é estrita quanto aos timecodes de frame serem relativos ao início do cluster (fragmento). No entanto, os timecodes do cluster podem ser absolutos ou relativos em relação à hora de início do streaming. Se os timestamps forem relativos, a API chamada de PutMedia serviço usará o timestamp opcional de início do stream e ajustará os timestamps do cluster. O serviço sempre armazena os fragmentos com seus carimbos de data e hora absolutos. true
fragment_acks bool Se deve receber um fragmento no nível do aplicativo ACKs (confirmações). true, o que significa que eles SDK receberão o ACKs e agirão de acordo.
restart_on_error bool Determina se será reiniciado em erros específicos. true, o que significa que SDK ele tenta reiniciar o streaming se ocorrer algum erro.
recalculate_metrics bool Se as métricas devem ser recalculadas. Cada chamada para recuperar as métricas pode recalculá-las para obter o valor “em execução” mais recente, o que pode criar um pequeno impacto. CPU Talvez seja necessário configurá-lo para dispositivos de false baixo/consumo de energia para poupar os ciclos. CPU Caso contrário, não recomendamos o false uso desse valor. true
nal_adaptation_flags uint32_t

Especifica os sinalizadores de adaptação da unidade Network Abstraction Layer (NALU). Se o fluxo de bits for codificado em H.264, ele poderá ser processado como bruto ou empacotado. NALUs Eles estão no formato Anexo-B ou AVCC no formato. A maioria dos produtores e consumidores de streams elementares (codificadores e decodificadores de leitura) usa o formato Annex-B porque ele tem vantagens, como recuperação de erros. Os sistemas de nível superior usam o AVCC formato, que é o formato padrão paraMPEG, HLSDASH, e assim por diante. A reprodução do console usa o navegador MSE (extensões de fonte de mídia) para decodificar e reproduzir o stream que usa o AVCC formato. Para H.264 (e para M- JPEG e H.265), ele fornece recursos de adaptação. SDK

Muitos streams elementares estão no seguinte formato. Neste exemplo, Ab é o código de início do Annex-B (001 ou 0001).

Ab(Sps)Ab(Pps)Ab(I-frame)Ab(P/B-frame) Ab(P/B-frame)…. Ab(Sps)Ab(Pps)Ab(I-frame)Ab(P/B-frame) Ab(P/B-frame)

No caso do H.264, os dados privados do codec (CPD) estão nos parâmetros (conjunto de parâmetros de sequência) e PPS (conjunto de parâmetros de imagem) e podem ser adaptados ao formato. SPS AVCC A menos que o pipeline de mídia forneça CPD separadamente, o aplicativo pode extraí-las CPD do quadro. Ele pode fazer isso procurando o primeiro IDR quadro (que deve conter o SPS ePPS), extrair os dois NALUs (que estãoAb(Sps)Ab(Pps)) e colocá-lo no CPD inStreamDefinition.

Para obter mais informações, consulte Referência do sinalizador de adaptação da Network Abstraction Layer (NAL).

O padrão é adaptar o formato Annex-B ao AVCC formato dos dados do quadro e dos dados privados do codec.
frame_rate uint32_t A taxa de quadros esperada. Esse valor é usado para calcular melhor as necessidades de armazenamento em buffer. 25
avg_bandwidth_bps uint32_t A largura de banda média esperada para o stream. Esse valor é usado para calcular melhor as necessidades de armazenamento em buffer. 4 * 1024 * 1024
buffer_duration duration<uint64_t> A duração do buffer de streaming, em segundos. SDKMantém os quadros no armazenamento de conteúdo por atébuffer_duration, após o qual os quadros anteriores são eliminados à medida que a janela avança. Se o quadro que está sendo eliminado não tiver sido enviado para o back-end, o retorno de chamada do quadro descartado será chamado. Se a duração atual do buffer for maior que max_latency, o retorno de chamada de pressão de latência do streaming será chamado. O buffer é reduzido para o próximo início do fragmento quando o fragmento persistido é recebido. ACK Isso indica que o conteúdo foi persistido de forma durável na nuvem, de forma que o armazenamento do conteúdo no dispositivo local não é mais necessário. 120
replay_duration duration<uint64_t> A duração, em segundos, para reverter o leitor atual para reproduzir durante um erro, se a reinicialização estiver ativada. A reversão é interrompida no início do buffer (caso tenha acabado de iniciar a transmissão ou tenha surgido a persistênciaACK). A reversão tenta atingir um quadro chave que indica o início de um fragmento. Se o erro “causando a reinicialização” não for indicativo de um host inativo (o host ainda está ativo e contém os dados do quadro em seus buffers internos), a reversão é interrompida no último quadro recebido. ACK Em seguida, ele avança para o próximo quadro chave, pois o fragmento inteiro já está armazenado na memória do host. 40
connection_staleness duration<uint64_t> O tempo, em segundos, após o qual o retorno de chamada de inatividade do stream é chamado se SDK não receber o buffer. ACK Isso indica que os quadros estão sendo enviados do dispositivo, mas o back-end não os reconhece. Essa condição indica uma conexão rompida no salto intermediário ou no load balancer. 30
codec_id string O ID do codec para a MKV faixa. V_MPEG4/ISO/AVC
track_name string O nome da MKV faixa. kinesis_video
codecPrivateData unsigned char* O buffer de dados privados (CPD) do codec. Se o canal de mídia tiver as informações sobre CPD antes do início da transmissão, ele poderá ser configuradoStreamDefinition.codecPrivateData. Os bits são copiados, e o buffer pode ser reutilizado ou liberado depois que a chamada criar o streaming. No entanto, se os dados não estiverem disponíveis quando o fluxo for criado, eles poderão ser definidos em uma das sobrecargas da KinesisVideoStream.start(cpd) função. null
codecPrivateDataTamanho uint32_t O tamanho do buffer dos dados privados do codec. 0

ClientMetrics

O ClientMetricsobjeto é preenchido por meio de uma chamadagetKinesisVideoMetrics.

Campos de membros

Campo Tipo de dados Descrição
version UINT32 A versão da estrutura, definida na macro CLIENT_METRICS_CURRENT_VERSION.
contentStoreSize UINT64 O tamanho total em bytes do armazenamento de conteúdo. Esse é o valor especificado em DeviceInfo.StorageInfo.storageSize.
contentStoreAvailableTamanho UINT64 Tamanho atual do armazenamento disponível em bytes.
contentStoreAllocatedTamanho UINT64 Tamanho atual alocado. Os tamanhos alocados mais os tamanhos disponíveis devem ser um pouco menores que o tamanho total do armazenamento, devido à contabilidade interna e à implementação do armazenamento de conteúdo.
totalContentViewsTamanho UINT64 O tamanho da memória alocada para todas as visualizações de conteúdo de todos os streams. Isso não é contabilizado em relação ao tamanho do armazenamento. Essa memória é alocada usando a macro MEMALLOC, que pode ser substituída para fornecer um alocador personalizado.
totalFrameRate UINT64 A taxa de quadros total observada em todos os streams.
totalTransferRate UINT64 A taxa de stream total observada em bytes por segundo em todos os streams.

StreamMetrics

O StreamMetricsobjeto é preenchido por meio de uma chamadagetKinesisVideoMetrics.

Campos de membros

Campo Tipo de dados Descrição
version UINT32 A versão da estrutura, definida na macro STREAM_METRICS_CURRENT_VERSION.
currentViewDuration UINT64 A duração dos quadros acumulados. No caso de rede rápida, essa duração é zero ou a duração do quadro (à medida que o quadro está sendo transmitido). Se a duração for maior do que a max_latency especificada noStreamDefinition, o retorno de chamada de latência do stream será chamado se for especificado. A duração é especificada em unidades de 100 ns, que é a unidade de tempo padrão para a PIC camada.
overallViewDuration UINT64 A duração geral da visualização. Se o stream for configurado sem nenhuma ACKs ou com persistência, esse valor aumentará à medida que os quadros forem inseridos no stream de vídeo do Kinesis e se tornarão iguais aos buffer_duration do. StreamDefinition Quando ACKs estão habilitados e o persistente ACK é recebido, o buffer é reduzido para o próximo quadro-chave. Isso ocorre porque o ACK timestamp indica o início de todo o fragmento. A duração é especificada em unidades de 100 ns, que é a unidade de tempo padrão para a PIC camada.
currentViewSize UINT64 O tamanho em bytes do buffer atual.
overallViewSize UINT64 O tamanho geral da visualização em bytes.
currentFrameRate UINT64 A taxa de quadros observada para o stream atual.
currentTransferRate UINT64 A taxa de transferência observada em bytes por segundo para o stream atual.
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.