问题标签 [obs]

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 投票
1 回答
717 浏览

ffmpeg - 使用实际录音过滤掉视频中的噪音

我使用我的笔记本电脑(戴尔 XPS13 上的 Ubuntu 18.04 LTS 衍生产品)使用OBS录制视频(这些只是旁白的演示文稿) 。演示完成后(.flv 格式),我使用 ffmpeg 处理它,使用过滤器尝试减少背景噪音、减小视频大小、将编码更改为 .mp4、插入水印等。几个月后,这个系统运作良好。

但是,我的笔记本电脑现在开始显示它的年龄(它是 4 岁)。这意味着风扇会变得响亮 - 响亮到足以在录音中注意到,但在您工作时不会响亮。因此,即使在 ffmpeg 中对低频进行过滤后,视频中仍会保留点击和其他类型的声音。我是一名科学家,但不是音频/视频专家。所以,我在想——我是否可以在我不演示时简单地记录机器发出的噪音,然后使用该录音过滤掉机器在演示期间发出的噪音?

像过滤掉某些音频频谱范围等一揽子方法不太可能奏效,因为噪声的功率谱可能有很多峰值,而且这些峰值也可能延伸到人声范围内(我能听到它们)。此外,这是一个移动的目标 - 笔记本电脑正在老化,无论如何,它产生的噪音的数量和类型取决于负载和它已经打开了多长时间。算法:

  1. 在我不录制时录制实际的计算机噪音(加上背景噪音)。理想情况下,就在开始录制演示文稿之前。这可以采取 1-2 分钟音频样本的形式。
  2. 在 OBS 上录制演示文稿。
  3. 使用 1 作为滤波器来去除 2 中的噪声。我想这将涉及对 1 进行傅立叶分析,然后在每个时期从 2 的频谱中去除这些峰值。

我已经研究过 sox,这是人们有些轻率地指向你而没有提供任何细节的东西。我不知道如何从视频中分离出音频通道,然后将它们交错在一起(不是这里的软件专家)。除了 RTFM,还有其他人可以提供的有用建议吗?我已经搜索过,但无法找到 HOWTO。我认为这可能是我搜索的错误,因为我拒绝相信这是一个新想法——它是许多领域用来消除噪音的标准方法,包括天文学。

0 投票
0 回答
46 浏览

audio - 如何流式传输桌面声音而不是与 obs 的传入语音聊天

我正在使用 obs 来控制视频会议的视频和音频(不和谐、谷歌、缩放等)为了管理音频我使用音频监视器,我将麦克风设置为音频捕获设备并将其用作任何视频会议应用程序中的输入到目前为止有效。

但是,我还希望将所有桌面声音,但没有来自会议应用程序的传入聊天声音流式传输到音频捕获设备。因此,fe 可以在电话会议中通过声音流式传输视频,人们可以在没有回声的情况下进行交谈。

如何在不更改单个应用程序输出的情况下做到这一点?我可以将任何其他未使用的声音设备(监视器)设置为会议应用程序输出,并在 obs 中将监视器设置为我的耳机。但这也使它成为“桌面声音”的一部分,当我流式传输桌面声音时,会议中的每个人都会有回声。

总而言之:我想在 obs 中设置声音滑块,它控制我的声音进入声音捕获设备,另一个滑块控制我所有的计算机声音(没有来自会议应用程序的输出声音)进入声音捕获设备。

0 投票
0 回答
39 浏览

discord - 当事件发生在 Discord、OBS 更新中的浏览器源时,如何做到这一点?

我目前正在尝试使用 discord.py 和 OBS 脚本。我对 Discord 的 StreamKit 感到恼火的是,我一次只能将语音叠加设置为一个频道,而不是我当前所在的任何频道。我正在尝试制作一个程序,以便当我移动频道时,它会更新具有正确服务器和频道 ID 的浏览器源的 URL。出于某种原因,每当运行循环时,OBS 就会崩溃,所以我不能有一个事件处理程序来告诉 OBS 什么时候我加入了一个新的语音频道。相反,我决定这样做,这样它就可以通过一个按键进行更新。每当我尝试将 discord.py 放入其中时if pressed:,都会出现错误。有没有什么办法解决这一问题?到目前为止,这是我的代码:

0 投票
0 回答
48 浏览

obs - OBS API:是否可以使用他们的 API 创建包含某些源(如窗口捕获)的场景?

我想使用他们的 API 在 OBS 上创建一个带有一些源(如窗口捕获)的场景。但是,我不知道这是否可能。文档中有一个创建源的功能:

但我没有找到 obs_data_t 的例子。这是文档:https ://obsproject.com/docs/reference-core.html#c.obs_load_source

谢谢!

0 投票
0 回答
67 浏览

matlab - 将matlab连接到网络摄像机

类似的问题,如Access IP-camera with matlab

我尝试独立读取两个不同的 IP 摄像头(Ubiquiti UniFi UVC G3 和一个通过 OBS Studio 的虚拟摄像头)。

它适用于 VLC 播放器,但不适用于 Matlab。不幸的是,matlab 的帮助也帮不了我。我收到错误:无法连接到 IP 摄像机流 URL。确保 URL 正确,并在需要时提供身份验证。

