Compartilhar via


Arquitetura dos Serviços de Edição do DirectShow

[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.]

A ilustração a seguir mostra a arquitetura dos DES (Serviços de Edição do DirectShow ).

arquitetura de serviços de edição directshow

  • Linha do tempo: representa uma produção de vídeo como uma coleção de clipes de origem, transições e efeitos, organizados em um conjunto de faixas aninhadas. Para obter mais informações, consulte O modelo de linha do tempo.
  • Analisador XML: analisa o linha do tempo e gera um arquivo de saída ou lê um arquivo de entrada e gera um linha do tempo. O DES dá suporte a um formato de persistência baseado em XML.
  • Mecanismo de renderização: converte o linha do tempo em um formulário que pode ser renderizado como mídia de streaming. Por padrão, o mecanismo de renderização produz um grafo de filtro do DirectShow (consulte a próxima seção).
  • Localizador de mídia: mantém um cache de locais de elementos de mídia. Quando uma tentativa de abrir um elemento de mídia falha, o DES usa o cache para localizar o elemento, com base em um histórico de aberturas bem-sucedidas.

O linha do tempo é uma descrição abstrata de um projeto de edição de vídeo. Ele especifica os clipes de origem usados no projeto, horários de início e parada, efeitos e transições e assim por diante. No entanto, o linha do tempo não renderiza os fluxos de áudio e vídeo. Em vez disso, o mecanismo de renderização converte o linha do tempo em um grafo de filtro, para visualização ou saída de arquivo. Um aplicativo manipula o linha do tempo em vez de manipular diretamente o grafo de filtro, o que seria complicado e propenso a erros.

A tabela a seguir lista as tarefas main que um aplicativo típico de edição de vídeo executa, juntamente com as interfaces que dão suporte a cada tarefa. Seções posteriores descrevem essas tarefas e as interfaces com mais detalhes.

Tarefa Interface(s)
Construa ou modifique um linha do tempo. IAMTimeline e outras interfaces IAMTimelineXXXX
Salvar e carregar arquivos de projeto. IXml2Dex
Visualizar um projeto ou gravá-lo em um arquivo. IRenderEngine, ISmartRenderEngine

 

Além disso, um aplicativo pode executar algumas ou todas as tarefas secundárias a seguir.

Tarefa Interface(s)
Obtenha informações sobre arquivos de mídia. (Número de fluxos; formato e duração de cada fluxo.) IMediaDet
Defina propriedades em transições e efeitos. IPropertySetter
Receber notificação quando ocorrerem erros durante a renderização. IAMSetErrorLog, IAMErrorLog
Recuperar quadros de pôster. IMediaDet, ISampleGrabber

 

Introdução com os Serviços de Edição do DirectShow