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

javascript - 没有 ICE/STUN 的 WebRTC RTP 流到公共 IP

我有一个公共 IP,我希望我的客户将他们的 WebRTC RTP 流发送到该 IP。

客户端将知道编解码器以及将流发送到的端口。

我试图尽可能地做一个实现的准系统,但似乎缺少很多细节。

所有谷歌搜索都指向为此使用某种服务器,例如 Janus 网关,如果需要,这是可以接受的,但我不明白为什么我需要这个,因为对我来说唯一的要求是让浏览器发送 RTP流到预定义的 IP 和端口。

我已经使用 Janus 网关创建了一个工作设置,然后复制了使用的 SDP,以便我可以在没有 Janus 的设置中使用它们。

在这里,我初始化网络摄像头提要,创建一个没有 ICE 服务器的 RTCPeerConnection,如此所述,并添加所有轨道。

我为 onnegotiationneeded 回调设置了一个监听器,当需要协商时,我在 RTCPeerConnection 上创建了一个将 offerToReceiveAudio 和 offerToReceiveVideo 设置为 false 的报价,并在创建之后将创建的报价设置为 RTCPeerConnections 本地描述。

在此之后,我将预定义的 SDP 设置为 remoteDescription。

SDP 是从 Janus 会话复制的,它包含 ICE 属性,例如 ice-ufrag、ice-pwd 和 ice-options,如果我删除它们,我会收到有关无效描述的错误。

SDP 还包含 STUN(?) 候选者,删除它们没有任何区别。

运行后,浏览器连接到 STUN 候选,但由于服务器运行在公共 IP 上,这不是必需的,因此请求失败..

浏览器将 RTP 发送到预定义编解码器上的预定义主机/端口时,应采取哪些步骤来进行最小设置?

0 投票
1 回答
2406 浏览

ffmpeg - FFMPEG 将 rtp 流转换为 rtmp - 绑定失败的地址已在使用中

我用 Janus 网关设置服务器并使用 videoroom 插件我试图在本地转发 rtp 流,使用端口 5002 用于音频和 5004 用于视频。这是 videoroom 插件配置

在 RTP 转发之后,我想将视频转换为 rtmp 以使用 OBS Studio 远程获取视频,并使用 rtmp 插件设置了一个 nginx 服务器。使用 ffmpeg 我正在尝试进行此转换,并使用以下内容创建了 sdp 文件:

然后我启动了命令

但是我得到了错误绑定失败地址已经在使用中。低于完整的输出

我做了很多搜索和尝试,但我真的无法弄清楚出了什么问题。你能帮我理解错误吗?

谢谢!

0 投票
1 回答
511 浏览

multithreading - 如何在 iOS 中正确关闭 WebRTC peerConnection?

我正在使用版本为“1.1.29400”的“GoogleWebRTC”吊舱。我一直面临关闭对等连接的问题。无论哪个线程试图关闭连接,都会永远卡在下面的行中。

所以我选择不关闭对等连接,而是手动销毁捕获器、轨道、渲染器、收发器并将引用设置为 nil。以为我解决了这个问题,但我没有。

现在开始面临“RTCPeerConnectionFactory”的问题。在从工厂生成一些对等连接后,从工厂请求新的 peerConnection 的线程永远卡住了。

这是我初始化工厂的方法,

这是我初始化对等连接的方式,

可能出了什么问题?

并行 peerConnections 的数量是否有限制?

对创建/操作/销毁 peerConnection 的线程类型是否有任何限制?

我应该设置对这些对象的同步访问吗?

0 投票
1 回答
705 浏览

html - 如何阻止视频源的纵横比改变(WebRTC)

我们目前有我们的 webRTC 视频聊天处于测试阶段,我们注意到一个奇怪的问题,即视频的纵横比发生了变化。

当我们使用以下请求视频时。

navigator.mediaDevices.getUserMedia({video: { deviceId: { exact: deviceId }, height: 300, width: 400 }})

