媒体基金会截图挂钩
Media Foundation screenshot hook
需要在正确的时间截取应用程序的屏幕截图(它可以被阻止、折叠甚至在不同的会话中)。该应用程序通过媒体基础播放视频流:
据我了解有必要截取MFCreateMediaSession
,接收什么IMFMediaSession
,只有这里进一步用这个对象做什么?可以从另一个线程访问它吗?
我看到您在 Media Foundation 的基础上编写了用于播放视频的应用程序 - 您需要将视频图像作为单独的解码帧。所以,你有两个机会:
- 从渲染器获取视频帧:常规 Media Foundation 渲染器具有
IMFVideoDisplayControl
接口 - 在 MSDN IMFVideoDisplayControl - it has command GetCurrentImage
- retrieves a copy of the current image being displayed by the video renderer - on MSDN GetCurrentImage.
- 第二种方式 - 将样本采集器接收器附加到视频管道 - 媒体基础函数
MFCreateSampleGrabberSinkActivate
允许使用 IMFSampleGrabberSinkCallback interface - it allows get decoded video images in format of Bitmap images in System Memory. Using of sample grabber is more difficult, and I can recommend my project Capturing Video from Web-camera on Windows 7 and 8 by using Media Foundation 从样本采集器对象创建接收器以用于研究这种方式。
此致。
需要在正确的时间截取应用程序的屏幕截图(它可以被阻止、折叠甚至在不同的会话中)。该应用程序通过媒体基础播放视频流:
据我了解有必要截取MFCreateMediaSession
,接收什么IMFMediaSession
,只有这里进一步用这个对象做什么?可以从另一个线程访问它吗?
我看到您在 Media Foundation 的基础上编写了用于播放视频的应用程序 - 您需要将视频图像作为单独的解码帧。所以,你有两个机会:
- 从渲染器获取视频帧:常规 Media Foundation 渲染器具有
IMFVideoDisplayControl
接口 - 在 MSDN IMFVideoDisplayControl - it has commandGetCurrentImage
- retrieves a copy of the current image being displayed by the video renderer - on MSDN GetCurrentImage. - 第二种方式 - 将样本采集器接收器附加到视频管道 - 媒体基础函数
MFCreateSampleGrabberSinkActivate
允许使用 IMFSampleGrabberSinkCallback interface - it allows get decoded video images in format of Bitmap images in System Memory. Using of sample grabber is more difficult, and I can recommend my project Capturing Video from Web-camera on Windows 7 and 8 by using Media Foundation 从样本采集器对象创建接收器以用于研究这种方式。
此致。