Compartilhar via


Serviços vcr

O Windows fornece serviços vcr por meio de um driver de dispositivo baseado no conjunto de comandos MCI para VCRs. Esta seção descreve o driver VISCA (Arquitetura de Controle do Sistema de Vídeo) do MCI e explica como usá-lo para controlar um VCR.

O tipo de dispositivo vcr controla VCRs. Para obter uma lista dos comandos MCI reconhecidos por dispositivos VCR, consulte Conjunto de comandos vcr.

O driver MCI VISCA

O driver MCI VISCA controla VCRs compatíveis com o Sony VISCA, como o VDeck CVD-1000. O driver VISCA controla o transporte de fita, os sintonizadores de canal e os canais de entrada e saída do VCR.

Pesquisando e posicionando com um VCR

O driver VISCA usa dois métodos para controlar a movimentação de fita de vídeo dentro do transporte de fita VCR: informações de código de tempo e contadores de fita. Informações de código de tempo são informações de tempo que foram gravadas na fita de vídeo. A maioria dos VCRs permite que os códigos de tempo sejam gravados sem destruir faixas de áudio e vídeo. Os contadores de fitas estimam a quantidade de fitas de vídeo que passam pela cabeça da fita de vídeo para obter uma posição.

As informações de código de tempo e os contadores de fita aumentam à medida que a fita de vídeo se move do início ao fim. Devido à sua precisão, usar informações de código de tempo para posicionar uma fita de vídeo é quase sempre preferível ao uso de contadores de fita.

Os sinalizadores de comando MCI para especificar informações de posicionamento são expressos como dependências de tempo: "formato de tempo", "duração", "de", "para" e "busca". (Além disso, o comando "position" status retorna seu valor de tempo no formato de hora atual.)

O driver VISCA usa o comando " modo de tempo" definido para selecionar o tipo de posicionamento a ser usado com uma fita de vídeo. Quando o modo de hora é definido como "timecode", os comandos status "position" e set "time format" usam o código de tempo na fita de vídeo. Quando o modo de hora é definido como "contador", os comandos "position" e set "time format" do status usam contadores.

Um aplicativo pode definir o modo de tempo para "detectar" se não importa que possa haver duas fontes de informações de posição. Quando estiver no modo de detecção, o driver VISCA usará informações de código de tempo para posicionamento quando qualquer uma das seguintes condições ocorrer:

  • As informações de código de tempo estão presentes quando o driver é aberto.
  • Você altera uma fita de vídeo com o comando set "door open" e as informações de código de tempo estão presentes na fita de vídeo.
  • O comando "modo de tempo" definido é relançado.

Se informações de código de tempo não puderem ser encontradas, o driver usará os contadores de fita.

Para determinar o método de posicionamento atual, emita o comando status "tipo de hora", que retorna "timecode" ou "counter". Você também pode identificar o modo de posicionamento atual usando o comando status "modo de tempo", que retorna "timecode", "counter" ou "detect".

O comando "contador" status recupera o valor do contador de fita atual, independentemente do método de posicionamento atual; no entanto, você pode usar essa leitura de contador somente com o comando "counter" definido.

O driver VISCA pode recuperar o formato de código de tempo nativo gravado em uma fita de vídeo usando o status comandos "tipo de código de tempo" e status "taxa de quadros" juntos. Por exemplo, se o tipo de código de tempo for "smpte" e a taxa de quadros for 25, o formato de código de tempo nativo registrado na fita de vídeo será SMPTE 25.

O driver VISCA também pode recuperar a resolução do contador usando o comando status "contra resolução", que retorna "segundos" ou "quadros". O formato do contador ainda pode ser definido como SMPTE 30, mas o valor retornado retorna apenas um quadro de 0. Se o tipo de hora atual for contador, essa resolução também se aplicará ao valor retornado por status "posição".

Capturando quadros

