다음을 통해 공유


IAMTimecodeReader 인터페이스(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

IAMTimecodeReader 인터페이스는 외부 디바이스에서 SMPTE 또는 MIDI 시간 코드를 읽습니다. MSDVMSTape 드라이버는 외부 DV 또는 MPEG-2 캠코더에서 시간 코드를 읽기 위해 이 인터페이스를 지원합니다.

상속

IAMTimecodeReader 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IAMTimecodeReader 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IAMTimecodeReader 인터페이스에는 이러한 메서드가 있습니다.

 
IAMTimecodeReader::get_VITCLine

get_VITCLine 메서드는 시간 코드 판독기가 시간 코드를 읽는 데 사용하는 세로 간격 줄을 검색합니다.
IAMTimecodeReader::GetTCRMode

GetTCRMode 메서드는 시간 코드 판독기 속성을 검색합니다.
IAMTimecodeReader::GetTimecode

GetTimecode 메서드는 스트림에서 사용할 수 있는 가장 최근의 시간 코드, userbit 및 플래그 값을 검색합니다.
IAMTimecodeReader::p ut_VITCLine

put_VITCLine 메서드는 시간 코드 판독기가 시간 코드를 읽는 데 사용할 세로 간격 줄을 지정합니다.
IAMTimecodeReader::SetTCRMode

SetTCRMode 메서드는 시간 코드 판독기 속성을 설정합니다.

설명

WDM(Windows 드라이버 모델) 디바이스의 경우 WDM 드라이버가 PROPSETID_TIMECODE_READER 속성 집합을 지원하는 경우 WDM 비디오 캡처 필터 가 이 인터페이스를 자동으로 노출합니다. 자세한 내용은 WDK(Windows 드라이버 키트) 설명서를 참조하세요.

SMPTE 시간 코드는 비디오 및 오디오 원본을 식별하고 자동 트랙 동기화를 가능하게 하며 원본 자료와 관련된 추가 데이터에 대한 컨테이너를 제공하는 프레임 주소 지정 시스템입니다. SMPTE 시간 코드의 기본 목적은 비디오 및 오디오에 대해 컴퓨터에서 읽을 수 있는 주소를 제공하는 것입니다. hh:mm:ss:ff(시간, 분, 초, 프레임) 형식으로 표시되며 ANSI/SMPTE 12-1986에서 철저히 정의됩니다.

애플리케이션은 일반적으로 두 가지 방법 중 하나로 시간 코드를 저장합니다. 캡처 파일에 추가 스트림 또는 확장된 AVI 파일 인덱스로 저장된 불연속성 테이블로 기록됩니다. 일반적으로 캡처 또는 재생을 트리거하고 소스 자료를 완제품으로 구성하는 방법을 설명하는 편집 의사 결정 목록을 만드는 데 사용됩니다.

시간 코드를 캡처하려는 경우 자체 미디어 형식이 있는 별도의 스트림으로 처리합니다. 적절한 파일 쓰기 멀티플렉서 필터에서 사용할 수 있습니다. 그러나 드롭아웃 및 기타 기계적 테이프 문제로 인해 테이프에서 시간 코드를 읽는 데 오류가 있는 경우가 있습니다. 이러한 경우 시간 코드 원본 필터는 단순히 샘플을 삭제하고 불연속성 속성으로 다음 유효한 샘플을 표시해야 합니다.

시간 코드를 사용하여 시간 코드(또는 "스트라이프") 비디오 테이프에서 캡처 또는 재생을 트리거하려는 경우 이벤트 시퀀스는 다음과 같습니다.

  1. 캡처 그래프를 작성하고, 대상 AVI 파일을 열고, 필요한 경우 디스크 공간을 미리 할당합니다. 캡처된 자료가 기존 AVI 파일에 추가될 경우 쓰기 전에 파일의 끝을 찾습니다. 캡처 그래프는 이 시점에서 일시 중지됩니다.
  2. VCR을 캡처 시작 지점으로 검색하고 시간 코드를 기록해 둡니다. 이 값을 프로그램에 수동으로 입력하거나 애플리케이션에서 자동으로 읽을 수 있습니다. 자동 읽기를 사용하려면 그래프가 실행 중이지만 파일 멀티플렉서의 입력 핀에 있는 스트림 제어 인터페이스가 들어오는 샘플을 삭제하여 캡처를 효과적으로 제거해야 합니다.
  3. VCR을 큐에 연결하여 일반적으로 대상 지점 5초 전에 위치를 미리 설정합니다.
  4. VCR 및 그래프를 시작합니다. 트리거 지점에 도달하거나 트리거 지점에서 파일 기록기 사전 등록을 빼면 스트림 제어 인터페이스는 파일 멀티플렉서가 해제되고 미디어 샘플을 파일 기록기에 스트리밍하기 시작합니다.
  5. 캡처 프로세스를 수동으로 중지하거나 스트림 제어 인터페이스에서 duration 속성을 설정하여 중지할 수 있습니다.
미리 등록하는 동안과 캡처 프로세스 중에 불연속 시간 코드를 고려해야 합니다. 미리 등록 및 캡처 시작 지점 전체에서 시간 코드가 연속적이고 단조롭게 증가하도록 요구하는 것이 합리적입니다. 이렇게 하면 IMediaSeeking::ConvertTimeFormat 메서드를 통해 상대 스트림 시간을 잠재적으로 모호하게 계산할 수 없습니다. 또한 시간 코드가 트리거된 캡처에 대한 유일한 게이팅 신호일 필요는 없습니다. 인터캐스트 또는 XDS(선택 자막 데이터)와 같은 수직 공백 간격에 저장된 타임스탬프를 사용하여 비디오 및 오디오 데이터를 디스크로 스트리밍할 수 있습니다.

하드웨어 요구 사항

하드웨어 요구 사항은 IAMExtTransport 인터페이스를 참조하세요.

개발자 필터링

외부 디바이스에서 SMPTE/MIDI 시간 코드 정보를 읽는 방법을 지정하려는 경우 외부 디바이스 필터에서 이 인터페이스를 구현합니다. IMediaSeeking::ConvertTimeFormat 메서드를 사용하여 애플리케이션이 시간 코드를 참조 시간으로 변환할 수 있도록 필터에 IMediaSeeking 인터페이스를 노출합니다.

외부 디바이스는 시간 코드를 읽고 제어 인터페이스를 통해 컴퓨터에 보낼 수 있어야 합니다. 그렇지 않은 경우 컴퓨터에 시간 코드 판독기 카드 있거나 캡처된 비디오 프레임의 VITC(세로 간격 시간 코드) 또는 오디오 신호로 캡처된 LTC(선형 시간 코드)를 DirectShow 시간 코드 샘플로 변환하는 소프트웨어 디코더를 작성할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)

참고 항목

인터페이스