Mit*_*a M 5 c++ windows ffmpeg video-capture
我使用 gdigrab 来捕获窗口。效果很好,但是鼠标指针闪烁。(特别是当窗口尺寸较大时)
我的命令(c#):
Process FFProc= new Process();
FFProc.StartInfo.FileName = "cmd.exe";
FFProc.StartInfo.Arguments="/C ffmpeg -y -f gdigrab -framerate 25 -i title=\"MyWin\" out.mpg";
FFProc.Start();
Run Code Online (Sandbox Code Playgroud)
或(c++):
system("ffmpeg -y -f gdigrab -framerate 25 -i title=\"MyWin\" out.mpg");
Run Code Online (Sandbox Code Playgroud)
请告诉我如何通过 FFmpeg 捕获窗口时避免鼠标指针闪烁?
FFmpeg = 最新的Zeranoe版本
操作系统 = MS Windows 8.1
小智 3
很久以前,在 Windows 3.x 中,鼠标光标是在软件中渲染的,当协作多任务操作系统繁忙时,它会闪烁、卡住,并且在其他方面非常有限。
后来,在 Windows 95 推出之前,引入了视频卡来“加速”Windows 操作。这些显卡支持硬件加速 bitblt 和硬件鼠标光标。鼠标的反应非常流畅,并且支持阴影。
显卡经历了多次演变,3D 加速变得更加重要。2D 硬件被放弃,取而代之的是更通用的 3D 支持,带有轨迹的鼠标光标和/或 alpha 混合阴影变得流行。
这意味着事情又回到了原点,鼠标光标再次由软件呈现,但对于多任务操作系统来说,没有第一次的缺点。
但是,由于鼠标实际上是渲染到显示器上的,因此为了捕获干净的屏幕截图,必须移除鼠标光标。光标现在或曾经被实现为分层窗口。
所有这一切的结果是,如果您获取窗口的 DC(通过 GetDCEx)并从中复制而不隐藏光标,您将在生成的屏幕截图中获得光标。
要捕获屏幕而不使光标闪烁,您需要切换到硬件光标,我只是认为不再支持它。
| 归档时间: |
|
| 查看次数: |
3232 次 |
| 最近记录: |