Para desentrelaçar vídeo
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize Source Reader e Sink Writer em vez do Windows Media Format 11 SDK, 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.]
Algumas fontes de vídeo, como placas de captura de vídeo, fornecem dados de vídeo para exibição entrelaçada. Cada quadro de vídeo entrelaçado é composto por dois campos. O campo superior contém a primeira linha de vídeo e todas as outras linhas subsequentes. O campo inferior contém a segunda linha de vídeo e todas as outras linhas subsequentes. Assim, um campo contém todas as linhas pares numeradas e o outro contém todas as linhas ímpares numeradas. Os campos que compõem um quadro representam tempos de apresentação ligeiramente diferentes para que, quando intercalados, não formem uma imagem estática.
Quando você deseja exibir vídeo em um monitor de computador, cada quadro do vídeo deve ser exibido como uma imagem (este método de exibir vídeo um quadro inteiro de cada vez é chamado de progressivo vídeo.) Se você exibir vídeo entrelaçado progressivamente, os quadros podem não parecer certos, devido à diferença de tempo entre os dois campos. O codec de vídeo do Windows Media e o codec de perfil avançado de vídeo do Windows Media suportam um recurso de pré-processamento que converte conteúdo entrelaçado em quadros progressivos.
Para que o codec desentrelace o vídeo de entrada, chame o método IWMWriterAdvanced2::SetInputSetting. A configuração a ser usada é g_wszDeinterlaceMode. Defina o modo de desentrelaçamento para um dos seguintes valores.
Para conteúdo misto, defina o modo de desentrelaçamento conforme necessário antes de passar amostras de um novo tipo. Por exemplo, para iniciar a codificação com entrada progressiva, você não precisa definir nenhum modo de desentrelaçamento. Se algumas amostras exigirem desentrelaçamento normal, você deve definir o modo de desentrelaçamento como WM_DM_DEINTERLACE_NORMAL. Para então processar amostras progressivas adicionais, você deve definir o modo de desentrelaçamento como WM_DM_NOTINTERLACED.
Configurações inversas do Telecine
Para obter uma descrição do telecine inverso, consulte To Use Inverse Telecine.
Se você definir o modo de desentrelaçamento como WM_DM_DEINTERLACE_INVERSETELECINE, poderá especificar o padrão telecine do primeiro quadro de entrada chamando o IWMWriterAdvanced2::SetInputSetting. A configuração a ser usada é g_wszInitialPatternForInverseTelecine. Defina o padrão inicial para um dos seguintes valores.
Valor | Descrição |
---|---|
WM_DM_IT_DISABLE_COHERENT_MODE | Especifica que a mídia de entrada passou pelo processo do telecine, mas que os quadros não estão mais em um padrão previsível. Isso geralmente indica que a mídia foi editada após o processamento do telecine. Quando você usa essa configuração, o codec tenta reconstruir os quadros originais por conta própria. |
If it's necessary to maintain the original identifier unchanged for technical reasons, it should remain as is. If a contextual explanation is required, it could be expanded separately outside of this identifier. | Especifica que o campo superior do quadro AA é a primeira amostra. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP | Especifica que o campo superior do quadro BB é a primeira amostra. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP | Especifica que o campo superior do quadro BC é a primeira amostra. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP | Especifica que o campo superior do quadro do CD é a primeira amostra. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP | Especifica que o campo superior do quadro DD é a primeira amostra. |
O_PRIMEIRO_QUADRO_NO_CLIPÉ_É_AA_INFERIOR | Especifica que o campo inferior do quadro AA é a primeira amostra. |
WM_DM_IT_PRIMEIRO_QUADRO_EM_CLIP_É_BB_INFERIOR | Especifica que o campo inferior do quadro BB é a primeira amostra. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM | Especifica que o campo inferior do quadro BC é a primeira amostra. |
QUADRO_INICIAL_NO_CLIP_É_CD_INFERIOR | Especifica que o campo inferior do quadro do CD é a primeira amostra. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM | Especifica que o campo inferior do quadro DD é a primeira amostra. |