【发布时间】:2014-04-09 11:45:04
【问题描述】:
我想使用 C++ 和 winapi 捕获应用程序的视频输出,并将其通过网络传输。目前,我正在使用 DirectShow 过滤器捕获此输出。该应用程序在屏幕上显示它的视频输出,我只是捕捉那里的任何内容。我想优化这个过程。
我的问题是:有没有办法在应用程序的视频/音频输出显示在屏幕上之前捕获它?
谢谢。
【问题讨论】:
我想使用 C++ 和 winapi 捕获应用程序的视频输出,并将其通过网络传输。目前,我正在使用 DirectShow 过滤器捕获此输出。该应用程序在屏幕上显示它的视频输出,我只是捕捉那里的任何内容。我想优化这个过程。
我的问题是:有没有办法在应用程序的视频/音频输出显示在屏幕上之前捕获它?
谢谢。
【问题讨论】:
在显示之前拍摄视频?
这取决于应用程序如何为您提供视频。
实时渲染 - 您无法访问不存在的内容。像电子游戏,或者任何只显示实际状态的动态渲染,也许对未来一无所知。 还有一个异常,当渲染变得比屏幕刷新率慢时,称为screen tearing。
静态显示 - 所有数据都已可用。例如,如果它是一个视频播放器应用程序,在您的本地机器上有一个视频,您唯一的任务就是获取数据,并及时将其捕捉到适当的位置。
最后但并非最不重要的一点是,每个硬件都有一个反应时间,即处理数据的小延迟。
【讨论】: