问题标签 [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 投票
1 回答
754 浏览

python - aiortc - 更改视频流大小

这是我在Github上的问题的重新发布,我正在尝试使用不同大小的视频运行videostream-cli示例。

重新发布我的问题,

使用“videostream-cli”示例中的 cli.py 时,我无法以 640x480 以外的任何分辨率传输/保存视频流。

我在“aiortc/mediastreams.py”中看到了一些硬编码的地方,但即使将它们更改为我的视频大小似乎也不起作用。

我用这个视频试过了

wget ' http://downloads.4ksamples.com/videos/PUPPIES%20BATH%20IN%204K%20(ULTRA%20HD)(Original_H.264-AAC)%20(4ksamples.com).mp4 ' -O ' 小狗。 mp4'

(或 wget ' http://mirrors.standaloneinstaller.com/video-sample/jellyfish-25-mbps-hd-hevc.mp4 ' -O jellyfish.mp4)

然后使用

videostream-cli/cli.py offer --play-from 'puppies.mp4' videostream-cli/cli.py answer --record-to 'received.mp4'

将部分视频传输并写入磁盘后,Ctrl+C那些进程并尝试

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 puppies.mp4

应该是 4096x2304(或 1920x1080)然后运行

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 received.mp4

它总是返回一个 640x480 的视频

帮助,我错过了什么吗?

0 投票
1 回答
137 浏览

python - 在解复用的数据包中找不到 NAL 开始

我一直在使用 PyAV 和 aiortc 使用 webrtc 设置视频流。我想重新打包数据包并发送它们而不进行转码。我遇到的问题是 aiortc 是 av_read_frame 调用不会生成 NAL 启动序列,之后 aiortc 在尝试查找时失败。

我做了一个测试,打印每个打包机的第一个开头:

这产生了:

所以似乎有某种起始码,但不是为 NAL 指定的起始码(0x000001 或 0x00000001):https ://stackoverflow.com/a/23516925/3442097

有谁知道这里有什么问题?

0 投票
1 回答
345 浏览

python-3.x - 有没有办法设置一个全局变量以与 aiortc 一起使用?

我正在尝试让 python RTC 客户端使用全局变量,以便我可以将它重用于多个功能。

我将它用于我一直在从事的 RTC 项目,我有一个功能正常的 js 客户端,但这些函数的工作方式与 python 不同。服务端和js客户端的函数都是我自己的,没有参数,希望避免在我做的python客户端上使用。

我一直在使用他们 github 中的 aiortc Cli.py 作为我的 python 客户端应该如何工作的基础。但我不会异步运行它,因为我试图学习和控制事件何时发生。源代码可以在这里找到,我指的是第 71-72 行中的代码 https://github.com/aiortc/aiortc/blob/master/examples/datachannel-cli/cli.py

这是我试图正确运行的代码

我只插入了与当前问题相关的代码

createRTCPeer 函数按预期工作,它创建一个 RTC 对象,但我的 pythonCreateDataChannel 报告错误,如果我在使用它之前将其设置为“无”

AttributeError:“NoneType”对象没有属性“CreateDataChannel”

它会报告

NameError:名称“通道”未定义

如果我没有事先将它设置在全局范围内,pc 也是如此

0 投票
1 回答
1388 浏览

webrtc - aiortc 服务器示例不在服务器上显示视频

我想https://github.com/aiortc/aiortc/tree/master/examples/server在远程服务器上进行测试,所以我将所有东西都安装在了digital ocean云上。现在,运行python server.py网页后按预期显示,但没有音频或视频工作。怎么了?

JS 控制台给出以下错误

0 投票
0 回答
794 浏览

python - 使用 Webrtc + python 流式传输 android 屏幕

我正在尝试使用 python + aiortc 流式传输 android 屏幕。我有一个使用 adb + screenrecord 获取设备屏幕的 POC。提供的代码从 screenrecord 的执行中读取原始输出 (h264) 并使用 ffmpeg 和 opencv 显示它。

目前,我正在尝试将 ffmpeg 或 adb exec-out 的输出插入 aiortc 媒体流媒体。基于这个例子,我用下面的代码替换了 recv 方法

但是此代码无法从设备屏幕流式传输正确的视频,也不会发生错误。我正在寻找这个问题的解决方案。我正在考虑使用 adbCmd 的直接输出,但它也没有用。

0 投票
0 回答
513 浏览

python - 将视频流从前端(angularjs)发送到后端(Django)

我想将视频帧从前端(angularjs)传递到后端(Django)以进行视频播放。为此,我遵循了以下链接。https://github.com/aiortc/aiortc/tree/master/examples/server

对于 Django,我使用Django-celeryTasks 来实现asynchronuos功能。当我遇到错误时,我试图将RtcPeerConnection对象(作为争论)传递给任务celery

TypeError:RTCPeerConnection 类型的对象不是 JSON 可序列化的

回溯(最后一次调用):文件“/home/loksun/.local/lib/python3.6/site-packages/kombu/serialization.py”,第 50 行,在 _reraise_errors 中产生文件“/home/loksun/.local /lib/python3.6/site-packages/kombu/serialization.py”,第 221 行,转储中的有效负载 = 编码器(数据)文件“/home/loksun/.local/lib/python3.6/site-packages/kombu /utils/json.py”,第 70 行,转储中 **dict(default_kwargs, **kwargs)) 文件“/usr/lib/python3/dist-packages/simplejson/ init.py”,第 399 行,转储中 **kw).encode(obj) 文件“/usr/lib/python3/dist-packages/simplejson/encoder.py”,第 291 行,编码块 = self.iterencode(o , _one_shot=True) 文件“/usr/lib/python3/dist-packages/simplejson/encoder.py”,第 373 行,在 iterencode 返回 _iterencode(o, 0) 文件“/home/loksun/.local/lib/python3 .6/site-packages/kombu/utils/json.py”,第 59 行,默认返回 super(JSONEncoder, self).default(o) 文件“/usr/lib/python3/dist-packages/simplejson/encoder. py",第 268 行,默认为o.class .name ) TypeError:RTCPeerConnection 类型的对象不是 JSON 可序列

