Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. do Source Reader e do Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize o Leitor de Origem e o Gravador de Destino em vez do SDK do Windows Media Format 11 , sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
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 próximo. Ao recuperar o formato de codec para o codec que está usando, você deve definir os seguintes valores para objetos de configuração de fluxo de vídeo.
| Valor | Descrição |
|---|---|
| Taxa de bits | Chame IWMStreamConfig::SetBitrate para definir o valor desejado. O codec de vídeo tentará comprimir a mídia para atender às suas especificações. Se os seus valores forem muito baixos, o vídeo comprimido resultante será muito degradado. |
| Janela de Memória Temporária | Chame IWMStreamConfig::SetBufferWindow para definir o valor desejado. O codec de vídeo tentará comprimir a mídia para atender às suas especificações. Se os seus valores forem muito baixos, o vídeo comprimido resultante será muito degradado. |
| WMVIDEOINFOHEADER.rcSource | O canto superior esquerdo deve ser definido como 0,0. O canto inferior direito deve ser ajustado às dimensões do quadro. Por exemplo, em um fluxo de 640x480, essas configurações seriam 0,0,640,480. |
| WMVIDEOINFOHEADER.rcTarget | Deve corresponder rcSource. |
| WMVIDEOINFOHEADER.dwBitRate | Deve corresponder à taxa de bits definida para o fluxo. |
| WMVIDEOINFOHEADER.TempoMédioPorFrame | Defina para o tempo aproximado por quadro. |
| BITMAPINFOHEADER.biWidth | Defina a largura, em pixels, do tamanho de quadro desejado. |
| BITMAPINFOHEADER.biHeight | Defina a altura, em pixels, do tamanho de quadro desejado. |
O conteúdo de vídeo não é reproduzido corretamente, a menos que seja codificado para um tamanho que seja múltiplo de quatro da largura e da altura. A exceção é o vídeo RGB não compactado, que pode ser de qualquer tamanho. Se tentar definir um tamanho que não seja um múltiplo de quatro, um dos seguintes erros será retornado pelo escritor:
- NS_E_FORMATO_DE_ENTRADA_INVÁLIDO
- NS_E_INVALID_OUTPUT_FORMAT
- NS_E_INVALIDPROFILE
Se você estiver usando codificação de taxa de bits variável, talvez seja necessário fazer outros ajustes. Para obter mais informações, consulte Configurando fluxos VBR.
Alguns codecs de vídeo do Windows Media suportam 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. Usar um nível de alta complexidade exigirá mais poder de processamento para codificação e decodificação.
Cada codec que suporta configurações de complexidade expõe as seguintes configurações que pode recuperar com o método IWMCodecInfo3::GetCodecProp.
| Cenário | Descrição |
|---|---|
| g_wszComplexityMax | O nível máximo de qualidade suportado pelo 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 suportada para o codec.
Tópicos relacionados