WPF MediaKit具有VMR9的大显示屏的低帧速率

时间:2013-07-23 13:35:02

标签: wpf directshow wpf-mediakit

我正在使用WPF MediaKit来渲染一个directshow图。如果wpf D3DRender很小,则显示帧率很好。如果我增加显示器的大小(即控件),帧速率会显着下降。

如何防止帧率下降?我的显示器需要偶尔显示图形全屏,这会导致帧速率降至不可接受的值。

我听说EVR(增强视频渲染)比VMR9好得多。当增加显示器的尺寸时,EVR会保持帧速率吗?

1 个答案:

答案 0 :(得分:1)

初始化directshow图时,应指定视频压缩编解码器(MediaSubType)。尝试使用默认压缩从网络摄像头捕获视频时遇到了同样的问题(在我的情况下,它是YUY2)。

示例:

/// <summary>
/// Configures the DirectShow graph to play the selected video capture
/// device with the selected parameters
/// </summary>
private void SetupGraph()
{
    ...

    if (UseYuv && !EnableSampleGrabbing)
    {
        /* Configure the video output pin with our parameters and if it fails
         * then just use the default media subtype*/
        if (!SetVideoCaptureParameters(graphBuilder, m_captureDevice, MediaSubType.YUY2))
            SetVideoCaptureParameters(graphBuilder, m_captureDevice, Guid.Empty);
    }
    else
        /* Configure the video output pin with our parameters */
        SetVideoCaptureParameters(graphBuilder, m_captureDevice, MediaSubType.MJPG); // Change default compression to MJPG.

    ...
}

示例可以在WPFMediaKit.DirectShow.MediaPlayers.VideoCapturePlayer中找到。