DirectShow vmr 从 avi 播放不良运动(如果不是原始分辨率)
DirectShow vmr bad motion playback from avi if not in native resolution
我在 .Net Windows 应用程序中有一个相当简单的回放图。 (通过 DirectShowLib)
File Source -> [Some Splitter] -> VMR7 || VMR9
分离器可以是 lav,ffdhow,任何东西,它只是一个智能连接。
渲染器可用时为 VMR9,否则为 VMR7。
VMR 没有什么聪明的用途,只是为了渲染视频无窗口,并在用户要求时捕获样本。
这已经工作了很多年,视频可以是任何东西,包括 DV 或 MPEG2(因此 VMR 用于帧捕获而不是样本采集器)。
就在最近,我在多个 Windows 10 个系统上遇到了一个问题,这些系统实际上都使用 VMR9(尽管 VMR7 没有解决这个问题),在播放某些剪辑得比原始文件更小或更大的 avi 文件时很明显avi。原尺寸玩,画面没问题
使用 EVR 而不是 VMR 可以解决所有视频问题,但它让我有些痛苦,因为它的图像捕获是输出矩形的大小而不是源。
所以我想知道是否有人可以阐明我在将 VMR 与 avi 文件(多种格式,DV / h264 ..)一起使用时遇到的情况。请注意,graph studio 和 vlc player 显示相同的问题。
我将这种效果描述为严重的运动重影,请注意,如果在 EVR 或 VMR 上以源尺寸渲染原始视频文件看起来不错。
非常感谢任何想法。
----------------额外信息------------------------
值得一提的是,所有有问题的 avi 文件都是通过 USB 捕获设备从复合/s 视频源捕获的。
所呈现的伪影是典型的没有去隔行的隔行扫描内容的呈现。
在某些情况下(例如在您的 EVR 测试中)可以自动提供反隔行扫描,尤其是。通过 Direct3D 设备。否则你会看到提到的效果。粗略地说,由于 VMR 已被废弃 API,即使旧系统可以处理去隔行,较新的系统也很可能无法通过 VMR-9 应用自动去隔行。
要解决您有兴趣应用去隔行扫描的问题,无论是使用额外的 post 处理过滤器的硬件还是软件去隔行扫描。
我在 .Net Windows 应用程序中有一个相当简单的回放图。 (通过 DirectShowLib)
File Source -> [Some Splitter] -> VMR7 || VMR9
分离器可以是 lav,ffdhow,任何东西,它只是一个智能连接。
渲染器可用时为 VMR9,否则为 VMR7。
VMR 没有什么聪明的用途,只是为了渲染视频无窗口,并在用户要求时捕获样本。
这已经工作了很多年,视频可以是任何东西,包括 DV 或 MPEG2(因此 VMR 用于帧捕获而不是样本采集器)。
就在最近,我在多个 Windows 10 个系统上遇到了一个问题,这些系统实际上都使用 VMR9(尽管 VMR7 没有解决这个问题),在播放某些剪辑得比原始文件更小或更大的 avi 文件时很明显avi。原尺寸玩,画面没问题
使用 EVR 而不是 VMR 可以解决所有视频问题,但它让我有些痛苦,因为它的图像捕获是输出矩形的大小而不是源。
所以我想知道是否有人可以阐明我在将 VMR 与 avi 文件(多种格式,DV / h264 ..)一起使用时遇到的情况。请注意,graph studio 和 vlc player 显示相同的问题。
我将这种效果描述为严重的运动重影,请注意,如果在 EVR 或 VMR 上以源尺寸渲染原始视频文件看起来不错。
非常感谢任何想法。
----------------额外信息------------------------
值得一提的是,所有有问题的 avi 文件都是通过 USB 捕获设备从复合/s 视频源捕获的。
所呈现的伪影是典型的没有去隔行的隔行扫描内容的呈现。
在某些情况下(例如在您的 EVR 测试中)可以自动提供反隔行扫描,尤其是。通过 Direct3D 设备。否则你会看到提到的效果。粗略地说,由于 VMR 已被废弃 API,即使旧系统可以处理去隔行,较新的系统也很可能无法通过 VMR-9 应用自动去隔行。
要解决您有兴趣应用去隔行扫描的问题,无论是使用额外的 post 处理过滤器的硬件还是软件去隔行扫描。