问题标签 [desktopcapturer]

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.

0 投票
0 回答
472 浏览

node.js - desktopCapturer - 如何证明音频正在通过?

我有以下代码尝试从我的 Windows 桌面上运行的特定应用程序捕获音频/视频:

当我运行它时,我可以听到音频......但当然我无法判断音频是来自原始 Windows 应用程序还是电子应用程序

问题

关于如何测试这个有什么建议吗?我如何向自己证明电子应用程序也在发送音频?例如,有没有办法“告诉”电子使用特定设备播放音频,而不仅仅是在计算机的默认扬声器/输出上播放音频?

我假设这是从正在运行的特定应用程序中捕获音频/视频的方法,而不是从系统扬声器中获取音频/视频。这个假设正确吗?

编辑 1

自发布以来,我梳理了本手册:

https://www.electronjs.org/docs/api/desktop-capturer?q=console.log

我更改了代码,因此对于音频,我没有指定源 ID,如下所示:

现在......当我启动电子应用程序并启动我的 av 应用程序时,电子应用程序会发送切碎的音频。它被严重破坏了,我什么都听不清……同时,我仍然可以听到源应用程序的音频。所以我想我已经证明它正在捕获一些音频......但它太糟糕了,它无法使用。

根据文档中的注释,它说在流式传输音频时不指定 sourceID 的事实,我猜您可以按原样使用电子从特定的 windows 应用程序获取音频。您只能请求整个桌面音频。但是如果有更多经验的人可以确认,那就太好了。

谢谢。

0 投票
0 回答
108 浏览

c++ - Directshow 虚拟相机中的模糊桌面捕获输出

我正在尝试创建 Directshow virtaul 相机来捕获桌面。
为了创建虚拟相机,我使用了现有的https://github.com/roman380/tmhare.mvps.org-vcam
为了添加桌面捕获而不是随机数据,我从Microsofts Push Source Filters Sample获得了帮助

桌面捕获推送源过滤器的确切源代码位于
https://github.com/roman380/Windows-classic-samples/blob/master/Samples/Win7Samples/multimedia/directshow/filters/pushsource/PushSourceDesktop.cpp

我正在初始化媒体类型的输出引脚构造函数是

HRESULT GetMediaType(int iPosition, CMediaType *pmt);

我在 google meet 上试过这个虚拟相机,它工作正常,它显示我的桌面,但视频质量很差

在此处输入图像描述

这个模糊视频的原因是什么,我该如何解决这个问题?

0 投票
1 回答
493 浏览

javascript - 有没有办法绕过 Chrome desktopCapture 的选择媒体屏幕?

我正在使用 Chrome desktopCapture API 创建屏幕录制 Chrome 应用程序。

目前,我正在这样做:


应用程序.js:


背景.js:


清单.json:


这在 UI 上创建的行为:

  1. 我点击我的 Chrome 应用程序,它显示了一个“开始录制”按钮(上面代码中使用的 id=startRecording)。 开始录制按钮 - 自定义屏幕
  2. 一旦我在这个按钮上计时,它就会显示这个谷歌屏幕来选择我想要记录的内容: 谷歌的选择媒体提示
  3. 然后我开始使用这个屏幕。

我想要实现的目标:绕过这个谷歌生成的屏幕来选择要录制的媒体的方法。我想在我的代码中传递媒体类型,并在单击第一个“开始录制”按钮时,我希望它开始录制我在代码中传递的类型,而不是向我显示选择媒体提示。

有可能这样做吗?

0 投票
1 回答
25 浏览

javascript - 如何以编程方式打开我从 Electron DesktopCapurer.getSources 获得的窗口

我正在使用 MAC;嗨,我正在使用 DesktopCapturer 来获取我可以记录的所有窗口,并且在使用 getSources 方法之后,我得到了像

这是一个 WebStorm 应用程序。如何以编程方式打开这个将这个应用程序移动到桌面上。

0 投票
0 回答
54 浏览

javascript - 属性 display_id 是 desktopCapturer.getSources() 中窗口源的空字符串

