问题标签 [janus-gateway]

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 回答
100 浏览

c - C、将带有GhashTable键的struct传递给函数

所以基本上我想将我的静音/取消静音呼叫与呼叫场所隔离开来。

我做了一个方法:void janus_audiobridge_mute_toggle_participants(janus_audiobridge_participant *participants[], int size, gboolean muted)

我打电话给:

内部janus_audiobridge_mute_toggle_participants

这是参与者和房间的结构:

执行上面的代码后,我得到:

奇怪的是,当我在同一个地方执行相同的代码时,我调用了 toggle_mute 方法,它工作正常。

所以我的问题是:为什么这对所有其他结构键都有效,但不是->room->participants?如何解决这个问题?

谢谢

我正在使用开源系统janus-gateway

0 投票
2 回答
1970 浏览

ubuntu - 通过 Janus 和 Gstreamer 在视频流中获得绿屏

在此处输入图像描述我正在使用 Janus 和 Gstreamer 显示来自我的 USB 摄像头的实时视频。

我们正在使用这个脚本来获取视频并通过网络发送gst-launch-0.10 v4l2src device=/dev/video0 queue-size=4 always-copy=false ! "video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1" ! nvvidconv ! "video/x-nv-yuv, format=(fourcc)I420, width=(int)1920, height=(int)1080" ! nv_omx_h264enc ! rtph264pay mtu=60000 ! udpsink clients=192.168.6.89:5000 sync=false -e

我在我的网页上看到了视频。但是它出现了绿屏。

0 投票
0 回答
464 浏览

video-streaming - 丢帧以使输出匹配输入

我有一个看起来像这样的 gstreamer 管道:

我正在使用 janus 将 rtp 数据包流式传输到输入端口。

这条管道对我来说真的很慢:输出视频比输入视频晚 4-5 秒。gstreamer 中是否存在将输出与输入相匹配的元素,即使这意味着我们必须丢弃一些帧?或以其他方式补偿

0 投票
2 回答
2606 浏览

webrtc - 对于一对多的直播,jitsi videobridge 和 janus gateway 中哪个更便宜?

这些就是我所说的:

我正在寻找的可扩展性是单个直播流中的 1 到 10k 用户。

0 投票
1 回答
46 浏览

javascript - 交换视频标签使整个 div 为空

我正在使用 JANUS 流式传输视频。

我有 2 个 div 标签,一个比另一个大,我保留了交换元素的选项。这些 div 标签包含视频标签。我有 2 个视频标签,一个用于传输本地视频,另一个用于传输远程视频。以下是我尝试过的功能。

我可以在检查的 html 中看到,视频标签存在于所需的 div 中,但视频完全空白。完整的 div 看起来是空的。视频标签一般都是这种情况吗?有没有办法做到这一点?

0 投票
1 回答
2044 浏览

websocket - janus 网关:配置显示 websockets 未启用

我正在尝试使用janus。第一步,安装。我按照这里的说明进行操作。一切都很好。但是,当我跑步时

输出的相关部分是:

我的问题在于条目WebSockets:不。

我签入 /usr/lib ,这里是相关文件:

在 /usr/include

所以,我认为 libwebsockets 安装正确。需要做什么才能启用 webSockets 传输?

我也确实看过这个

0 投票
1 回答
1141 浏览

webrtc - IP CAM 结合 UV4L 和 Janus-Gateway (WebRTC)

我在 IP CAM 中使用 UV4L 来创建虚拟视频驱动程序 /dev/video1。我能够进入具有 JITSI、WEBRTC、JANUS 等多个应用程序的 UV4L 流媒体服务器的 API。当我尝试在本地连接 (LAN) 上(即在我的本地服务器上)流式传输到 Janus 视频室时,我注意到了在终端中获取此消息

“[6889886769210913] 创建 ICE 代理(ICE 完整模式,受控)
[6889886769210913] DTLS 握手已完成
WebRTC 媒体现已可用”

但是没有媒体/视频流出现。我在编译 Janus 时启用了数据通道,并且我还使用我的 UV4L 流媒体服务器进行了 webrtc 测试,效果很好。但是关于 Janus 的消息以及为什么流在 Chrome 或 Firefox 中都没有出现是我需要帮助的。

编辑更新以回答评论:

两者之间的联系是 uv4l 将我的 IP cam 渲染为虚拟设备驱动程序,我正在使用 mjpeg 驱动程序模块。然后,我可以在加载 uv4l 驱动程序时将不同的选项传递给它,例如我使用来自 IP Cam 的 h264 配置文件流,我也将其更改为 mjpeg 流。有趣的是,使用 h264 流,我可以在创建的虚拟驱动程序上运行 webrtc 流测试,甚至在 Janus 上查看调试文件,一切似乎都按预期的方式工作,挂断后我得到正确的日志,例如

