如果不是本机分辨率,则从AVI播放DirectShow vmr不良动作

时间:2018-11-20 16:13:31

标签: video directshow

.Net Windows应用程序中有一个非常简单的播放图。 (通过DirectShowLib)

File Source ->  [Some Splitter] -> VMR7 || VMR9

分离器可以是lav,ffdhow,实际上是任何东西,它只是一个智能连接。

如果可用,渲染器将为VMR9,否则为VMR7。

VMR并不聪明,仅用于使视频无窗口显示,并在用户要求时捕获样本。

已经使用了很多年,视频可以是DV或MPEG2(因此,VMR用于帧捕获,而不是Sample Grabber)。

最近,我在多个Windows 10系统上都遇到了一个问题,这些问题实际上都将使用VMR9(尽管VMR7不能解决该问题),这在播放某些比原始avi剪切或缩小的avi文件时明显。按原始尺寸播放,图片就很好。

使用EVR而不是VMR可以解决所有视频问题,但是由于其图像捕获是输出矩形的大小而不是源的大小,这使我有些痛苦。

因此,我想知道是否有人可以在将VMR与avi文件(多种格式,DV / h264 ..)一起使用时,了解我的经历。请注意,graph studio和vlc Player会显示相同的问题。

enter image description here

enter image description here

我将其描述为严重的运动重影,请注意,如果原始视频文件在EVR或VMR上以源尺寸呈现,则效果很好。

真的很感谢任何想法。

---------------其他信息-------------------------

值得一提的是,所有有问题的avi文件都是通过USB捕获设备从复合/ s视频源捕获的。

1 个答案:

答案 0 :(得分:1)

所呈现的伪像通常用于呈现隔行扫描内容而不进行隔行扫描。

在某些情况下(例如在您的EVR测试中),可以自动提供去隔行,尤其是。通过Direct3D设备。否则,您会看到上述效果。粗略地说,由于VMR是废弃的API,因此即使较旧的系统可以处理反交错,较新的系统也很可能无法通过VMR-9应用自动反交错。

要解决此问题,您有兴趣应用反交错,无论是使用附加的后期处理过滤器的硬件还是软件反交错。