MSDV 驅動程式
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
MSDV 是適用於 DV 攝影機的 Microsoft Windows 驅動程式模型 (WDM) 驅動程式。 當裝置插入時,驅動程式會顯示為 DirectShow 篩選。 它會在兩個篩選類別中列舉:
- CLSID_VideoInputDeviceCategory (“視訊擷取來源”)
- AM_KSCATEGORY_RENDER (“WDM 串流轉譯裝置”)
篩選條件的易記名稱 Microsoft DV Camera and VCR
或本地化的對等專案。 在某些裝置中,Description 屬性包含特定模型的描述,您可以使用這個模型,而不是一般易記名稱。 如需詳細資訊,請參閱 選取擷取裝置。
MSDV 有兩個輸出針腳。 一個針腳提供包含交錯音訊和視訊數據的 DV 畫面。 另一個針腳會提供不含音訊的僅限視訊畫面。 MSDV 無法同時從兩個針腳串流,因此一次只能連接一個輸出針腳。 如需從 DV 裝置擷取視訊的詳細資訊,請參閱 將 DV 擷取到檔案。
大多數 DV 攝影機都有一個錄像帶錄音機 (VTR) 子單位,可將數據從磁帶傳輸到計算機。 針對應用程式,從磁帶擷取的運作方式與擷取實時視訊的運作方式相同。 唯一的差別在於應用程式必須控制外部磁帶傳輸 — 啟動和停止磁帶、倒轉等等。 為此,MSDV 會公開 IAMExtDevice、IAMExtTransport和 IAMTimecodeReader 介面。 如需控制 VTR 的詳細資訊,請參閱 控制 DV Camcorder。
您也可以將 DV 從電腦傳輸到攝影機。 然後,影片可以在攝影機的上線畫面中檢視,或錄製到磁帶。 為了支援這項功能,MSDV 具有可接收交錯 DV 數據流的輸入針腳。 連接輸入針腳時,MSDV 會做為轉譯器篩選,而不是擷取篩選。 MSDV 不支援在此模式中搜尋。 如需將 DV 傳送至裝置的詳細資訊,請參閱 將 DV 從檔案傳輸到磁帶。
請注意,輸入和輸出針腳無法同時連接,因為裝置無法同時雙向串流。
在許多攝影機中,在 VTR 模式和相機模式之間切換會導致裝置關閉。 因此,當使用者切換模式時,DirectShow 可能會遺失裝置。 如需裝置移除事件的相關信息,請參閱 裝置移除通知。
言論
如需 MSDV 驅動程式支援哪些 DV 格式的詳細資訊,請參閱 DV 影片子類型。
使用 MSDV 建置篩選圖形的一些秘訣:
您無法使用 IGraphBuilder::Render 在 MSDV 上轉譯輸出釘選。 (Filter Graph Manager 會嘗試將輸出釘選連接到 MSDV 的輸入針腳,但失敗。請改用 IGraphBuilder::Connect 或 ICaptureGraphBuilder2::RenderStream。
當篩選圖形包含 MSDV 時,MSDV 應該提供圖形的參考時鐘。 從 DirectX 8.0 起,篩選圖形管理員會自動選擇 MSDV 作為參考時鐘。 使用舊版時,您應該在 Filter Graph Manager 上呼叫 IMediaFilter::SetSyncSource 方法。 如需時鐘的詳細資訊,請參閱 DirectShow 中的 Time 和 Clocks。
視裝置而定,IAMExtDevice、IAMExtTransport和 IAMTimeCodeReader 中的某些方法可能會傳回 Windows 錯誤碼,而不是 HRESULT 值。 可能的錯誤碼包括下列專案。
錯誤碼 描述 ERROR_TIMEOUT 外部裝置命令已逾時。 ERROR_REQ_NOT_ACCEP 裝置不接受這個外部裝置命令。 ERROR_NOT_SUPPORTED 裝置不支援此外部裝置命令。 ERROR_REQUEST_ABORTED 已中止外部裝置命令。 可能已移除裝置,或發生總線重設。
裝置資訊
在 Windows Millennium Edition 和 Windows XP 中,除了 FriendlyName 属性之外,DV 篩選器的裝置 Moniker 還支援 Description 属性。 此屬性會傳回取自 INF 檔案之裝置的描述,該檔案通常包含裝置的品牌名稱。 不過,並非所有裝置型號都支援此屬性。
如需裝置 Moniker 的詳細資訊,請參閱使用系統裝置列舉值 。
時鐘時間
MSDV 驅動程式會使用包含在 1394 數據封包中的 1394 總線時鐘來衍生時鐘。 它會使用這些值來時間戳 DV 媒體範例。 因為這個來源時鐘不是計算機系統時鐘,因此時間最終會偏離計算機系統時鐘。 不過,如上所述,根據預設,篩選圖形管理員會選取 MSDV 作為圖形參考時鐘。
IAMDroppedFrames 介面會報告驅動程式目前卸除框架的量值;此值可能不會與指定時間的實際已卸除畫面數完全同步處理。 如果卸除框架,表示系統不平衡(數據生產超過數據耗用量)。 例如,使用者的硬碟可能不夠快,無法支援 DV 擷取速率。
相關主題
-
DirectShow 中的數位視訊