Compartir a través de


Servicios de VCR

[La característica asociada a esta página, MCI, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de MCI, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

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 vcr tipo de dispositivo 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 Sony VISCA, como el VD-1000 CVDeck. 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 la cinta de vídeo 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 videotapa que viaja más allá de la cabeza de videotapa para obtener una posición.

Tanto la información del 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 es casi siempre preferible a 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 estado comando "position" devuelve su valor de hora en el formato de hora actual).

El controlador VISCA usa el establecer comando "modo de tiempo" para seleccionar el tipo de posicionamiento que se va a usar con una cinta de vídeo. Cuando el modo de tiempo se establece en "timecode", el estado de "posición" y establecer comandos de "formato de hora" usan el código de tiempo en la cinta de vídeo. Cuando el modo de tiempo se establece en "counter", el estado "position" y establecer comandos de "formato de hora" 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.
  • Puede cambiar una cinta de vídeo con el conjunto de comando "door open" y la información del código de tiempo está presente en la cinta de vídeo.
  • El establecer comando "modo de tiempo" se vuelve a emitir.

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 estado comando "time type", que devuelve "timecode" o "counter". También puede identificar el modo de posicionamiento actual mediante el estado comando "modo de tiempo", que devuelve "timecode", "counter" o "detect".

El estado comando "counter" recupera el valor del contador de cinta actual, independientemente del método de posicionamiento actual; sin embargo, puede usar esta lectura de contador solo con el establecer comando "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 estado comandos de "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 del contador mediante el estado comando "resolución de contadores", que devuelve "segundos" o "marcos". El formato de contador puede seguir estando establecido en SMPTE 30, pero el valor devuelto devuelve solo un fotograma de 0. Si el tipo de hora actual es counter, esta resolución también se aplica al valor devuelto por estado "position".

Captura de 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 una pieza 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 descongelar (MCI_UNFREEZE) se puede usar para reiniciar el transporte de cintas después de un comando inmovilizar.

El comando inmovilizar proporciona una imagen correcta de alta calidad, estabilizada y de tiempo 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; esta imagen de vídeo no es adecuada para la captura.

El comando descongelar desbloquea el transporte de cintas y reanuda el modo de transporte en vigor antes de que el comando inmovilizar.

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 sintonizador interno. Las entradas de audio incluyen dos canales estándar (líneas 1 y 2) y un canal desde un sintonizador interno. La entrada del código de tiempo es interna para el VCR.

Las salidas normales llevan 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 está reproduciendo o en pausa. Las salidas supervisadas contienen la misma información que las salidas normales, además del 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 grabar. 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 estado (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 graba desde otro. Se trata de una práctica común mediante el afinador. Por ejemplo, es posible que quiera ver el canal 4 mientras graba el canal 7. En este caso, tiene dos entradas de tuner lógicas. 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 ver 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 comandoestado de.

El controlador VISCA también admite un tipo de entrada especial para audio y vídeo denominado silenciar. Silenciar permite la selección de "sin entrada", que es ú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: ensamblar e insertar. En modo de montaje, se seleccionan todas las pistas que se van a grabar. En modo de inserción, las pistas se pueden seleccionar de forma independiente para la grabación. La mayoría de las 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 grabación (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 indica prepara el dispositivo para grabar o reproducir. Use el indicación comando "input" para preparar el dispositivo para la grabación. El comando indicación 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 un reproducir (MCI_PLAY) o comando de registro).

El VCR se prepara para grabar o reproducir mediante la búsqueda del en punto , que es la posición actual o la posición especificada mediante el indicación comando "from". Si se especifica la marca "preroll" con el comando indicación, sin embargo, el VCR coloca la propia 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 funcionalidad (MCI_GETDEVCAPS) con la marca "puede prerollar" para comprobar si se admite el modo de inscripción previa).

Nota

Cuando se graba con 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 Recording.

Usar el reloj mientras se edita

Al editar, es posible que quiera grabar segmentos de un VCR a otro. Puede empezar a grabar 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 (reproducir o grabar), 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 estado (MCI_STATUS) con la marca "id. de reloj" para consultar cada VCR. Si los números de identificación devueltos por el estado comando 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 estado comando "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 milisegundos, el comando devuelve 1000 como velocidad de incremento de 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 velocidad de incremento es una operación sencilla y no es susceptible a los errores de redondeo. Puede restablecer el reloj mediante el comando establecer (MCI_SET) con la marca "reloj 0" (cero).

Al emitir un reproducir (MCI_PLAY), grabar (MCI_RECORD) o buscar (MCI_SEEK), puede especificar cuándo se debe 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 registro último en la aplicación y compruebe la hora inmediatamente antes de ella. Si el intervalo es demasiado corto, reinicie el comando reproducir. Como alternativa, puede comprobar la hora inmediatamente después del último comando del script para comprobar que hay suficiente tiempo para enviar y completar todos los comandos.