Compartir a través de


Servicios VCR

Windows proporciona servicios de VCR a través de un controlador de dispositivo basado en el conjunto de comandos de MCI para VCR. En esta sección se describe el controlador MCI Video System Control Architecture (VISCA) y se explica cómo usarlo para controlar un VCR.

El tipo de dispositivo vcr controla los VCR. Para obtener una lista de los comandos de MCI reconocidos por los dispositivos VCR, consulte Conjunto de comandos de VCR.

Controlador VISCA de MCI

El controlador MCI VISCA controla los VCR compatibles con VISCA de Sony, como el CVD-1000 VDeck. El controlador VISCA controla el transporte de cintas, los tuners de canal y los canales de entrada y salida de VCR.

Búsqueda y posicionamiento con un VCR

El controlador VISCA usa dos métodos para realizar un seguimiento del movimiento de videotape dentro del transporte de cinta VCR: información de código de tiempo y contadores de cinta. La información del código de tiempo es la información de tiempo que se ha grabado en la cinta de vídeo. La mayoría de los VCR permiten grabar códigos de tiempo sin destruir pistas de audio y vídeo. Los contadores de cinta calculan la cantidad de videotape que viaja más allá de la cabeza de video para obtener una posición.

Tanto la información de código de tiempo como los contadores de cinta aumentan a medida que la cinta de vídeo se mueve de principio a fin. Debido a su precisión, el uso de información de código de tiempo para colocar una cinta de vídeo casi siempre es preferible usar contadores de cinta.

Las marcas de comandos de MCI para especificar información de posicionamiento se expresan como dependencias de tiempo: "formato de hora", "duración", "de", "a" y "seek". (Además, el comando status "position" devuelve su valor de hora en el formato de hora actual).

El controlador VISCA usa el comando set "time mode" (modo de tiempo) para seleccionar el tipo de posicionamiento que se va a usar con una cinta de vídeo. Cuando el modo de hora se establece en "timecode", los comandos de estado "position" y set "time format" usan el código de tiempo en la cinta de vídeo. Cuando el modo de hora se establece en "counter", los comandos de estado "position" y set "time format" usan contadores.

Una aplicación puede establecer el modo de tiempo para "detectar" si no importa que haya dos orígenes de información de posición. Cuando está en modo de detección, el controlador VISCA usa información de código de tiempo para colocar cuando se produce alguna de las condiciones siguientes:

  • La información del código de tiempo está presente cuando se abre el controlador.
  • Cambia una cinta de vídeo con el comando "door open" y la información del código de tiempo está presente en la cinta de vídeo.
  • Se vuelve a emitir el comando set "time mode".

Si no se encuentra información de código de tiempo, el controlador usa los contadores de cinta.

Para determinar el método de posicionamiento actual, emita el comando status "time type", que devuelve "timecode" o "counter". También puede identificar el modo de posicionamiento actual mediante el comando de estado "modo de tiempo", que devuelve "timecode", "counter" o "detect".

El comando status "counter" recupera el valor actual del contador de cinta, independientemente del método de posicionamiento actual; sin embargo, puede usar esta lectura de contador solo con el comando set "counter".

El controlador VISCA puede recuperar el formato de código de tiempo nativo grabado en una cinta de vídeo mediante el estado "tipo de código de tiempo" y los comandos de estado "velocidad de fotogramas" juntos. Por ejemplo, si el tipo de código de tiempo es "smpte" y la velocidad de fotogramas es 25, el formato de código de tiempo nativo grabado en la cinta de vídeo es SMPTE 25.

El controlador VISCA también puede recuperar la resolución de contadores mediante el comando status "counter resolution", que devuelve "seconds" o "frames". Es posible que el formato de contador siga estando establecido en SMPTE 30, pero el valor devuelto devuelve solo un marco de 0. Si el tipo de hora actual es contador, esta resolución también se aplica al valor devuelto por el estado "position".

Capturar fotogramas

