问题标签 [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 回答
1241 浏览

linux - 使用带有 v4l2 插件、ffmpeg 或 gstreamer 的 obs 将静态图像流式传输到 v4l2loopback

我想将静态图像流式传输到 android studio 模拟器。为此,我在 linux ubuntu 20.04 中使用 v4l2loopback v.12.5 创建了一个虚拟相机。虚拟摄像机在 /dev/video2 中创建。我可以使用 obs 和插件、ffmpeg 或 gstreamer 进行流式传输,但每个都有不同的问题。我不在乎哪个软件可以工作……我总是使用分辨率为 1920x1080 的图像来测试它。

OBS:我在这里 按照本教程安装了 obs 插件。它解释了如何安装 v4l2loopback 并将插件添加到 obs。该插件名为 obs-v4l2sink。我使用以下命令启动 v4l2loopback:

接着:

然后我用基本画布 1920x1080 启动 Obs 并输出 1920x1080。在插件中,我选择 NV12 作为视频格式,/dev/video2 作为 V4L2 设备。图像已成功发送到模拟器,但分辨率错误。使用 ffplay 我收到此消息:

“输入#0,video4linux2,v4l2,来自'/dev/video2':B sq= 0B f=0/0 持续时间:N/A,开始:1650.347834,比特率:27648 kb/s 流#0:0:视频: rawvideo (NV12 / 0x3231564E), nv12, 320x240, 27648 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc"

看来,分辨率缩小到 320x240,我不知道为什么。

ffmpeg: 我可以使用以下命令通过 ffmpeg 流式传输到 /dev/video2:

但我在 ffplay 中只得到错误的像素,输出如下:

[video4linux2, v4l2 @ 0x7fb494000bc0] 出队的 v4l2 缓冲区包含 118784 字节,但预期为 115200。标志:0x00000001。

Gstreamer: Gstreamer 仅在我在 modprobe 之后不使用以下命令时才有效(如果我使用它,则管道被 Gstreamer 阻塞):

相反,我调用这个命令:

使用 ffplay 我在 1920x1080 中看到了我想要的图像,一切看起来都很好,但在 android studio 模拟器中我只得到一个奇怪的绿屏。我之前得到了这个绿屏,我认为它与错误的分辨率有关。我真的不知道这里有什么问题。模拟器多次显示这些日志:

我正在使用的 avd 是 Pixel2 1920x1080 Android 11 x86 64,我正在使用以下命令启动它:

0 投票
0 回答
1570 浏览

python - 如何将python脚本加载到OBS Studio

如何将我的 python 脚本加载到 OBS Studio 中?我使用了工具/脚本并单击“+”并尝试导航到我的 python 脚本,但它是灰色的。只允许使用 Lua 脚本。

0 投票
0 回答
372 浏览

javascript - 使用 OBS 流式传输时,在广播前获取 YouTube 流 url

这将是一个YouTube API使用JavaScript. 坚持,稍等...

我经常使用 OBS Studio 流式传输到 YouTube。我这样做是点击 YouTube Studio 中的“直播”图标。

YouTube 工作室:https://studio.youtube.com/channel/`CHANNEL_ID`

点击https://studio.youtube.com/channel/`CHANNEL_ID`/livestreaming即可导航该页面

这被重定向到https://studio.youtube.com/video/`NEW_VIDEO_ID`/livestreaming

在这里,您可以在广播开始之前编辑您的流媒体设置,例如标题、说明等,您将拥有一个像这样的视频 URL: https://www.youtube.com/watch?v=`NEW_VIDEO_ID`

以及实时聊天网址:https://studio.youtube.com/live_chat?is_popout=1&v=`NEW_VIDEO_ID`

我希望达到的目标:

我希望创建一个简化的网页,我可以停靠到 OBS Studio 中,在那里我可以设置标题、描述等,当我点击“创建流”或类似的东西时,它会得到NEW_VIDEO_ID,这样我就可以复制视频 URL(我可以分享的内容),我也可以在 OBS Studio 中打开实时聊天,而无需打开单独的 Chrome 窗口。

我想通过 YouTube API 是可能的。(但我不知道怎么做。)

我最好使用 JavaScript 创建一个静态 HTML 文件(这样我就不需要运行服务器),但我也对 Node.js 解决方案持开放态度。

谢谢您的帮助!

0 投票
1 回答
352 浏览

python - 如何在 OBS 中将 python-osc 作为脚本运行?

我希望/需要使此代码作为脚本在 OBS 中运行。我把这个OSC Sender for OBS 看做它的名字所说的:它发送 OSC 消息。但是,在代码内部,服务器部分被注释了,因为它不起作用......开箱即用。运行 OBS 需要LD_PRELOAD=/path/libpython3.7.so.

我修改了代码,但是(未注释的行)但是,当服务器打开时,OBS 保持不可用,被阻止。所以,我尝试了python-osc的“异步服务器”-“并发模式”。我从它的 wiki中获取示例(它在控制台中工作)并与其他脚本混合。我做了一个很好的代码......但它让一些奇怪的东西。这是代码:

我不是程序员,所以 asyncio 对我来说是一团糟。我不明白。但我知道它的作用以及我希望它做什么。

加载脚本时(在 中script_update(settings)),它会打开服务器并运行loop()函数。这个函数是一个 5 秒的循环,打印一些文本。如果我从 PureData 连接到正确的端口并发送一些 OSC 消息,这些消息会到达 OBS ......但是当循环完成时,所有这些消息都会一起下降。同时,什么都没有,OBS 被阻止并且脚本日志中没有任何内容。

如果我在控制台中运行 python-osc asyncio 示例代码,while 循环正在执行,每个Loop 0,Loop 1等,并且每条消息都到达并且所有消息都在正确的时间打印。

我应该如何让这段代码工作?我需要打开该服务器并同时运行更多代码。我正在像游戏引擎一样使用 OBS。

0 投票
1 回答
613 浏览

apache - 无法连接到远程 rtmp 服务器

我正在尝试使用 Go 构建一个私有流媒体服务器(RTMP/HLS)。基本概念类似于Twitch用户可以使用OBS(和唯一密钥)直播视频。

我遇到了一个名为 Seal 的 Go 框架,它似乎完全符合我的意愿。 https://github.com/calabashdad/seal

但是,OBS 无法连接到远程服务器,尽管 Seal-framework 表示它正在列出流端口 (rtmp.myserver.com:1935)。

OBS流媒体链接:

密封运行日志 ( ./seal -c conf/seal.yaml):

Apache 虚拟主机配置:

OBS错误:连接服务器失败。连接超时。

我什至尝试将 Apache Conf 文件中的 RTMP 替换为 HTTP,似乎可以建立连接,但出现超时错误。

xx.xx.xx.105我的远程服务器是

知道我做错了什么吗?

编辑 (Ubuntu)防火墙规则

rtmpdump 结果 [rtmpdump -v -r "rtmp://rtmp.myserver.com/live/test" [-s swf auth] | vlc-]:

0 投票
1 回答
566 浏览

ffmpeg - 如何设置H264 NVENC编码参数输出高质量视频流?

  • 我用NVENC(nvEncodeAPI)接口硬件编码H264,然后RTMP流出来,用ffplay拉流看的时候发现画面明显失真:绿线变锐利了?文字颜色变浅和模糊,即使我将视频比特率提高到 3Mbps(720P)也没有改善。我也知道H264编码是有损的,会丢弃一些信息。
  • 然后我尝试调整 NV_ENC_CONFIG_H264_VUI_PARAMETERS 参数:将颜色空间设置为“pc,bt709”时,有一些小的改进。也许色彩空间设置有更大的改进潜力?对于NVENC编码,有没有更高的视频清晰度设置方案?不知道这里有多大的技术提升空间? 在此处输入图像描述 基于代码:https ://github.com/obsproject/obs-studio/blob/master/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
0 投票
1 回答
2816 浏览

nginx - 将 nginx rtmp 片段发送到 WebRTC

我想使用OBS通过RTMP流式传输到nginx服务器,然后将RTMP片段本地发送到WebRTC,以便它们可以通过MediaStream传输到客户端。我认为这是可能的,因为它基本上是在这里描述的。我这样做是因为 HLS 的多秒延迟不适合我正在尝试做的事情。

我在从 nginx 中提取 RTMP 片段时遇到问题,我在文档中可以找到的唯一可行的命令是pull rtmp://.... 当我尝试这个时,我没有看到任何文件出现在我的根文件夹中,如果我使用hls on. 有谁知道如何完成我上面想要实现的目标?

谢谢!

0 投票
1 回答
114 浏览

live - 与 Obs Studio 配合使用的 Webrtc

您好 可能看起来有点复杂或令人困惑,但是有一种方法可以使用 Obs te 某个平台进行 Webrtc 传输 那是做什么的?你能为 Peer Js 做到这一点吗?

0 投票
1 回答
359 浏览

css - 你如何让一个css类继承另一个类的所有值而不改变原来的类

我正在尝试通过浏览器源将网站导入 OBS Studio。不幸的是,我正在导入的网站通过为网站的 html 元素提供 class 设置为浅色主题tw-root--theme-light

这可以通过将此类更改为非常轻松地进行更改,tw-root--theme-dark但 OBS Studio 不允许您编辑 html。我只能附加 CSS。

是否可以覆盖类tw-root--theme-light以继承其所有值tw-root--theme-dark

0 投票
0 回答
174 浏览

android-studio - 如何在 Android Studio 中使用虚拟摄像头?

我听说自己在 Android 模拟器中的 Android Studio 中找到了 Obs 的虚拟摄像头 6 小时,但只有我插入的摄像头被识别。我还能怎么做,我脑子里有这种可能性,我还没有在网上找到解决方案。

我必须尝试将虚拟凸轮作为应用凸轮或真实凸轮。

或者如果有人有其他想法,请说不,我必须使用 Obs 的虚拟摄像头,以便我在虚拟摄像头上有一个屏幕和摄像头。

我寻求帮助!

感谢您的评论。