次の方法で共有


IAMTimecodeReader インターフェイス (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の 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 メソッドは、ストリームで使用できる最新のタイムコード、ユーザービット、フラグの値を取得します。
IAMTimecodeReader::p ut_VITCLine

put_VITCLine メソッドは、タイムコード リーダーがタイムコードの読み取りに使用する垂直間隔線を指定します。
IAMTimecodeReader::SetTCRMode

SetTCRMode メソッドは、タイムコード リーダーのプロパティを設定します。

注釈

Windows ドライバー モデル (WDM) デバイスの場合、WDM ドライバーが PROPSETID_TIMECODE_READER プロパティ セットをサポートしている場合、WDM ビデオ キャプチャ フィルター は自動的にこのインターフェイスを公開します。 詳細については、 Windows ドライバー キット (WDK) のドキュメントを参照してください。

SMPTE タイムコードは、ビデオソースとオーディオソースを識別し、自動トラック同期を可能にし、ソースマテリアルに関連する追加データ用のコンテナを提供するフレームアドレッシングシステムです。 SMPTE タイムコードのメインの目的は、ビデオとオーディオ用のコンピューターで読み取り可能なアドレスを提供することです。 これは hh:mm:ss:ff (時間、分、秒、フレーム) 形式で表示され、ANSI/SMPTE 12-1986 で完全に定義されています。

通常、アプリケーションは 2 つの方法のいずれかでタイムコードを節約します。 これは、追加ストリームとしてキャプチャ ファイルに書き込まれるか、拡張 AVI ファイル インデックスに格納されている不連続テーブルとして書き込まれます。 一般的に、キャプチャまたは再生をトリガーしたり、ソース マテリアルを完成した製品に編成する方法を説明する編集デシジョン リストを作成したりするために使用されます。

タイムコードをキャプチャする場合は、独自のメディアの種類を持つ別のストリームとして扱います。 これは、適切なファイル書き込みマルチプレクサー フィルターで使用できます。 ただし、ドロップアウトやその他の機械的テープの問題により、テープからタイムコードを読み取る際にエラーが発生することがあります。 このような場合は、タイムコード ソース フィルターでサンプルをドロップし、次に有効なサンプルを不連続性プロパティでマークする必要があります。

タイムコードを使用して、タイムコードされた (または "ストライプ" ビデオテープからキャプチャまたは再生をトリガーする場合、イベントのシーケンスは次のようになります。

  1. キャプチャ グラフを作成し、ターゲット AVI ファイルを開き、必要に応じてディスク領域を事前に割り当てる。 キャプチャした素材が既存の AVI ファイルに追加される場合は、書き込む前にファイルの末尾にシークします。 キャプチャ グラフは、この時点で一時停止されます。
  2. キャプチャの開始点まで VCR を検索し、タイムコードをメモします。 この値は、プログラムに手動で入力することも、アプリケーションで自動的に読み取ることもできます。 自動読み取りでは、グラフが実行されている必要がありますが、ファイル マルチプレクサーの入力ピン上のストリーム制御インターフェイスによって受信サンプルが破棄され、キャプチャが効果的に制御されます。
  3. ターゲット ポイントの 5 秒前に、VCR をプリロール位置に合図します。
  4. VCR とグラフを起動します。 トリガー ポイントに到達すると (またはトリガー ポイントからファイル ライターのプリロールを引いた場合)、ストリーム コントロール インターフェイスによってファイル マルチプレクサーが解放され、メディア サンプルのファイル ライターへのストリーミングが開始されます。
  5. キャプチャ プロセスは、手動で停止するか、ストリーム コントロール インターフェイスで duration プロパティを設定することで停止できます。
プリロール中とキャプチャ プロセス中の両方で、不連続なタイムコードを考慮する必要があります。タイムコードは、プリロールとキャプチャの開始点全体で継続的かつ単調に増加することを要求するのが妥当です。 これにより、 IMediaSeeking::ConvertTimeFormat メソッドによる相対ストリーム時間の計算があいまいになる可能性があります。 また、トリガーされたキャプチャの唯一のゲーティング信号は、タイムコードである必要はありません。 Intercast やクローズド キャプション 付きデータ (XDS) など、垂直ブランキング間隔に格納されているタイムスタンプ付きデータを使用して、ビデオデータとオーディオ データのディスクへのストリーミングを開始できます。

ハードウェア要件

ハードウェア要件については、 IAMExtTransport インターフェイスを参照してください。

フィルター開発者

外部デバイスが SMPTE/MIDI タイムコード情報を読み取る方法を指定する場合は、外部デバイス フィルターにこのインターフェイスを実装します。 IMediaSeeking::ConvertTimeFormat メソッドを使用して、アプリケーションがタイムコードを参照時刻に変換できるように、フィルターで IMediaSeeking インターフェイスを公開します。

外部デバイスは、タイムコードを読み取り、制御インターフェイスを介してコンピューターに送信できる必要があります。 そうでない場合は、コンピューターにタイムコード リーダー カードが必要です。または、キャプチャされたビデオ フレーム内の VITC (垂直間隔タイムコード) またはオーディオ信号としてキャプチャされた LTC (Linear Timecode) を DirectShow タイムコード サンプルに変換するソフトウェア デコーダーを記述する必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)

関連項目

インターフェイス