Поделиться через


Интерфейс IAMTimecodeReader (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Интерфейс IAMTimecodeReader считывает код времени SMPTE или MIDI с внешнего устройства. Драйверы MSDV и MSTape поддерживают этот интерфейс для чтения кода времени из внешней видеокамеры DV или MPEG-2.

Наследование

Интерфейс IAMTimecodeReader наследуется от интерфейса IUnknown . IAMTimecodeReader также имеет следующие типы элементов:

Методы

Интерфейс IAMTimecodeReader содержит следующие методы.

 
IAMTimecodeReader::get_VITCLine

Метод get_VITCLine извлекает вертикальную интервальную линию, используемую средством чтения кода времени для чтения кода времени.
IAMTimecodeReader::GetTCRMode

Метод GetTCRMode извлекает свойства средства чтения кода времени.
IAMTimecodeReader::GetTimecode

Метод GetTimecode извлекает последние значения timecode, userbit и flag, доступные в потоке.
IAMTimecodeReader::p ut_VITCLine

Метод put_VITCLine задает вертикальную интервальную линию, которую средство чтения кода времени будет использовать для чтения кода времени.
IAMTimecodeReader::SetTCRMode

Метод SetTCRMode задает свойства средства чтения кода времени.

Комментарии

Для устройств модели драйвера Windows (WDM) фильтр записи видео WDM автоматически предоставляет этот интерфейс, если драйвер WDM поддерживает набор свойств PROPSETID_TIMECODE_READER. Дополнительные сведения см. в документации по комплекту драйверов Windows (WDK).

Код времени SMPTE — это система адресации кадров, которая идентифицирует источники видео и звука, обеспечивает автоматическую синхронизацию дорожек и предоставляет контейнер для дополнительных данных, связанных с исходным материалом. Целью main кода времени SMPTE является предоставление машиночитаемого адреса для видео и звука. Он отображается в формате чч:мм:сс:ff (часы, минуты, секунды, кадры) и тщательно определен в ANSI/SMPTE 12–1986.

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

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

Если вы планируете использовать коды времени для активации записи или воспроизведения с видео с кодом времени (или "чередующегося") видеофайла, последовательность событий выглядит следующим образом:

  1. Создайте граф записи, откройте целевой файл AVI и при необходимости предварительно наделите место на диске. Если захваченный материал будет добавлен в существующий AVI-файл, перед записью выполните поиск в конце файла. На этом этапе граф захвата приостанавливается.
  2. Найдите в VCR начальную точку записи и запишите код времени. Это значение можно ввести в программу вручную, или приложение может автоматически прочитать его. Для автоматического чтения требуется, чтобы граф был запущен, но интерфейсы управления потоком во входных контактах файлового мультиплексера удаляют входящие выборки, эффективно выполняя захват.
  3. Подведите VCR к предварительной позиции, обычно за пять секунд до целевой точки.
  4. Запустите VCR и граф. При достижении точки триггера (или точки триггера за вычетом предварительной записи файла) интерфейсы управления потоком освобождают мультиплексор файлов и начинают потоковую передачу примеров мультимедиа в модуль записи файлов.
  5. Процесс записи можно остановить вручную или задав свойство duration в интерфейсе управления потоком.
Необходимо рассмотреть вопрос о нерегластрированных временных кодах как во время подготовки, так и во время процесса отслеживания; разумно требовать, чтобы код времени был непрерывным и монотонно увеличивающимися на протяжении всей начальной точки перед запуском и записью. Это предотвращает потенциально неоднозначное вычисление времени относительного потока методом IMediaSeeking::ConvertTimeFormat . Кроме того, код времени не должен быть единственным сигналом для активированного захвата. Для запуска потоковой передачи видео- и аудиоданных на диск можно использовать любые данные с метками времени, хранящиеся в интервале вертикального пробела, такие как данные межадресной рассылки или данные с закрытыми субтитрами (XDS).

Требования к оборудованию

Требования к оборудованию см. в интерфейсе IAMExtTransport .

Фильтрация разработчиков

Реализуйте этот интерфейс на фильтре внешних устройств, если требуется указать, как внешнее устройство должно считывать сведения о коде времени SMPTE/MIDI. Предоставьте интерфейс IMediaSeeking в фильтре, чтобы приложения могли преобразовать код времени в эталонное время с помощью метода IMediaSeeking::ConvertTimeFormat .

Внешнее устройство должно иметь возможность считывать код времени и отправлять его на компьютер через интерфейс управления. Если это не так, необходимо либо иметь карта считывателя кода времени на компьютере, либо вы можете написать программный декодер, который преобразует VITC (вертикальный интервал времени) в захваченных видеокадрах или LTC (линейный код времени), захваченный в виде звукового сигнала, в примеры кода времени DirectShow.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)

См. также раздел

Интерфейсы