Os comandos de captura de quadro fornecem imagens paradas para um dispositivo de captura de quadros. Um dispositivo de captura de quadros é uma parte separada do hardware capaz de ler e armazenar a imagem de vídeo. O driver VISCA dá suporte ao comando freeze (MCI_FREEZE) para estabilizar uma imagem parada para captura. Além disso, o comando unfreeze (MCI_UNFREEZE) pode ser usado para reiniciar o transporte de fita após um comando freeze .

O comando freeze fornece uma imagem de alta qualidade, estabilizada e com base no tempo – corrigida para um dispositivo de captura de quadros. Esse comando existe porque um dispositivo pode nem sempre entregar sua imagem de saída de qualidade máxima durante a reprodução ou enquanto estiver em pausa; tal imagem de vídeo não é adequada para captura.

O comando unfreeze desbloqueia o transporte de fita e retoma o modo de transporte em vigor antes do comando freeze .

Quando o aplicativo precisar gravar uma imagem de vídeo no VCR, use o comando congelar "entrada" ou o comando de indicação (MCI_CUE) para gravar a imagem.

Selecionando Entradas

O driver VISCA dá suporte a três tipos de entrada: vídeo, áudio e código de tempo. As entradas de vídeo incluem dois canais padrão (linhas 1 e 2), um canal SVideo, um canal auxiliar e um canal de um sintonizador interno. As entradas de áudio incluem dois canais padrão (linhas 1 e 2) e um canal de um sintonizador interno. A entrada de código de tempo é interna para o VCR.

As saídas normais carregam as entradas selecionadas no momento quando o VCR está gravando ou quando o transporte de fita é interrompido e carregam o conteúdo da fita de vídeo quando o transporte de fita está sendo reproduzido ou pausado. As saídas monitoradas carregam as mesmas informações que as saídas normais, além do código de tempo atual e das informações do canal.

Supondo que as entradas externas apropriadas estejam conectadas ao seu VCR e você tenha decidido o que deseja gravar, selecione as entradas a serem gravadas. Por exemplo, para gravar ou exibir do vídeo "svideo" e das entradas de áudio "linha 1", você usaria os comandos setvideo (MCI_SETVIDEO) e setaudio (MCI_SETAUDIO) para selecionar essas fontes de entrada. Você pode verificar essas seleções usando o comando status (MCI_STATUS).

Por padrão, o monitor mostra exatamente o que aparece como a saída. Às vezes, no entanto, talvez você queira exibir uma fonte durante a gravação de outra. Essa é uma prática comum usando o sintonizador. Por exemplo, talvez você queira watch canal 4 enquanto grava o canal 7. Nesse caso, você tem duas entradas de sintonizador lógico. Você pode configurar o VCR usando os seguintes comandos:

Para examinar uma fonte durante a gravação de outra

  1. Use o comando settuner (MCI_SETTUNER) para selecionar os canais a serem watch e gravar.
  2. Use o comando setvideo para selecionar a origem da gravação de vídeo.
  3. Use o comando setaudio para selecionar a origem da gravação de áudio.
  4. Use o comando setvideo para rotear a entrada de vídeo do canal 4 para a saída monitorada para exibi-la na tela.
  5. Use o comando setaudio para rotear a entrada de áudio do canal 4 para a saída monitorada para reproduzir o áudio.
  6. Verifique suas seleções usando o comando status.

O driver VISCA também dá suporte a um tipo de entrada especial para áudio e vídeo chamado mudo. Ativar mudo permite a seleção de "sem entrada", o que é útil ao gravar um sinal em branco.

Selecionando Faixas de Gravação

Existem três tipos de faixas de gravação em uma fita de vídeo: vídeo, áudio e código de tempo. Você tem apenas uma faixa de vídeo ou código de tempo, mas pode usar mais de uma faixa de áudio. Ao fazer isso, faça da faixa 1 a faixa de áudio main.

O driver VISCA dá suporte a dois modos operacionais: montar e inserir. No modo de montagem, todas as faixas são selecionadas para serem gravadas. No modo de inserção, as faixas podem ser selecionadas independentemente para gravação. A maioria dos VCRs está no modo de montagem por padrão. Use o comando set (MCI_SET) para alterar esses modos.

