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.
Tópicos relacionados