Exemplo de DVApp

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

Descrição

Aplicativo de captura dv (vídeo digital).

Este exemplo demonstra como criar vários tipos de grafos de filtro para controlar as gravações de DV. Ele também mostra como executar o controle de captura, visualização, transmissão e dispositivo com uma filmadora DV.

Uso

O aplicativo DVApp dá suporte aos seguintes modos:

  • Versão prévia: renderiza o DV da filmadora para uma janela de vídeo.
  • DV para o arquivo tipo 1: captura dados DV da filmadora para um arquivo DV tipo 1.
  • Arquivo tipo 1 para DV: transmite dados de um arquivo DV tipo 1 para a filmadora.
  • DV para o arquivo tipo 2: captura dados DV da filmadora para um arquivo DV tipo 2.
  • Arquivo tipo 2 para DV: transmite dados de um arquivo DV tipo 2 para a filmadora.

Os modos de captura e transmissão também executam a versão prévia. Cada um desses modos também tem uma opção Sem Visualização , que desabilita a visualização. A captura sem visualização é mais eficiente e pode reduzir o número de quadros descartados.

O aplicativo começa no modo de visualização. Para selecionar outro modo, escolha um modo no menu Modo grafo . Para cada modo, o DVApp cria um grafo de filtro que dá suporte à funcionalidade desse modo. Para salvar o grafo como um arquivo GraphEdit (.grf), selecione Salvar Grafo em Arquivo no menu Arquivo . Saia do DVApp antes de abrir o arquivo no GraphEdit.

Para capturar em um arquivo:

  1. No menu Arquivo , escolha Definir Arquivo de Saída e insira um nome de arquivo.
  2. No menu Modo grafo , selecione um DV para o modo Arquivo (digite 1 ou tipo 2, com ou sem visualização).
  3. Clique em Gravar.
  4. Se a filmadora estiver no modo VTR, clique em Reproduzir.
  5. Para interromper a captura, clique em Parar.

Para transmitir de um arquivo para a filmadora:

  1. No menu Arquivo , clique em Definir Arquivo de Entrada e selecione um arquivo DV. O arquivo deve corresponder ao modo selecionado (tipo 1 ou tipo 2).
  2. No menu Modo grafo , selecione um modo Arquivo para DV (digite 1 ou tipo 2, com ou sem visualização).
  3. Clique em Reproduzir.
  4. Para gravar os dados em fita, clique em Gravar.
  5. Para interromper a transmissão, clique em Parar.

Se o filmador estiver no modo VTR, o usuário poderá controlar o mecanismo de transporte por meio dos botões no estilo VCR do aplicativo. Para procurar a fita, insira o código de tempo de destino e clique no botão Buscar.

Para limitar a quantidade de dados que o aplicativo captura, escolha Tamanho da Captura no menu Arquivo .

Para marcar o formato de fita (NTSC ou PAL), escolha Verificar Fita no menu Opções.

Para alterar o tamanho da janela de visualização, escolha Alterar Tamanho do Decodificado no menu Opções .

Notas de programação

A main finalidade desse aplicativo é mostrar como criar vários grafos de captura e transmissão de DV.

Chegada e remoção do dispositivo

O aplicativo manipula a chegada e a remoção do dispositivo, usando duas técnicas diferentes. Para a chegada do dispositivo, o loop de mensagem do aplicativo responde a mensagens WM_DEVICECHANGE. Para remoção do dispositivo, o aplicativo responde a eventos EC_DEVICE_LOST do gerenciador de grafo de filtro. Qualquer abordagem funciona, embora o evento EC_DEVICE_LOST dependa da existência do dispositivo no grafo de filtro.

O aplicativo manipula apenas um dispositivo por vez. Se o dispositivo atual for removido, o aplicativo procurará outro dispositivo DV no sistema.

Em algumas gravações de DV, o usuário deve desligar o dispositivo ao alterná-lo entre o modo de câmera e o modo VTR, o que dispara uma mensagem perdida pelo dispositivo. O aplicativo responde habilitando ou desabilitando os comandos de menu apropriados. No entanto, se o usuário alternar rapidamente entre os modos, o filmador poderá não gerar uma mensagem perdida pelo dispositivo. Você pode forçar a atualização dos menus escolhendo Modo de Atualização no menu Opções . Algumas filmadoras DV podem alternar modos sem desligar, mas enviar uma mensagem perdida pelo dispositivo somente quando alternam para o modo VTR.

Controle de dispositivo

A funcionalidade do botão Reproduzir e Gravar depende do modo atual:

  • Versão prévia: o grafo de filtro é executado automaticamente. O botão Reproduzir inicia o transporte.
  • Capturar para arquivo: o botão Gravar executa o grafo e o botão Reproduzir inicia o transporte.
  • Transmitir para o dispositivo: o botão Reproduzir executa o grafo e o botão Gravar inicia o transporte.

O aplicativo de exemplo não executa a captura precisa de quadro. Em vários pontos, o aplicativo chama a função Suspensão para aguardar a resposta do dispositivo. As câmeras dv mais recentes enviam uma notificação quando o estado do dispositivo é alterado. Dispositivos mais antigos podem não dar suporte à notificação; para fins de um exemplo, chamar Sleep é uma solução mais simples.

Baixar o exemplo

Para baixar os exemplos do SDK do DirectShow, instale a versão mais recente do SDK do Windows.

Este exemplo é instalado no seguinte caminho: [Raiz do SDK]\Samples\Multimídia\DirectShow\Capture\DVApp.

Controlando uma gravação de DV

Vídeo digital no DirectShow

Amostras do DirectShow