一切开始都很好,但我们收到的反馈是用户看到视频“拉伸”了几秒钟,然后才恢复正常。我们设法通过暂停视频源在本地复制了这一点,通过检查视频,纵横比似乎从 400x300 变为 300x150(这与此处的内在值一致https://www.w3.org/TR/2011/ WD-html5-20110113/video.html#video)。

谁能想到为什么会发生这种情况?

0 投票
2 回答
1448 浏览

webrtc - Janus 网关视频室在 60 秒后取消连接

有关完整日志,请参阅pastebin

我正在尝试加入我的 Janus 服务器上的视频室。所有请求似乎都成功了,并且我的设备显示连接的 WebRTC 状态大约一分钟,然后连接因超时而被取消。
WebRTC 连接中断似乎与 Janus 的 API 中断的 WebSocket 连接相匹配。

我尝试每 10 秒添加一个心跳 WebSocket 消息,但这没有帮助。我是

  1. 加入房间
  2. 接收我当地的 SDP plus 候选人
  3. 使用所述 SDP 配置房间
  4. 收到janus的答复
  5. 通过我的 WebRTC 对等连接接受该答案。

不知道这里出了什么问题。

我还尝试在 Janus 配置中设置 STUN 服务器,但无济于事。同样的问题。

也将服务器日志添加到了 pastebin。

0 投票
1 回答
561 浏览

safari - Safari WebRTC 错误...“无法设置远程报价 sdp:会话错误代码:ERROR_CONTENT。会话错误描述:

我正在使用 janus gateway videoroom 插件。但在 Safari 中,我收到错误 WebRTC 错误...“无法设置远程报价 sdp:会话错误代码:ERROR_CONTENT。会话错误描述:无法设置远程视频描述发送参数..”在 remotefeed.createanster 方法中。我做了 VideoCodec h264 没有修复。我的sdp包如下。请问你能帮忙吗?

0 投票
2 回答
2339 浏览

javascript - 查看 janus webrtc 视频流时出现问题

我正在尝试使用 ffmpeg 和 janus-gateway 在本地网络中流式传输视频。我将 h264 视频直接通过管道传输到 ffmpeg,然后从那里将其作为 rtp 流传输到 janus。然后 Janus 完成其余的工作。

问题是,当我尝试使用 janus 中包含的 streamingtest html 页面打开流时,我可以选择流,但我看不到任何东西。在我启动 janus 的控制台上,它会引发多个错误,开头为:“SDP 缺少必填信息”

显然,SDP 缺少一些这样的授权:

我猜这是演示页面上的 javascript 的问题。

当我加载页面并单击开始按钮时,它会按预期执行所有操作,并且还没有错误。它用我的流填充可用流的列表,当我在 Firefox 中使用网络分析器时,我可以看到,janus 正在向页面的 javascript 发送正确的 SDP。该 SDP 包含有关流的正确信息以及 ice 授权信息。

然后,当我选择流并单击开始按钮时,javascript 会向 janus 发送一个包含 SDP 的请求,但这个 SDP 与之前收到的完全不同,并且确实缺少 ice 授权信息。它还有一堆完全错误的信息。例如,此 SDP 用于 VP8 视频,而我的流以及之前收到的正确 SDP 实际上是 H264 视频。

有人可以发布一个简单的例子来从janus接收一个webrtc视频流吗?

我一直在寻找一个示例,但除了对我不起作用的演示和完全不相关的 webrtc 视频会议或聊天室示例之外,没有找到任何对我没有任何用处的示例。

我要做的就是获得一个信号 H264 视频流,从树莓派到本地托管的同一树莓派的 html 网页,延迟尽可能低,甚至零延迟。

我曾尝试使用 hls,但延迟太高,有人建议使用 webrtc ...

0 投票
1 回答
394 浏览

rest - REST API 在 janus 中被禁用

在此处输入图像描述

如您所见,当我运行时,REST 默认是禁用的

./configure --prefix=/opt/janus

我希望启用 REST 如何启用它?

./configure --help | grep -i 休息

在此处输入图像描述

0 投票
0 回答
331 浏览

webrtc - 当新参与者加入视频室时,Janus 出现“无效元素(ptype)”错误

我正在开发一个视频室组件,当新的对等方加入视频室时出现错误并且无法接收远程视频

[ERR] [plugins/janus_videoroom.c:janus_videoroom_handler:4007] Invalid element (type)

如何解决这个问题?

0 投票
1 回答
1046 浏览

ios - 无法使用 WebRTC 渲染远程视频

我使用 WebRTC 渲染远程视频失败。对于上下文,我使用的是 Janus 的流插件。

我正在关注到目前为止我一直在阅读的内容。每当peerConnection(_ peerConnection:, didAdd stream:)被调用时RTCPeerConnectionDelegate,我都会创建一个远程渲染器并将其添加到委托提供给我的流的第一个 videoTrack 中,如下所示:

但是视频不会显示,只有黑屏。

我的代表还打电话peerConnection(_ peerConnection:, didChange newState:)给 newState ,RTCIceConnectionState.connected这让我认为连接很好。