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:
- No menu Arquivo , escolha Definir Arquivo de Saída e insira um nome de arquivo.
- No menu Modo grafo , selecione um DV para o modo Arquivo (digite 1 ou tipo 2, com ou sem visualização).
- Clique em Gravar.
- Se a filmadora estiver no modo VTR, clique em Reproduzir.
- Para interromper a captura, clique em Parar.
Para transmitir de um arquivo para a filmadora:
- 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).
- No menu Modo grafo , selecione um modo Arquivo para DV (digite 1 ou tipo 2, com ou sem visualização).
- Clique em Reproduzir.
- Para gravar os dados em fita, clique em Gravar.
- 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.
Tópicos relacionados