Microsoft vcr: Службы VCR — Win32 apps

Службы VCR — Win32 apps


  • Статья

  • Чтение занимает 7 мин

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

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

Драйвер MCI VISCA

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

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

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

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

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

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

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

  • Сведения о коде времени присутствуют при открытии драйвера.
  • Вы изменяете видеозапись с помощью команды «door open» и сведений о коде времени, присутствующих на видеозаписи.
  • Переиздается команда « Режим времени».

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

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

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

Драйвер VISCA может получить собственный формат кода времени, записанный на видеозаписи, используя команды состояния timecode type и status «frame rate» (Частота кадров). Например, если тип кода времени — smpte, а частота кадров — 25, то собственный формат кода времени, записанный на видеозаписи, — SMPTE 25.

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

Запись кадров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

 

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

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

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

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

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

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

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

 

 

Набор команд VCR — Win32 apps





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 2 мин

VCR поддерживают следующий набор команд.

Строка формыФорма сообщения
ПерерывMCI_BREAK
ВозможностьMCI_GETDEVCAPS
CueMCI_CUE
ЗаморозитьMCI_FREEZE
ИндексMCI_INDEX
ИнформацияMCI_INFO
СписокMCI_LIST
МаркMCI_MARK
ПаузаMCI_PAUSE
ИгратьMCI_PLAY
ЗаписиMCI_RECORD
ВозобновитьMCI_RESUME
ИскатьMCI_SEEK
УстановитьMCI_SET
setaudioMCI_SETAUDIO
settimecodeMCI_SETTIMECODE
settunerMCI_SETTUNER
setvideoMCI_SETVIDEO
statusMCI_STATUS
ШагMCI_STEP
ОстановитьMCI_STOP
sysinfoMCI_SYSINFO
РазморозитьMCI_UNFREEZE

 

 

 






Службы видеомагнитофона — приложения Win32

  • Статья
  • 8 минут на чтение

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

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

Драйвер MCI VISCA

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

Поиск и позиционирование с помощью видеомагнитофона

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

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

Флаги команды MCI для указания информации о местоположении выражаются в виде зависимости от времени: «формат времени», «длительность», «от», «до» и «искать». (Кроме того, команда status «position» возвращает свое значение времени в текущем формате времени.)

Драйвер VISCA использует команду set «time mode» для выбора типа позиционирования для использования с видеокассетой. Когда режим времени установлен на «тайм-код», команды status «position» и set «формат времени» используют тайм-код на видеокассете. Когда режим времени установлен на «счетчик», статус «позиция» и набор команды «формат времени» используют счетчики.

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

  • Информация о временном коде присутствует при открытии драйвера.
  • Вы меняете видеокассету с помощью команды set «открыть дверь», и на видеоленте присутствует информация о временном коде.
  • Повторно введена команда set «режим времени».

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

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

Статус команда «счетчик» извлекает текущее значение счетчика ленты, независимо от текущего метода позиционирования; однако вы можете использовать это показание счетчика только с командой set «counter».

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

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

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

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

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

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

Если вашему приложению необходимо записать видеоизображение на видеомагнитофон, используйте команду «заморозить» «ввод» или команду cue ( MCI_CUE ) для записи изображения.

Выбор входов

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

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

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

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

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

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

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

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

На видеоленте существует три типа дорожек записи: видео, аудио и временной код. У вас есть только одна дорожка видео или тайм-кода, но вы можете использовать более одной звуковой дорожки. Когда вы это сделаете, сделайте дорожку 1 основной звуковой дорожкой.

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

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

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

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

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

Примечание

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

 

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

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

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

Оба видеомагнитофона должны использовать одни и те же часы для этого типа монтажа; часы помогают синхронизировать оба устройства. Вы можете определить, используют ли два видеомагнитофона одни и те же часы, используя команду status ( MCI_STATUS ) с флагом «идентификатор часов» для запроса каждого видеомагнитофона. Если идентификационные номера, возвращаемые командой status , совпадают, устройства используют одни и те же часы. В качестве общего ресурса часы могут быть подключены к нескольким видеомагнитофонам. Драйвер VISCA поддерживает только одни общие часы.

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

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

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

 

 

Набор команд видеомагнитофона — приложения Win32

Редактировать

Твиттер

LinkedIn

Фейсбук

Эл. адрес

  • Статья
  • 2 минуты на чтение

Видеомагнитофоны поддерживают следующий набор команд.