嘿伙计们,我已将我的 MacBook 与辅助显示器连接。我正在使用 desktopCapturer.getSources() 来获取两个显示器中可用的窗口列表。问题是返回的源的 display_id 为空字符串。我想过滤可用的窗口在 display_id 属性上,对于“窗口”类型源为空(尽管屏幕类型源具有有效的 display_id)。有什么方法可以获取窗口类型源的 display_id 吗?提前致谢!!

0 投票
1 回答
259 浏览

electron - desktopCapturer.getSources 和 getUserMedia 不起作用

我有一个使用 desktopCapturer 的 Electron 应用程序,我还使用 getUserMedia 捕获音频。

所有这些都在开发中运行良好。但是在使用适用于 Mac 的电子生成器 (dmg) 构建应用程序之后,

  1. desktopCapturer 的 getSources 只返回电子应用程序和桌面的缩略图作为源,不返回所有其他窗口的缩略图(即使它们的标题是)。

  2. 我还不断被问到是否应该允许该应用程序录制屏幕,即使在设置>屏幕录制中,该应用程序已被允许。(也许它一直在要求音频?即便如此,如何让应用程序录制音频?)

  3. 我也无法录制任何音频,但在开发过程中,我能够录制。

  4. 该应用程序也不再能够从摄像头记录下来getUserMedia error: NotReadableError: Could not start video source electron- 即使没有其他应用程序正在使用摄像头。

我完全不知道问题是什么或如何调试它。任何帮助表示赞赏!

0 投票
1 回答
44 浏览

qt - 如何使用 Qt 录制屏幕?

使用Qt截屏非常容易,正如官方示例中所展示的那样。

https://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html

我对创建屏幕录像机很感兴趣,但我找不到这样做的 Qt 方法。

如何使用 Qt 进行屏幕录制?

0 投票
0 回答
91 浏览

windows - 如何在 Windows 操作系统上使用 Qt 查找用于记录特定窗口的窗口 ID?

如何使用Qt在 Windows 操作系统上创建特定窗口的视频?特定窗口可以是任何打开的 GUI 程序,如 Chrome、记事本等

通过连续截屏使用这种方法,我可以记录整个桌面,但如何记录特定窗口?为此,我首先需要知道window id那个特定的窗口。

0 投票
0 回答
177 浏览

javascript - 电子屏幕捕获无法通过全屏窗口获取正确的内容

我正在为 Games Overlay 项目工作,该项目使用 Electron 和 desktopCapturer 从电子之外的全屏窗口捕获一些屏幕截图。我正在使用您可以在 Electron 文档中找到的默认方法:

  • desktopCapturer.getSources()使用;获取源代码
  • navigator.mediaDevices.getUserMedia()用;开始视频流
  • 创建标签并使用video.srcObject = stream;设置视频流
  • 在 with 中绘制视频内容ctx.drawImage(video, 0, 0, canvas.width, canvas.height);并使用callback(canvas.toDataURL('image/png'));

它在几乎所有应用程序中都能完美运行,但在这个特别的全屏游戏中我遇到了一个问题:它工作正常并且可以正确打印屏幕,直到游戏窗口上方有一些东西,一些例子:

  1. 通过窗口键盘键打开窗口菜单;
  2. 在其上方拖动另一个非全屏窗口;
  3. 在其上方覆盖一个透明的电子窗口;

画布生成的图像上的结果似乎是游戏打开之前的最后一个已知状态:有时是我的桌面工作区,有时是当时打开的另一个应用程序,有时是游戏本身的加载屏幕。

我现在拥有的解决方案是在打印屏幕之前隐藏我的覆盖窗口并在此之后再次显示它,但是我必须为此解决方案工作设置 100+- ms 超时,这会导致我的覆盖层出现难看的闪烁。

我在其他一些全屏游戏中测试了相同的代码,它工作得很好。

有什么想法吗?我不知道问题是否出在 Electron 中,或者游戏是否有某些窗口配置导致了这种情况。

提前谢谢!

0 投票
0 回答
34 浏览

electron - 如何通过 Electron desktopCapturer 截取包括双屏在内的屏幕截图

如何截取包括双屏在内的屏幕截图?