Compartilhar via


Configurando fluxos de vídeo

Os fluxos de vídeo são mais flexíveis em sua configuração do que os fluxos de áudio. Isso ocorre porque as propriedades dos quadros que compõem o vídeo podem variar muito de um arquivo para o outro. Ao recuperar o formato codec para o codec que você está usando, você deve definir os valores a seguir para objetos de configuração de fluxo de vídeo.

Valor Descrição
Taxa de bits Chame IWMStreamConfig::SetBitrate para definir como o valor desejado. O codec de vídeo tentará compactar a mídia para atender às suas especificações. Se os valores forem muito baixos, o vídeo compactado resultante será muito degradado.
Janela de buffer Chame IWMStreamConfig::SetBufferWindow para definir como o valor desejado. O codec de vídeo tentará compactar a mídia para atender às suas especificações. Se os valores forem muito baixos, o vídeo compactado resultante será muito degradado.
WMVIDEOINFOHEADER.rcSource O canto superior esquerdo deve ser definido como 0,0. O canto inferior direito deve ser definido para as dimensões de quadro. Por exemplo, em um fluxo 640x480, essas configurações seriam 0,0.640.480.
WMVIDEOINFOHEADER.rcTarget Deve corresponder a rcSource.
WMVIDEOINFOHEADER.dwBitRate Deve corresponder à taxa de bits definida para o fluxo.
WMVIDEOINFOHEADER. AvgTimePerFrame Defina como o tempo aproximado por quadro.
BITMAPINFOHEADER.biWidth Defina como a largura, em pixels, do tamanho do quadro desejado.
BITMAPINFOHEADER.biHeight Defina como a altura, em pixels, do tamanho do quadro desejado.

 

O conteúdo do vídeo não é reproduzido corretamente, a menos que seja codificado para um tamanho que seja um múltiplo de quatro para largura e altura. A exceção é um vídeo RGB descompactado, que pode ter qualquer tamanho. Se você tentar definir um tamanho que não seja um múltiplo de quatro, um dos seguintes erros será retornado pelo gravador:

  • NS_E_INVALID_INPUT_FORMAT
  • NS_E_INVALID_OUTPUT_FORMAT
  • NS_E_INVALIDPROFILE

Se você estiver usando a codificação de taxa de bits variável, talvez seja necessário fazer outros ajustes. Para obter mais informações, consulte Configurando fluxos de VBR.

Alguns codecs do Windows Media Video dão suporte a vários níveis de complexidade. Os níveis de complexidade determinam os algoritmos que o codec usará ao codificar um fluxo de vídeo. O uso de um nível de alta complexidade exigirá mais poder de processamento para codificação e decodificação.

Cada codec que dá suporte a configurações de complexidade expõe as seguintes configurações que você pode recuperar com o método IWMCodecInfo3::GetCodecProp .

Configuração Descrição
g_wszComplexityMax O nível máximo de qualidade compatível com o codec.
g_wszComplexityOffline O nível de qualidade sugerido para reprodução offline.
g_wszComplexityLive O nível de qualidade sugerido para reprodução de streaming.

 

Para definir a complexidade de um fluxo de vídeo em um perfil, use o método IWMPropertyVault::SetProperty usando a propriedade g_wszComplexity. O valor definido deve ser menor ou igual à complexidade máxima com suporte para o codec.

Configuração comum a todos os fluxos

Configurando fluxos

Configurações de complexidade de vídeo