Los comandos de captura de fotogramas proporcionan imágenes fijas para un dispositivo de captura de fotogramas. Un dispositivo de captura de fotogramas es un elemento independiente de hardware capaz de leer y almacenar la imagen de vídeo. El controlador VISCA admite el comando inmovilizar (MCI_FREEZE) para estabilizar una imagen fija para la captura. Además, el comando unfreeze (MCI_UNFREEZE) se puede usar para reiniciar el transporte de cintas después de un comando de inmovilización .

El comando freeze proporciona una imagen de alta calidad, estabilizada y de base temporal, corregida para un dispositivo de captura de fotogramas. Este comando existe porque es posible que un dispositivo no siempre entregue su imagen de salida de máxima calidad durante la reproducción o mientras está en pausa; este tipo de imagen de vídeo no es adecuado para la captura.

El comando unfreeze desbloquea el transporte de cintas y reanuda el modo de transporte en vigor antes del comando freeze .

Cuando la aplicación necesite grabar una imagen de vídeo en el VCR, use el comando inmovilizar "input" o el comando cue (MCI_CUE) para grabar la imagen.

Selección de entradas

El controlador VISCA admite tres tipos de entrada: vídeo, audio y código de tiempo. Las entradas de vídeo incluyen dos canales estándar (líneas 1 y 2), un canal SVideo, un canal auxiliar y un canal desde un tuner interno. Las entradas de audio incluyen dos canales estándar (líneas 1 y 2) y un canal de un sintonizador interno. La entrada del código de tiempo es interna para el VCR.

Las salidas normales transportan las entradas seleccionadas actualmente cuando el VCR está grabando o cuando se detiene el transporte de cinta, y llevan el contenido de la cinta cuando el transporte de cinta se está reproduciendo o pausando. Las salidas supervisadas llevan la misma información que las salidas normales más el código de tiempo actual y la información del canal.

Suponiendo que las entradas externas adecuadas están conectadas a su VCR y ha decidido lo que desea registrar, puede seleccionar las entradas que se van a registrar. Por ejemplo, para grabar o ver desde el vídeo "svideo" y las entradas de audio "línea 1", usaría los comandos setvideo (MCI_SETVIDEO) y setaudio (MCI_SETAUDIO) para seleccionar estos orígenes de entrada. Puede comprobar estas selecciones mediante el comando status (MCI_STATUS).

De forma predeterminada, el monitor muestra exactamente lo que aparece como salida. A veces, sin embargo, es posible que quiera ver un origen mientras se graba desde otro. Se trata de una práctica común mediante el afinador. Por ejemplo, es posible que desee watch canal 4 mientras graba el canal 7. En este caso, tiene dos entradas de tuner lógico. Puede configurar el VCR mediante los siguientes comandos:

Para revisar un origen mientras se graba desde otro

  1. Use el comando settuner (MCI_SETTUNER) para seleccionar los canales que se van a watch y grabar.
  2. Use el comando setvideo para seleccionar el origen de grabación de vídeo.
  3. Use el comando setaudio para seleccionar el origen de grabación de audio.
  4. Use el comando setvideo para enrutar la entrada de vídeo del canal 4 a la salida supervisada para mostrarla en pantalla.
  5. Use el comando setaudio para enrutar la entrada de audio del canal 4 a la salida supervisada para reproducir el audio.
  6. Compruebe las selecciones mediante el comando status .

El controlador VISCA también admite un tipo de entrada especial para audio y vídeo denominado silenciado. Silenciar permite la selección de "sin entrada", lo que resulta útil al grabar una señal en blanco.

Selección de pistas de grabación

Existen tres tipos de pistas de grabación en una cinta de vídeo: vídeo, audio y código de tiempo. Solo tiene una pista de código de tiempo o vídeo, pero puede usar más de una pista de audio. Al hacerlo, realice la pista 1 de la pista de audio principal.

El controlador VISCA admite dos modos de funcionamiento: ensamblado e inserción. En el modo de ensamblado, se seleccionan todas las pistas que se van a grabar. En el modo de inserción, las pistas se pueden seleccionar de forma independiente para la grabación. La mayoría de los VCR están en modo de ensamblado de forma predeterminada. Use el comando set (MCI_SET) para cambiar estos modos.