任何提示将不胜感激。谢谢!

0 投票
1 回答
318 浏览

java - 如何将本地视频流发送到服务器?

我能够在本地创建报价并将 sdp 发送到服务器。此外,得到服务器应答并得到 sdp。

现在,如何将本地视频流发送到服务器?我不想要服务器视频。

后端服务器在 Python aiortc

我收到“onIceConnectionChange: FAILED”需要我添加到 -> addIceCandidate 吗?

0 投票
1 回答
376 浏览

python - 从 Yocto 构建 aiortc 库(Python)

我不确定这是否是问这个问题的最正确的地方,但无论如何我都会尝试。我必须将 Python aiortc库集成到使用 Yocto 构建整个环境的嵌入式系统中。因为没有此类库的配方,所以我按照教程使用 pipoe 生成了一个。使用命令:pipoe --package aiortc --version 0.9.28 --python python3我在自定义层内生成了几个 bb 文件,例如:python3-aioice_xx.xx.bb、python3-aiortc_xx.xx.bb、python3-cffi_xx.xx.bb 等等(我认为这些是依赖项) .

现在我想编译这个配方以检查是否所有内容都使用命令进行排序:bitbake python3-aiortc,它似乎进展顺利并找到所有必需的文件,直到发生错误并且我不知道如何解决它。有人能帮我吗?

我认为一些相关的行是:

错误:python3-aiortc-0.9.28-r0 do_configure:函数失败:do_configure

错误:不要尝试获取 `cffi>=1.0.0' 进行构建。请将其原生配方添加到 DEPENDS。

错误:python3-pyee-7.0.1-r0 do_configure:函数失败:do_configure

查看我链接的完整日志以获取更多信息。

===编辑===

添加了 python3-aiortc 配方内容。

0 投票
0 回答
201 浏览

python - Python av在无限循环中播放文件

使用https://pypi.org/project/av/尝试打开文件以进行无限播放。但循环以最后一帧结束。

搜索和阅读手册后,测试代码如下:

(注意:这些选项预计将传递给aiortc.contrib.media.MediaPlayer并以类似方式工作):

问题:在无限循环中播放文件应该是什么options(如果可能的话)?(不只是一次)

0 投票
1 回答
1225 浏览

python - 如何让 STUN 服务器使用 aiortc 生成候选冰?

我有一个工作的 WebRTC 客户端,我想使用 aiotrc (python) 通过 WebRTC 接收它的视频。另一个客户端作为收件人工作正常,我们已经使用浏览器对其进行了测试。

使用 python,我配置服务器,使用 Transceiver 创建一个报价(我只想接收视频),并将报价设置为 localDescription:

(在这种情况下,socket.io 连接的地方是一个假地址)。在这之后,我不知道如何收集冰候选人。我尝试过使用 iceGatherer,但没有成功:

我必须将冰候选人发送给收件人。在这一点上,我找不到任何关于如何使用 aiortc 获取候选冰的信息。你下一步怎么做?