Sobre os Mecanismos de Renderização

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando 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.]

[Essa API não tem suporte e pode ser alterada ou indisponível no futuro.]

Este artigo descreve como o DirectShow Editing Services (DES) renderiza um projeto de edição de vídeo.

No DES, um projeto é representado como um linha do tempo. O linha do tempo é útil porque simplifica as tarefas mais comuns na edição de vídeo, como reorganizar clipes de origem e adicionar efeitos de vídeo. A arquitetura de fluxo do DirectShow, por outro lado, requer um grafo de filtro. Portanto, para renderizar seu projeto, você deve converter um linha do tempo em um grafo de filtro. O componente que faz isso é chamado de mecanismo de renderização. O DirectShow fornece dois mecanismos de renderização:

  • Mecanismo de renderização básico: cria um grafo de filtro que fornece saída descompactada.
  • Mecanismo de renderização inteligente: cria um grafo de filtro que fornece saída compactada.

O mecanismo de renderização inteligente usa recompactação inteligente para melhorar o desempenho. Com a recompactação inteligente, os arquivos de origem são recompactados somente quando o formato de arquivo original difere do formato de saída final. Se os formatos corresponderem, a origem nunca será descompactada. A recompactação inteligente tem suporte apenas para compactação de vídeo, não para compactação de áudio.

Para visualização, use o mecanismo de renderização básico. O mecanismo de renderização inteligente também pode ser visualizado, mas de forma menos eficiente porque precisa descompactar o fluxo compactado. Para gravar arquivos, use o mecanismo de renderização inteligente se quiser recompactação inteligente. Caso contrário, use o mecanismo de renderização básico. A recompactação inteligente pode reduzir consideravelmente o tempo necessário para gravar o arquivo.

Importante

Não use o mecanismo de renderização inteligente para ler ou gravar arquivos do Windows Media.

 

Importante

Ambos os mecanismos de renderização criam uma janela invisível que processa mensagens. O thread que cria o mecanismo de renderização deve ter um loop de mensagem para enviar mensagens. Além disso, esse thread não deve sair até que o Mecanismo de Renderização e o Gerenciador do Grafo de Filtro sejam lançados. Caso contrário, o aplicativo poderá ficar em deadlock.

 

Construindo o grafo de filtro

O grafo de filtro é criado em dois estágios. No primeiro estágio, o mecanismo de renderização constrói um "front-end", que é um grafo de filtro parcial. O diagrama a seguir ilustra um front-end típico:

front-end do grafo de filtro

Os subsistemas contêm vários filtros especializados, que o mecanismo de renderização monta automaticamente. O front-end contém um pino de saída para cada grupo no linha do tempo. Os pinos de saída fornecem dados descompactados se você usar o mecanismo de renderização básico ou dados compactados se você usar o mecanismo de renderização inteligente.

Na segunda etapa, os pinos de saída estão conectados aos filtros de renderização. Para visualização, os filtros de renderização são renderizadores de áudio e vídeo. Para gravação de arquivo, os filtros de renderização são filtros multiplexer (mux) e filtros de gravador de arquivos.

concluindo o grafo de filtro

Visualizando um projeto

Gravando um projeto em um arquivo