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