草庐IT

windows - 如何在Windows驱动程序中直接写入帧缓冲区

我正在编写可以直接将数据写入帧缓冲区的驱动程序,这样我就可以在屏幕上显示secret消息,而用户空间的应用程序无法获取它。下面是我尝试将值写入帧缓冲区的代码,但是在我将值写入帧缓冲区之后,我从帧缓冲区检索到的值都是0。我很疑惑,有谁知道原因吗?或者谁知道如何在屏幕上显示消息,而用户空间中的应用程序无法获取消息的内容?非常感谢!#defineFRAME_BUFFER_PHYSICAL_ADDRESS0xA0000#defineBUFFER_SIZE0x20000voidshowMessage(){inti;int*vAddr;PHYSICAL_ADDRESSpAddr;pAddr.Qua

c# - 如何获取当前帧?

我想将当前帧(编号)发送到另一个应用程序。是否可以在axWindowsMediaPlayer控件中访问它? 最佳答案 我在axWindowsMediaPlayer控件上没有看到任何关于此的信息。但是你可以使用FrameGrabberproject从电影中提取帧。FrameGrabber是一个用c#编写的开源库,易于使用。希望这对您有所帮助。 关于c#-如何获取当前帧?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c++ - 在 CBaseRenderer 上实现帧步骤

对于视频混合渲染器,我有//IFilterGraph*m_FilterGraphIVideoFrameStep*ivfs=0;HRESULThr=m_FilterGraph->QueryInterface(IID_IVideoFrameStep,(void**)&ivfs);if(SUCCEEDED(hr)){ivfs->Step(1,0);}SAFE_RELEASE(ivfs);它有效,但我不能使用基类CBaseRenderer的派生类来实现同样的效果。阅读引用页面,我尝试在渲染器上实现IKsPropertySet接口(interface),但它从未被查询过,所以就是这样......

windows - 我可以在不播放的情况下从 DirectShow 获取原始视频帧吗

我正在使用媒体基础开发媒体播放器。我想支持VOB文件播放。但是,媒体基础目前不支持VOB容器。因此,我希望同样使用DirectShow。我的想法是不使用DirectsShow图采用替代路径,而只是抓取一个视频帧并将其传递到媒体基础中的同一管道。在媒体基础中,我有一个“IMFSourceReader”,它只是从视频文件中读取帧。是否有直接显示等价物,它只给我帧而无需创建图形、开始播放循环,然后尝试从渲染图钉中提取帧?(更清楚地说,DirectsShow是否支持一种架构,在这种架构中它可以给我原始帧而无需实际播放视频?)我读过有关ISampleGrabber的信息,但它已被弃用,我认为它不

c++ - Media Foundation - 如何在 MFT(Media Foundation Transform)中更改帧大小

我正在尝试实现能够旋转视频的MFT。旋转本身将在转换函数内完成。为此,我需要更改输出帧大小,但我不知道该怎么做。作为起点,我使用了Microsoft提供的MFT_Grayscale示例。我将此MFT作为转换节点包含在部分拓扑中HRESULTPlayer::AddBranchToPartialTopology(IMFTopology*pTopology,IMFPresentationDescriptor*pSourcePD,DWORDiStream){...IMFTopologyNodepTransformNode=NULL;...hr=CreateTransformNode(CLSID

python - 如何在 Windows 上从 ffmpeg 获取实时视频帧和时间戳到 python

寻找替代方案,因为OpenCV不会为实时相机流(在Windows上)提供时间戳,而这在我的计算机视觉算法中是必需的,我找到了ffmpeg和这个优秀文章https://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/该解决方案使用ffmpeg,访问其标准输出(stdout)流。我扩展它以读取标准错误(stderr)流。在Windows上运行python代码,虽然我从ffmpegstdout接收到视频帧,但在为第一帧提供showinfovideofilter详细信息(时间戳

windows - 如何在 Windows 中从 WLAN 捕获信标帧?

我在Windows上使用nativeWifiapi以编程方式使用WLAN执行一些任务。但是,我的问题是它公开了有限的功能集。我想访问提供接入点负载、通话时间等信息的信标帧的某些字段。可以使用哪些工具来执行此操作?提前致谢! 最佳答案 我会看一下winpcap.它能够捕获802.11帧。但是,在Windows中,芯片组驱动程序可能不允许将WLAN设置为监控模式。如果是这种情况,则winpcap可能无法获得有关信标帧的必要信息。还有一个商业产品,airpcap,它似乎与允许在Windows中进行全面wifi监控的驱动程序和硬件捆绑在一起

c++ - DirectShow - 获取视频帧

我正在创建Windows视频捕获应用程序并使用DirectShow进行捕获。随着每一帧的到来,我想将其作为原始RGB位图抓取到缓冲区中,此时我的代码将执行我需要的任何处理。我一直在寻找与我想做的类似的示例,而且我在网上看到的所有地方,人们都建议使用IMediaDet和/或ISampleGrabber接口(interface)进行逐帧捕获。不幸的是,两者都已弃用,甚至不在最新版本的WindowsSDK中。在DirectShow中进行逐帧捕获的最佳(现代)方法是什么?如果没有,我是否应该使用其他库来进行逐帧捕获? 最佳答案 Sample

c# - FFmpeg 跳过渲染帧

当我从视频中提取帧时,我注意到ffmpeg不会完成某些图像的渲染。问题最终成为两个jpeg图像之间的字节“填充”。如果我的缓冲区大小是4096,并且如果该缓冲区中包含来自上一张图像和下一张图像的字节,并且如果它们没有被任意数量的字节分隔,则下一张图像无法正确呈现。这是为什么?-ipath-fimage2pipe-c:vmjpeg-q:v2-vffps=25pipe:1渲染帧:代码示例:publicvoidExtractFrames(){stringFFmpegPath="Path...";stringArguments=$"-i{VideoPath}-fimage2pipe-c:vmj

windows - 是否可以在上下文/线程之间共享 opengl 帧缓冲区对象?

我想在一个线程中渲染我的场景,然后在另一个线程拥有的窗口中blit结果。为了避免将帧缓冲区读回cpu内存,我想使用一个帧缓冲区对象。到目前为止,我还没有能够让它工作(白色纹理),这让我相信opengl不支持它。是否可以在不同上下文之间共享帧缓冲区对象?是否可以在不同线程之间共享一个帧缓冲区对象,前提是该对象一次仅由一个线程绑定(bind)?如果有人能指出文档中对此进行描述的位置,那将是一种奖励。 最佳答案 不可能在不同的上下文之间共享帧缓冲区。请参阅附录D的第一段,OpenGL3.3规范。但是,您可以共享纹理和渲染缓冲区,这应该可以