当成功的 Webrtc 流测试显示在网络上时,我的提要通过 Wireshark 正确跟踪,我的数据包标头和提要如下所示:

我在想我没有流的原因是因为我没有在浏览器上的加密层上测试它,即没有使用 HTTPS 而不是 HTTP,或者我的主机 Windows 机器阻止了我的来宾 Linux webrtc 流。这些是我倾向于调查的领域,我也尝试使用本地主机,同样的结果没有显示流,由于隐私限制,我在我的 VM 上创建自签名证书是一个复杂的策略问题。我会看得更远,如果我找不到其他选择,我会在独立机器上创建一个自签名许可证来测试它。您认为 ssl 问题可能是原因吗?更新:与 ssl 相同。

0 投票
0 回答
345 浏览

webrtc - 用于 rtp-rtcp 实现的 janus 或 pjsip

我正在评估 webRTC 的简单 SFU 的实现。我粗略地查看了两个源代码,但发现 pjsip 中缺少对 REMB 和 PLI 的支持。那么它如何与 WebRTC 一起工作呢?

我只想要一个简单的网关,这样我就可以在两个方向上转发带有 RTCP 反馈的 RTP 数据包。我正在寻找 C 语言实现。

我看不出 Janus 和 pjsip 之间的比较。任何研究过两者的人都可以指出两者的优缺点,或者可能是第三种选择?

0 投票
1 回答
5357 浏览

firefox - Firefox 中的 WebRTC 直播流(H264)错误,无法生成有效的 SDP 答案

我正在尝试H264使用 Janus WebRTC Gateway 在 Web 浏览器中运行编码的实时流。使用 进行测试时Chrome,流工作正常,但firefox显示ICE failed, add a TURN server and see about:webrtc for more details.

以下是我about:webrtc的 Firefox 日志。

我什至尝试添加以下 TURN 服务器

但是控制台错误变为ICE failed, your TURN server appears to be broken, see about:webrtc for more details,保持about:webrtc日志与以前相同。

我发现 Firefox 无法为 Janus 生成的 SDP 报价生成有效答案。Firefox 创建的答案具有属性rtpmap: 120 VP8/90000,而 Janus 提供的 SDP 提供具有属性rtpmap: 127 H264/90000,这会阻止 Firefox 与 Janus 建立 SDP 会话。Chrome 可以生成有效的答案,rtpmap: 127 H264/90000因此它可以完美地显示流。

我正在使用Mozilla firefox-57.0.4. 有没有办法,我可以获取/生成从 JanusSDP answer传入的有效值?SDP offer

0 投票
1 回答
3478 浏览

video-streaming - 无法让 WebRTC 与 UV4L 和 janus 一起使用

我正在尝试通过树莓派的 WebRTC 设置视频流。我正在使用 USB 网络摄像头、UV4L 和 Janus 来完成相同的任务。WebRTC 不工作。

我已按照此处列出的步骤进行操作,但我使用的是 uv4l 而不是 gstreamer。我已经在同一网络上的另一台(Ubuntu)机器上安装了 janus 网关。

我的 janus(在 Ubuntu 上)在启动时显示:

这就是我在 pi 上启动 UV4L 的方式:

访问http://PIIP:8090/stream/video.mjpeg显示来自家庭网络的流。值得注意的一点是,当 uv4l 启动时,它不会导致任何新日志显示在 janus 窗口上。是不是我的配置不正确/不完整?

最后,当我访问链接http://ip-of-server/janus-gateway-streamtest.html时,单击“开始”按钮什么也不做。类似地,http://serverip/streamingtest.html显示了一个用于流式传输的链接(RPWC,在 janus 中配置),但是当我们单击“观看或收听”时,它什么也没有显示。

我确定某些设置不正确.. 那是什么?

编辑1:

发表评论后,我确认再次检查http://piip:8090/janus中的设置是否正确设置,它是(见下图),然后我点击了开始按钮

在此处输入图像描述

我试图打开http://192.168.1.101/videoroomtest.html,我可以看到我的提要,但是 - 我假设 janus 的行为更像一个信令服务器,在我的情况下,似乎 janus 是充当重播/回复服务器。理想情况下,如果建立了连接,然后如果 janus 服务器出现故障,那么流式传输仍然不应该中断。但是,我手动停止了 janus,并且流停止了。如何将 uv4l 配置为使用 janus 作为信令,而不是作为中继服务器(如 TURN)。另外,这是我在 janus 控制台上得到的: