问题标签 [aiortc]

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

python - IP 摄像机翻译无法通过 aiortc 和 STUN 服务器工作

我正在玩 aiortc 演示(https://github.com/aiortc/aiortc/tree/main/examples/server),从网页上的 IP 摄像头进行翻译。它适用于我有权访问的一台服务器,但不适用于另一台服务器。后者在 docker 内部。有时我在 client.js 的客户端收到错误

有时是停止下降。JSON 在 server.py 中生成

我比较了它们,它们在两台服务器上看起来都不错,但在损坏的服务器上,它包含的候选记录较少。

反正。我在服务器日志中看到的是,当一切正常(左侧,“protocol(0)”和“protocol(1)”)针对一个时,尝试了几种协议, 在此处输入图像描述

更多信息: 在此处输入图像描述

最后是 State.CONNECTING -> State.CONNECTED(顶部)反对 -> State.FAILED: 在此处输入图像描述

所以我怀疑第一台服务器上有一些 python 模块可以提供额外的协议。他们的设置完全不同,但aiortc的版本是一样的。我可以更改损坏的服务器上的一些已安装模块,但不是全部。那么我应该怎么做才能解决这个问题呢?也许应该做一些额外的网络设置?

Python 3.7.10 / 3.7.7 在此处输入图像描述

0 投票
1 回答
430 浏览

python - python aiortc datachannel 有很大的延迟

演示

https://github.com/tsonglew/aiortc-datachannel-delay

运行python main.py以启动服务器,然后localhost:8080使用网络浏览器访问

问题

我正在尝试处理来自视频轨道的视频帧,并使用数据通道发回结果。

结果在上面的演示仓库中被替换time.time()为如下:

<client receive from datachannel time> - <datachennl.send() time>被认为是延迟,并console.log用代码编辑:

输出

如截图所示,延迟在增加,但视频和音频流畅。

我怎样才能摆脱日益增长的延迟?谢谢

0 投票
0 回答
428 浏览

sockets - 使用“asyncio、socketio 和 aiortc”的 Python 客户端的 WebRTC 问题

网络RTC

在这个项目中,目标是在两个连接到 Web 服务器并相互发送视频流的客户端之间建立连接。

但是,我们有一个 java 客户端(android 项目位于此链接:https://github.com/IhorKlimov/Android-WebRtc.git)。这个 Java 客户端设法从他的相机连接和发送视频流。

另一个用python编写的客户端,它设法连接但不发送视频流。返回相反的错误:

NB:连接已经建立,数据交换,我们只是看不到视频。

代码中的 URL 对应于使用的服务器。

您将在此链接上找到我的完整代码:https ://github.com/sidathgueye/CV-WebRTC.git

先感谢您!

0 投票
1 回答
364 浏览

python - Aiortc 简单无线电服务器(无双工音频通道) - 已解决

文件:index.html

文件phone_calls.js

文件:server.py

我想改变这个:

对此:

但如果我这样做,服务器端会出现以下错误:

谁能帮我创建一个空的报价?

0 投票
1 回答
650 浏览

python - 在 msys2 mingw-64 中安装 python aiortc 模块

我正在尝试在 msys2 环境中安装 aiortc 模块。

(尝试使用多种方法安装(pip、python -m pip、git clone、...)由于 30000 个字符的限制而尝试删除。)

问题在于 lvpxmt 库,msys platfrom 无法使用 pacman 命令。

编辑:我找到了一个解决方案,但根本没有稳定的,所以我需要你的帮助以获得更好的解决方案:

  1. 我修改了 https://github.com/aiortc/aiortc/blob/main/src/_cffi_src/build_vpx.py
  1. pacman -S mingw-w64-x86_64-libvpx从 msys 终端运行。

  2. 然后 git clone、python setup.py build 和 python setup.py install。

完成此步骤后,我可以成功导入 aiortc 模块。

问题是当我运行我制作的应用程序时,当请求连接时,这就是错误。

我不认为这是应用程序错误,因为完全相同的应用程序在不同的环境中运行没有错误(不同于 msys)。

那么,我该如何解决这个错误呢?如果需要,我可以提供我运行的 aiortc 应用程序代码。

0 投票
0 回答
79 浏览

python - 未调用 aiortc 通道回调

我正在尝试使用aiortcpython 包实现 p2p 聊天。我在客户端和服务器中有以下代码。

在此代码中,频道 ping 正在通过频道聊天接收数据。也就是说,如果我们不在 ping 通道上发送任何内容,那么聊天通道也不会收到任何数据。例如,如果我们asyncio.ensure_future(send_pings())在打开的 ping 频道中发表评论,则永远不会调用聊天频道接收。

我是异步编程的新手,所以请从异步的角度提出任何不正确的建议。

0 投票
0 回答
166 浏览

react-native - 即使在交换 ICE 候选者之后,WebRTC ICE 连接状态仍停留在“检查”

嗨,我是 webRTC 的新手,我想知道为什么我的 ICE 连接状态停留在“检查”我使用 python 的 aiortc 库作为信令服务器和“第二对等点”,并有一个用 react-native 编写的移动应用程序(使用react-native-webrtc 库)双方都直接通过 API 请求接收报价和回答。我在每个步骤中都添加了日志,以便更容易理解代码过程,希望对您有所帮助。

我的代码:https ://github.com/Fabithost1/fluffy-doodle

客户端日志:https ://media.discordapp.net/attachments/886169561223819284/890561648958537738/unknown.png

服务器日志:https ://cdn.discordapp.com/attachments/886169561223819284/890562105550463026/unknown.png

任何回应将不胜感激。

0 投票
1 回答
258 浏览

python-3.x - 如何在aiortc(python)中将答案设置为LocalDescription?

我正在尝试使用 python websocket执行信号,然后使用aiortc创建 peer2peer 连接,以使用纯 python 实现基于webRTC的视频流。

我已经成功地从一个对等方发送一个报价并成功设置远程描述

但是,当我创建答案和 setLocalDescription 时,

我得到了这个例外。

代码如下:

0 投票
0 回答
237 浏览

python-3.x - 使用 aiortc 将数据从多个客户端流式传输到服务器

尝试构建多对多流式架构,我们打算使用 WebRTC 进行流式传输,使用 WebSockets 进行信号传输。我们计划创建从每个客户端到服务器的 PeerConnection,并将通过每个流接收到的数据放在 RabbitMQ 队列中,并将数据流式传输到其他客户端

我们怎样才能做到这一点?当新客户端想要流式传输数据时,我们如何使用多处理模块来创建新的服务器实例。我假设我们应该只有一个信令服务器,并且有多个基于没有客户端的对等连接。

信令.py

服务器.py

0 投票
1 回答
30 浏览

django - 我可以记住 Django 中的对象实例吗?

我正在使用django-channelsand aiortc,我想将server to peer连接创建为WebRTC.

就我而言,如果客户端发送new-peer操作,则服务器发送报价。

在客户收到报价后,客户将答案作为new-answer操作发送。

但是服务器不记得peer了,所以不能setRemoteDescription

当然我知道服务器不记得了,但是我该如何处理服务器需要记住像我这样的实例的情况呢?

我也找了session变量,但是好像只能存储简单的值,和实例好像没什么关系。

请提供与此相关的有用文档或解决方案。

consumer.receive 方法:

create_offer 函数: