Службы VCR

Windows предоставляет службы VCR через драйвер устройства, основанный на наборе команд MCI для видеомагнитофонов. В этом разделе описывается драйвер visual MCI Video System Control Architecture (VISCA) и объясняется, как использовать его для управления VCR.

Тип устройства vcr управляет видеомагнитофонов. Список команд MCI, распознаваемых устройствами VCR, см. в разделе Набор команд VCR.

Драйвер MCI VISCA

Драйвер MCI VISCA управляет совместимыми с Sony VISCA видеодрайверами, такими как CVD-1000 VDeck. Драйвер VISCA управляет транспортом ленты, тюнерами каналов и каналами ввода и вывода VCR.

Поиск и позиционирование с помощью VCR

Драйвер VISCA использует два метода для отслеживания движения видеокассеты в транспорте ленты VCR: сведения о коде времени и счетчики ленты. Сведения о коде времени — это сведения о времени, записанные на видеокассете. Большинство видеомагнитофонов позволяют записывать временные коды без уничтожения звуковых и видеодорожек. Счетчики ленты оценивают количество видеокассети, которая проходит мимо головки видеокассеты, чтобы получить позицию.

Сведения о таймкоде и счетчики ленты увеличиваются по мере перемещения видеокассеты от начала к концу. Из-за точности использование сведений о коде времени для размещения видеокассеты почти всегда предпочтительнее, чем использование счетчиков ленты.

Флаги команд MCI для указания сведений о расположении выражаются в виде зависимостей времени: "time format", "duration", "from", "to" и "seek". (Кроме того, команда status "position" возвращает значение времени в формате текущего времени.)

Драйвер VISCA использует команду set "time mode", чтобы выбрать тип позиционирования для использования с видеокассетой. Если для режима времени задано значение timecode, в командах "Position" и set "time format" используется код времени на видеокассете. Если для режима времени задано значение counter, в командах "Position" и set "time format" используются счетчики.

Приложение может задать режим времени для "обнаружения", если не имеет значения, что существует два источника сведений о положении. В режиме обнаружения драйвер VISCA использует сведения о коде времени для позиционирования при возникновении любого из следующих условий:

  • Сведения о коде времени присутствуют при открытии драйвера.
  • Вы изменяете видеокассету с помощью команды " Открыть дверь", а в видеокассете есть информация о коде времени.
  • Команда set "time mode" будет переиздана.

Если не удается найти сведения о коде времени, драйвер использует счетчики ленты.

Чтобы определить текущий метод позиционирования, выполните команду состояния "тип времени", которая возвращает значение "timecode" или "counter". Вы также можете определить текущий режим позиционирования с помощью команды состояния "time mode", которая возвращает "timecode", "counter" или "detect".

Команда состояния "counter" извлекает текущее значение счетчика ленты независимо от текущего метода позиционирования; Однако этот счетчик можно использовать только с помощью команды set "counter".

Драйвер VISCA может получить собственный формат таймкода, записанный на видеокассете, с помощью команд состояния "тип таймкода" и состояния "частота кадров". Например, если тип таймкода — smpte, а частота кадров — 25, то собственный формат таймкода, записанный на видеокассете, — SMPTE 25.

Драйвер VISCA также может получить разрешение счетчика с помощью команды состояния "разрешение счетчика", которая возвращает "секунды" или "кадры". Формат счетчика может по-прежнему иметь значение SMPTE 30, но возвращаемое значение возвращает только кадр 0. Если текущий тип времени является счетчиком, то это разрешение применяется также к значению, возвращаемого состоянием "position".

Захват кадров

Команды захвата кадров предоставляют неподвижные изображения для устройства захвата кадров. Устройство захвата кадров — это отдельный элемент оборудования, способный считывать и хранить видеоимония. Драйвер VISCA поддерживает команду заморозки (MCI_FREEZE), чтобы стабилизировать неподвижное изображение для записи. Кроме того, команда unfreeze (MCI_UNFREEZE) может использоваться для перезапуска транспорта ленты после выполнения команды заморозки .

Команда freeze предоставляет высококачественное, стабильное, исправленное по времени изображение для устройства захвата кадров. Эта команда существует, так как устройство не всегда может доставлять свое максимальное качество выходного изображения во время воспроизведения или во время приостановки; такое изображение видео не подходит для захвата.

Команда unfreeze разблокирует транспорт ленты и возобновляет режим транспорта, который действует до выполнения команды замораживания .

Если приложению требуется записать видеоимпоз на виртуальной строке, используйте команду "ввод" или команду подсказки (MCI_CUE), чтобы записать изображение.

Выбор входных данных

Драйвер VISCA поддерживает три типа входных данных: видео, звук и код времени. Видеовходы включают два стандартных канала (строки 1 и 2), канал SVideo, вспомогательный канал и канал из внутреннего тюнера. Аудиовходы включают два стандартных канала (строки 1 и 2) и канал из внутреннего тюнера. Входные данные кода времени являются внутренними для VCR.

Обычные выходные данные содержат выбранные в настоящее время входные данные при записи VCR или при остановке транспортировки ленты, а также содержат содержимое видеокассеты, когда транспорт ленты воспроизводится или приостановлен. Отслеживаемые выходные данные содержат те же сведения, что и обычные выходные данные, а также текущий код времени и сведения о канале.

Предполагая, что соответствующие внешние входные данные подключены к виртуальной копии, и вы решили, что нужно записать, можно выбрать входные данные для записи. Например, для записи или просмотра из видео "svideo" и аудиовходов "строка 1" следует использовать команды setvideo (MCI_SETVIDEO) и setaudio (MCI_SETAUDIO) для выбора этих источников входных данных. Эти параметры можно проверить с помощью команды состояния (MCI_STATUS).

По умолчанию монитор отображает именно то, что отображается в качестве выходных данных. Однако иногда может потребоваться просмотреть один источник во время записи из другого. Это распространенная практика использования тюнера. Например, при записи канала 7 может потребоваться watch канал 4. В этом случае у вас есть два входных данных логического тюнера. VCR можно настроить с помощью следующих команд:

Просмотр одного источника во время записи из другого

  1. Используйте команду settuner (MCI_SETTUNER), чтобы выбрать каналы для watch и записи.
  2. Выберите источник записи видео с помощью команды setvideo .
  3. Используйте команду setaudio , чтобы выбрать источник аудиозаписи.
  4. Используйте команду setvideo , чтобы направить видеовход канала 4 в отслеживаемые выходные данные для отображения на экране.
  5. Используйте команду setaudio , чтобы перенаправить входные данные канала 4 в отслеживаемый выход для воспроизведения звука.
  6. Проверьте выбранные параметры с помощью команды status .

Драйвер VISCA также поддерживает специальный тип ввода для звука и видео, называемый отключением звука. Отключение звука позволяет выбрать параметр "нет входных данных", что полезно при записи пустого сигнала.

Выбор записи дорожек

На видеокассете существует три типа записывающих дорожек: видео, аудио и код времени. У вас есть только одна дорожка видео или кода времени, но вы можете использовать несколько звуковых дорожек. При этом сделайте дорожку 1 main звуковой дорожкой.

Драйвер VISCA поддерживает два режима работы: сборку и вставку. В режиме сборки для записи выбираются все дорожки. В режиме вставки дорожки можно выбирать для записи независимо друг от друга. Большинство видеомодулов по умолчанию находятся в режиме сборки. Используйте команду set (MCI_SET), чтобы изменить эти режимы.

Запись и редактирование

Команда record (MCI_RECORD) обеспечивает простую запись и имеет точность примерно до 1 секунды от начальной позиции. Для более точной записи или изменения видеосодержимого при одновременной работе с несколькими колодами следует использовать команду подсказки (MCI_CUE).

Команда подсказки подготавливает устройство к записи или воспроизведению. Используйте команду "ввод" , чтобы подготовить устройство к записи. Команда подсказки является обязательной, так как приложение должно знать, когда устройство готово к выполнению команды (и потому, что подготовка к игре (MCI_PLAY) или запись команды может занять несколько минут).

VCR готовится к записи или воспроизведению путем поиска в точке, то есть текущей позиции или позиции, указанной с помощью команды подсказки "from". Однако если флаг preroll указан с помощью команды подсказки , VCR позиционирует расстояние до доролла от точки в точке. Флаг "preroll" также указывает, что VCR использует любой применимый режим редактирования, поэтому важно использовать "preroll", особенно если требуется наиболее точную запись. (Используйте команду возможности (MCI_GETDEVCAPS) с флагом "can preroll", чтобы проверка, поддерживается ли режим предварительной записи.)

Примечание

При записи с использованием позиций "from" и "to" позиция "from" включается в редактирование, а позиция "to" — нет.

 

Дополнительные сведения о записи см. в разделе Запись.

Использование часов во время редактирования

При редактировании может потребоваться записать сегменты от одного виртуального экземпляра к другому. Вы можете начать запись в определенное время и положение на одном виртуальном устройстве, а другой начинает воспроизводиться в то же время и позицию, указав действие (воспроизведение или запись), позицию и время для каждого VCR.

Оба ВИДЕО должны использовать одни и те же часы для этого типа редактирования; Часы помогают синхронизировать оба устройства. Вы можете определить, используют ли два видеомагнитофонов одинаковые часы, с помощью команды состояния (MCI_STATUS) с флагом "clock id" для запроса каждого VCR. Если идентификационные номера, возвращаемые командой состояния , совпадают, устройства используют одни и те же часы. Как общий ресурс, часы могут быть подключены к нескольким VVCR. Драйвер VISCA поддерживает только одно общее время.

Вы также можете определить разрешение часов с помощью команды состояния "частота приращения часов". Эта команда возвращает количество приращений, поддерживаемых часами в секунду. Например, если часы обновляются каждую миллисекунду, команда возвращает значение 1000 в качестве частоты приращения часов. Преимущество использования коэффициента приращения заключается в том, что ставка выражается в виде целого числа; В противном случае приращение будет иметь значение с плавающей запятой (с одиночной или двойной точностью). Как целое число, управление частотой приращения является простой операцией и не подвержено ошибкам округления. Вы можете сбросить часы с помощью команды set (MCI_SET) с флагом "clock 0" (ноль).

При выполнении команды воспроизведения (MCI_PLAY), записи (MCI_RECORD) или поиска (MCI_SEEK) можно указать время выполнения команды. Характеристики используемых видеомагнитофонов определяют, когда следует запускать каждый виртуальный экземпляр. Время должно учитывать количество предварительных параметров, необходимых каждому устройству, и время, необходимое для выполнения команд MCI, используемых для настройки сеанса редактирования. Для этого извлеките часы и добавьте интервал ожидания от 5 до 10 секунд. (Интервал ожидания должен быть достаточно длинным, чтобы завершить выполнение предварительной команды и все невыполненные команды MCI.)

Чтобы период ожидания был достаточно длинным, поместите команду записи последней в приложение и проверка время непосредственно перед ней. Если интервал слишком короткий, перезапустите команду воспроизведения . Кроме того, можно проверка время сразу после последней команды скрипта, чтобы убедиться, что времени достаточно для отправки и выполнения всех команд.