Gravação e edição

O comando de registro (MCI_RECORD) fornece gravação simples e é preciso para aproximadamente 1 segundo da posição inicial. Para gravar com mais precisão ou se você espera editar o conteúdo do vídeo ao operar simultaneamente vários decks, use o comando de indicação (MCI_CUE).

O comando de indicação prepara o dispositivo para gravação ou reprodução. Use o comando de indicação "entrada" para preparar o dispositivo para gravação. O comando de indicação é necessário porque um aplicativo deve saber quando o dispositivo está pronto para executar o comando (e porque pode levar vários minutos para se preparar para uma execução (MCI_PLAY) ou um comando de registro ).

O VCR se prepara para gravação ou reprodução buscando o ponto, que é a posição atual ou a posição especificada usando o comando "from". No entanto, se o sinalizador "pré-registro" for especificado com o comando de indicação , o VCR posicionará a distância de pré-registro do ponto em questão. O sinalizador "pré-registro" também indica que o VCR usa qualquer modo de edição aplicável, portanto, é importante que você use "pré-registro", especialmente quando quiser a gravação mais precisa. (Use o comando capability (MCI_GETDEVCAPS) com o sinalizador "pode pré-registrar" para marcar se o modo de pré-registro tem suporte.)

Observação

Quando você grava usando as posições "from" e "to", a posição "from" é incluída na edição e a posição "para" não é.

 

Para obter mais informações sobre gravação, consulte Gravação.

Usando o relógio durante a edição

Ao editar, talvez você queira gravar segmentos de um VCR para outro. Você pode começar a gravar em um momento específico e posicionar em um VCR enquanto outro começa a ser reproduzido ao mesmo tempo e posição especificando uma ação (reproduzir ou gravar), uma posição e um tempo para cada VCR.

Ambos os VCRs devem usar o mesmo relógio para esse tipo de edição; o relógio ajuda a sincronizar ambos os dispositivos. Você pode determinar se dois VCRs compartilham o mesmo relógio usando o comando status (MCI_STATUS) com o sinalizador "id do relógio" para consultar cada VCR. Se os números de identificação retornados pelo comando status forem iguais, os dispositivos usarão o mesmo relógio. Como um recurso compartilhado, o relógio pode ser conectado a vários VCRs. O driver VISCA dá suporte a apenas um relógio compartilhado.

Você também pode determinar a resolução do relógio usando o comando status "taxa de incremento do relógio". Esse comando retorna o número de incrementos que o relógio dá suporte por segundo. Por exemplo, se o relógio for atualizado a cada milissegundo, o comando retornará 1000 como a taxa de incremento do relógio. A vantagem de usar a taxa de incremento é que a taxa é expressa como um inteiro; caso contrário, o incremento seria um valor de ponto flutuante (de precisão única ou dupla). Como um inteiro, manipular a taxa de incremento é uma operação simples e não é suscetível a erros de arredondamento. Você pode redefinir o relógio usando o comando set (MCI_SET) com o sinalizador "clock 0" (zero).

Ao emitir um comando de reprodução (MCI_PLAY), registro (MCI_RECORD) ou busca (MCI_SEEK), você pode especificar quando o comando deve ser executado. As características dos VCRs que estão sendo usados determinam quando iniciar cada VCR. O tempo deve levar em conta a quantidade de pré-registro que cada dispositivo requer e o tempo necessário para concluir os comandos MCI usados para configurar a sessão de edição. Para fazer isso, recupere o tempo do relógio e adicione um intervalo de espera de 5 a 10 segundos. (O intervalo de espera deve ser longo o suficiente para permitir que o pré-registro e quaisquer comandos MCI pendentes terminem de ser executados.)

Para garantir que o período de espera seja longo o suficiente, coloque o comando de registro por último em seu aplicativo e marcar o tempo imediatamente antes dele. Se o intervalo for muito curto, reinicie o comando play . Como alternativa, você pode marcar o tempo imediatamente após o último comando do script para verificar se há tempo suficiente para enviar e concluir todos os comandos.