Grabación y edición

El comando record (MCI_RECORD) proporciona una grabación sencilla y es precisa para aproximadamente 1 segundo de la posición inicial. Para grabar con más precisión, o si espera editar el contenido del vídeo mientras opera simultáneamente varias barajas, debe usar el comando cue (MCI_CUE).

El comando cue prepara el dispositivo para grabar o reproducir. Use el comando de indicación "input" para preparar el dispositivo para la grabación. El comando cue es necesario porque una aplicación debe saber cuándo el dispositivo está listo para realizar el comando (y porque puede tardar varios minutos en prepararse para una reproducción (MCI_PLAY) o un comando de grabación ).

El VCR se prepara para grabar o reproducir mediante la búsqueda al punto, que es la posición actual o la posición especificada mediante el comando "from". Sin embargo, si se especifica la marca "preroll" con el comando cue , el VCR se coloca en sí misma la distancia de inscripción previa desde el punto. La marca "preroll" también indica que el VCR usa cualquier modo de edición aplicable, por lo que es importante que use "preroll", especialmente cuando desee la grabación más precisa. (Use el comando de funcionalidad (MCI_GETDEVCAPS) con la marca "puede preinscribir" para comprobar si se admite el modo de inscripción previa).

Nota:

Cuando se registra mediante posiciones "from" y "to", la posición "from" se incluye en la edición y la posición "to" no es .

 

Para obtener más información sobre la grabación, vea Grabación.

Usar el reloj mientras se edita

Al editar, es posible que desee grabar segmentos de un VCR a otro. Puede comenzar la grabación en un momento y posición específicos en un VCR mientras que otro comienza a reproducirse al mismo tiempo y posición especificando una acción (reproducción o grabación), una posición y una hora para cada VCR.

Ambos VCR deben usar el mismo reloj para este tipo de edición; el reloj ayuda a sincronizar ambos dispositivos. Puede determinar si dos VCR comparten el mismo reloj mediante el comando status (MCI_STATUS) con la marca "clock id" para consultar cada VCR. Si los números de identificación devueltos por el comando status son los mismos, los dispositivos usan el mismo reloj. Como recurso compartido, el reloj se puede conectar a varios VCR. El controlador VISCA solo admite un reloj compartido.

También puede determinar la resolución del reloj mediante el comando de estado "velocidad de incremento del reloj". Este comando devuelve el número de incrementos que admite el reloj por segundo. Por ejemplo, si el reloj se actualiza cada milisegundo, el comando devuelve 1000 como velocidad de incremento del reloj. La ventaja de utilizar la tasa de incremento es que la tasa se expresa como un entero; de lo contrario, el incremento sería un valor de punto flotante (de precisión simple o doble). Como entero, manipular la tasa de incremento es una operación sencilla y no es susceptible a errores de redondeo. Puede restablecer el reloj mediante el comando set (MCI_SET) con la marca "clock 0" (cero).

Al emitir un comando play (MCI_PLAY), record (MCI_RECORD) o seek (MCI_SEEK), puede especificar cuándo se va a ejecutar el comando. Las características de los VCR que se usan determinan cuándo iniciar cada VCR. El tiempo debe tener en cuenta la cantidad de inscripción previa de cada dispositivo y la cantidad de tiempo necesario para completar los comandos de MCI usados para configurar la sesión de edición. Para ello, recupere la hora del reloj y agregue un intervalo de espera de 5 a 10 segundos. (El intervalo de espera debe ser lo suficientemente largo como para permitir que la inscripción previa y los comandos de MCI pendientes terminen de ejecutarse).

Para asegurarse de que el período de espera es lo suficientemente largo, coloque el comando record en la aplicación y compruebe la hora inmediatamente antes de ella. Si el intervalo es demasiado corto, reinicie el comando play . Como alternativa, puede comprobar la hora inmediatamente después del último comando del script para comprobar que hay tiempo suficiente para enviar y completar todos los comandos.