MSDV 驅動程式
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對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 管理員嘗試將輸出釘選連接到 MSDV 的輸入針腳,但失敗。) 請改用 IGraphBuilder::Connect 或 ICaptureGraphBuilder2::RenderStream。
當篩選圖表包含 MSDV 時,MSDV 應該提供圖形的參考時鐘。 從 DirectX 8.0 起,篩選圖形管理員會自動選擇 MSDV 作為參考時鐘。 使用舊版時,您應該在 Filter Graph Manager 上呼叫 IMediaFilter::SetSyncSource 方法。 如需時鐘的詳細資訊,請參閱 DirectShow 中的時間和時鐘。
視裝置而定, IAMExtDevice、 IAMExtTransport和 IAMTimeCodeReader 中的某些方法可能會傳回 Windows 錯誤碼,而不是 HRESULT 值。 可能的錯誤碼包括下列專案。
錯誤碼 描述 ERROR_TIMEOUT 外部裝置命令已逾時。 ERROR_REQ_NOT_ACCEP 裝置不接受這個外部裝置命令。 ERROR_NOT_SUPPORTED 裝置不支援這個外部裝置命令。 ERROR_REQUEST_ABORTED 外部裝置命令已中止。 可能已移除裝置,或發生匯流排重設。
裝置資訊
在 Windows Premium Edition 和 Windows XP 中,DV 篩選的裝置 Moniker 除了FriendlyName屬性之外,還支援Description屬性。 此屬性會傳回裝置的描述,其取自 INF 檔案,通常包含裝置的品牌名稱。 不過,所有裝置型號都不支援此屬性。
如需裝置 Moniker 的詳細資訊,請參閱 使用系統裝置列舉值。
時鐘時間
MSDV 驅動程式會使用包含在 1394 個數據封包中的 1394 匯流排時鐘來衍生時鐘。 它會使用這些值來時間戳記 DV 媒體範例。 因為這個來源時鐘不是電腦系統時鐘,所以時間最終會從電腦系統時鐘漂移。 不過,如上所述,根據預設,篩選圖形管理員會選取 MSDV 作為圖形參考時鐘。
IAMDroppedFrames介面會報告驅動程式目前已卸載框架的量值;此值可能不會與指定時間的實際捨棄畫面數完全同步處理。 如果卸載框架,則表示系統在資料生產 (超出資料耗用量) 。 例如,使用者的硬碟可能不足以支援 DV 擷取速率。
相關主題