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