我从相机的界面(独立模式)或从 OBS-Studio 将 URL 输入到 VLC 并在 VLC 中显示视频。我还检查了 VLC 的编解码器信息。与matlab帮助相比,我有2个流,但视频流是H264 (见图1) (见图2)

连接虚拟相机的代码:

UniFi摄像头连接代码:

我究竟做错了什么?

谢谢你的帮助!

0 投票
0 回答
79 浏览

directx - 使用 OBS 捕获窗口时 D3D12 对象访问错误消息

我正在研究一个简单的 Direct3D12 示例,它工作正常,但是当我尝试使用 OBS(开放广播软件)捕获我的应用程序窗口时,Visual Studio 输出报告以下错误消息:

[OBS] d3d12 共享贴图采集成功

D3D12 错误:ID3D12CommandQueue::ExecuteCommandLists: 非同时访问纹理资源 (0x000001B7CFCA9520:'未命名对象') 仍被另一个命令队列 (0x000001B7C912BD10:'未命名 ID3D12CommandQueue 对象') 上运行中的 write|transition_barrier GPU 操作引用。现在在此命令队列(0x000001B7D005FB90:'Unnamed ID3D12CommandQueue Object')上启动 transition_barrier GPU 操作是不安全的。这可能导致竞争条件和应用程序不稳定。[执行错误#1047:OBJECT_ACCESSED_WHILE_STILL_IN_USE]

[OBS] ----------------- d3d12 捕获释放 ----------------

这是我的示例代码的链接。

我的问题是 OBS 做了什么导致这个错误代码,我该如何适当地解决它?

0 投票
0 回答
56 浏览

lua - 检测到静音时暂停或 JumpCut 视频录制

今天我发布了一个想法,以在未来版本的 obs 中添加一些功能。想法听起来是这样的:

第一步 - 我们按下录制按钮。2 步 - 如果声级大于 >= 大于 ..x.. dB,那么它会s continue to recording. 3 step - if sound level less <= than ..x.. dB then it暂停我们的录音。*它与过滤器相同 - 压缩器,但包括暂停\取消暂停功能。

一切都很简单!因为那个。如果我们录制一些长流,例如 3 多个小时。如果我们使用这种方法(或插件,或脚本),我们只能得到 15-45 分钟的视频,没有静音。因为它会被自动切割。只是没有记录下沉默的时刻。并且无需在 Sony Vegas 自己手动操作(很无聊)。

也许论坛主题已经包含这样的东西。如果是。请告诉我。

ps:我在网上查了很多资料。我发现这些东西可以手动自动跳转:

Time bolt - 站点 Vegas vegasaur - 插件 AutoJumpCut 1.0 - 程序 After effect - 脚本 Py autojumpcut - python ffmpeg 脚本

指导如何运行

  1. 打开 obs 并设置热键https://i.imgur.com/xjuOlIJ.jpg
  2. 在 ahk 论坛上下载声级检测库

我的错误 ahk 代码:

如果我们使用它 - 程序将崩溃。所以我们需要在obs中使用lua ..

0 投票
0 回答
270 浏览

gstreamer - 使用 OBS 虚拟相机和 GStreamer (Win10)

我在 Windows 上有一个基于 GStreamer 的小型应用程序,可以记录网络摄像头。不幸的是,它没有看到 OBS 虚拟相机。有什么方法可以从 GStreamer 访问它吗?

当我这样做时gst-device-monitor-1.0.exe Video,它会显示我的常规网络摄像头和另一个虚拟摄像头应用程序,但不会显示 OBS。

我在 Windows 10 上运行 OBS 26.1.1(32 位)。GStreamer 也是 32 位的。

0 投票
0 回答
25 浏览

camera - 使用专有安装程序捆绑 OBS (https://obsproject.com/)

由于 OBS 在 GPLv2 许可下,我可以将它与我的专有安装程序捆绑在一起吗?我想捆绑的原因是为了避免给用户带来麻烦。我不希望我的用户单独安装 OBS。

让我分享一点背景,然后你可以给我建议。我的客户想要一个具有缩放、Skype 等功能的视频会议系统。该系统能够对视频产生其他效果,例如 XSplit。我们展示了使用 Virtual Camera OBS 的演示来赢得这个机会。

最后,我们赢得了这个项目,但不幸的是,OSB 在 GPL 下。并且客户不想使用 GPL。但是,我们没有更新任何代码或 OBS 的任何内容。我们刚刚安装了它并在我们的 Python 代码中使用了虚拟相机(pyvirtualcam)

有什么建议或建议吗?

谢谢

0 投票
0 回答
62 浏览

docker - 通过 docker 使用虚拟摄像头进行视频通话客户端

我有一个在本地运行的 jitsi meet 服务器,我想将很多客户端连接到它,所以我想尝试创建一个连接到本地 URL 并使用 OBS 或其他方式生成虚拟相机的 docker 容器,基本上是一个 docker 容器Jitsi 只是将其视为另一个客户,有什么办法可以解决这个问题吗?