问题标签 [gdigrab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - ffmpeg gdigrab 在捕获图形密集型飞行模拟器时记录黑窗
我正在尝试从流行的飞行模拟器XPlane捕获视频。我在 Windows 上运行。
通常,我可以使用 捕获单个窗口gdigrab
,但是当我在这样的 XPlane 窗口上使用它时......
...我得到一个尺寸正确但全黑的视频文件。我想这可能与 XPlane 如何直接与 GPU 对话有关。我应该补充一点,如果我像这样捕获整个桌面......
...我得到了包括模拟器窗口在内的所有内容,但自然而然地在捕获中使用了不相关的窗口,包括位于模拟器窗口顶部的窗口。
有没有办法gdigrab
单独捕获这个 GPU 密集型窗口的视频?我可以使用其他工具吗?
python - 标题更改时FFMPEG gdigrab不会停止
我正在尝试使用 ffmpeg gdigrab 捕获视频播放列表。播放器输入一批视频。我想为播放器中每个加载的文件创建一个单独的视频。我能够使用 ffmpeg gdigrab 为一个视频捕获视频。问题是,当窗口标题更改时(即加载下一个文件时)它不会停止,而是在整个持续时间内只创建一个文件。阻止它的唯一方法是关闭整个窗口。我不能继续这样做的原因是因为用户可以选择在录制开始时更改任何设置,然后整个播放列表将使用相同的设置。
我还尝试了其他选项,例如使用subprocess.Popen
启动 ffmpeg,然后使用.terminate()
或.kill()
停止它,但录制仍在继续。同样,'q'
从文件发送密钥也不起作用。
理想情况下,我希望它gdigrab
应该能够检测到抓取的窗口标题何时与预期的不同并停止,但是,在这里它看起来像是将自身锚定到窗口而不是标题。
我使用的是 Windows 10 PC,此工具的编程语言是 Python。我正在使用 ffmpeg 版本 4.4-full_build。
如果您对此有任何想法,那将有很大帮助。
powershell - 屏幕录制时的 FFmpeg 进程优先级
我通过 FFmpeg 制作了屏幕录制公式,它适用于 Counter-Strike 和 Dota 2。但它不适用于《坦克世界》。所以我遇到了麻烦。几分钟后坦克世界崩溃了。并且录制速度低于 1x(约 0.87x 并且变得越来越慢)。所以我认为我需要提高FFmpeg的优先级进程。在我的 Youtube 频道上寻找它的测试:我对 ffmpeg 屏幕录制的测试
所以我想自动为这个过程设置“高”或“实时”优先级!
但现在我可以通过两种方式做到这一点:
- 通过任务管理器;
- 通过第二个 PowerShell 窗口和第二个“复制粘贴”。
但两种方法都需要时间(5-20 秒)。这不好。我无法Start-Process ffmpeg -NoNewWindow -Wait -ArgumentList
将 PriorityClass 设置为此处的stackoverflow,因为我的 FFmpeg 的 ArgumentList 太大。而且我不能start-process pwsh -ArgumentList
为新的 powershell 窗口设置 PriorityClass。它给我写了一个错误。我为 Youtube 测试过的公式:
我目前的高优先级公式 - 第一个选项卡:
第二个选项卡(第二个复制粘贴操作):
我怎样才能在唯一的一个动作中做到这一点?
c++ - gdigrab 的 FFMPEG 屏幕录制“找不到输入设备”。在 Windows 10 上
我需要在我的软件中实现屏幕录制,但在 Windows 10 中获取 gdigrab 时遇到问题。此代码返回
“找不到输入设备。” (av_find_input_format("gdigrab") 返回 NULL)。
如果我尝试使用 ffmpeg.exe 录制桌面ffmpeg -f gdigrab -i desktop out.avi
,则桌面正在正确录制。