共用方式為


訊號格式

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

DV 攝影機的訊號格式可以是 NTSC 或 PAL、標準或長時間播放。

MSDV 驅動程式

若要從 MSDV 驅動程式取得輸入訊號格式,請呼叫 IAMExtTransport::GetTransportBasicParameters 方法,並傳入 ED_TRANSBASIC_INPUT_SIGNAL 旗標。 方法會傳回定義的常數,指出格式。

下列程式碼會檢查訊號格式,並使用此值來計算每個畫面的平均時間。 變數 Mode 會接收訊號格式常數。

LONG Mode, AvgTimePerFrame;
hr = MyDevCap.pTransport->GetTransportBasicParameters(
        ED_TRANSBASIC_INPUT_SIGNAL, &Mode, NULL);
if (SUCCEEDED(hr))
{
    switch (Mode)
    {
    case ED_TRANSBASIC_SIGNAL_525_60_SD: // NTSC SD
        AvgTimePerFrame = 33;  // 33 msec (29.97 FPS)
        break;
    case ED_TRANSBASIC_SIGNAL_525_60_SDL: // NTSC SDL
        AvgTimePerFrame = 33;  
        break;
    case ED_TRANSBASIC_SIGNAL_625_50_SD: // PAL SD
        AvgTimePerFrame = 40;  // 40 msec (25 FPS)
        break;
    case ED_TRANSBASIC_SIGNAL_625_50_SDL: // PAL SDL
        AvgTimePerFrame = 40;  
        break;
    default: 
        // Unknown type
        AvgTimePerFrame = 33; // Default
        break;
    }
}

若要取得輸出訊號格式,請使用 ED_TRANSBASIC_OUTPUT_SIGNAL 旗標呼叫相同的方法。

UVC 驅動程式

若要從 UVC 驅動程式取得輸入或輸出訊號格式,請在釘選上呼叫 IAMStreamConfig::GetFormat ,並檢查視訊格式區塊。 (針對 UVC 裝置,上一個範例中顯示的程式碼通常會傳回ED_TRANSBASIC_SIGNAL_UNKNOWN,因此它並不可靠。)

控制 DV Camcorder