问题标签 [uv4l]

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

webrtc - 您可以连接到 WebRTC 服务器以从 python 获取视频流吗?

我正在尝试从连接到我的 Raspberry 的 USB 摄像头获取视频源。由于它不是专用的,我不能只使用 raspivid 或 uv4l 附带的 raspicam 来更改配置,这实际上会产生一些与 v4l2-ctl 相反的效果。

当我通过浏览器客户端连接到 WebRTC 服务器时,它实际上以不错的帧速率工作。我还不明白这项技术是如何工作的,但在开始使用它之前,我想知道是否有人可以告诉我是否有可能以某种方式(使用 python 或其他 opencv 魔术制作的客户端)获取该视频提要。

提前致谢

0 投票
1 回答
281 浏览

c++ - 通过 unix 域套接字为 UV4L 数据通道发送数据

我有一个关于通过 WebRTC 数据通道将二进制数据从 Raspberry Pi 发送到 Web 客户端的问题。我实际上已经找到了一个解决方案,但我认为它可能效率低下,而且我不确定它究竟为什么会起作用。

基本上,我有一个启用了 WebRTC 数据通道的 UV4L 服务器。我的目标是通过 WebRTC 将通过 I2C 收集的数据发送到 Web 客户端。UV4L 文档解释说,必须创建一个 Unix 域套接字,并且数据从 UV4L 服务器和运行在 Raspberry 上的应用程序通过套接字传递。我在我的 C++ 项目中使用了 C 代码,因为我更熟悉该语言。这就是我在应用程序代码中创建套接字的方式。UV4L 服务器配置为创建与适当套接字的连接。

此连接成功。然后我在另一个线程中使用文件描述符来发送数据。我正在使用的 I2C 库(pigpio)允许将数据复制到char * buffer我定义的 as 中char buffer[nb_reads];

我尝试使用 send 直接发送此数据,但在我的数据通道(浏览器)的另一端没有观察到任何消息。只有当我将数据编码为 base64 字符串时,我才能真正得到预期的结果。

为什么我不能直接发送字节数组?

0 投票
2 回答
2421 浏览

android - 带有UV4L流的Android webrtc黑/绿屏

我正在使用带有树莓派的 UV4L 用于 webrtc 到 android 设备。我在两者之间使用了一个信令代理。进行 webrtc 调用时,音频正常,但视频几乎是黑屏,带有一些绿色块。

当我将它与使用相同代理的 Web 客户端一起使用时,视频始终可以完美运行。

信令正确,数据按顺序发送和接收

1)到设备 - 呼叫

2)到应用程序 - 提供

3) TA——ICE候选人一一

4) TD - 回答

5) TD - 安卓应用的冰候选

大多数情况下,我会收到带有绿色补丁的黑屏,但有时这可行,我会收到完整的视频。我尝试通过暂停接收视频并在一段时间后播放来延迟视频。在这种情况下,视频可以正常工作。但我无法弄清楚为什么会发生这种情况。音频在这两种方式下都可以正常工作。

对等连接客户端.kt

视频不工作时android中的错误消息:

0 投票
2 回答
633 浏览

raspberry-pi - liverserver.so 无法打开。uv4l mjpegstream

我在使用 uv4l mjpegstream 制作虚拟相机时遇到问题。这个 mjpegstream 不是相机,而是我创建的图形。

我这样做的全部原因是将 mjpeg 流转换为 rtsp。我相信我应该能够很容易地做到这一点。但似乎我的实现存在问题 https://kevinsaye.wordpress.com/2018/10/17/making-a-rtsp-server-out-of-a-raspberry-pi-in-15-minutes-or -less/ 如果有人知道更好更有效的方法,请告诉我

0 投票
1 回答
299 浏览

node.js - 直接从网络中外部 node.js 服务器上的 uv4l 服务器读取流

我正在尝试将 uv4l-server 流直接连接到 node.js 服务器。

我希望能够在外部设备上使用 node-webrtc 包读取流。我已经在两者之间建立了 websocket 连接。

我知道默认情况下我可以将流作为 mjpeg 获取,但我需要一个实际的 webRTC 流,以便我可以将它与 node-webrtc 包一起使用。

我最终要实现的是在https://github.com/node-webrtc/node-webrtc-examples/blob/master/examples/video-compositing重新创建示例,但使用来自树莓的流圆周率。

希望这一切都有意义!谢谢!

0 投票
0 回答
1330 浏览

c# - 在 WinForm C# 应用程序上播放 WebRTC 流

我有一个使用 uv4l 和下一个命令从网络摄像头运行 WebRTC 流服务器的 linux 服务器

uv4l --external-driver --device-name=video0

我可以在浏览器上完美地看到它,但我想在 C# 应用程序中看到它,就像表单中的图片框(当然图片框不适合它,它只是一个参考)。

如果有人知道 C 库、nuget 包或任何其他控件或其他任何东西,他们将受到欢迎。

提前致谢。

0 投票
0 回答
417 浏览

raspberry-pi - 使用 WebRTC 从 Raspberrypi 进行实时流式传输

我想要一个服务器,它可以从 raspberrypi 获得实时流。在 WebRTC 的帮助下,我期待来自 Raspberrypi 的低延迟直播。如果有任何方法可以实现此流程,请让我知道此过程中涉及的步骤。我尝试了 Janus 和 UV4L 的流程,服务器也已经启动,但我面临以下错误

任何帮助表示赞赏,如果除了 Janus 之外还有其他方法,请告诉我

0 投票
0 回答
142 浏览

ffmpeg - 暂时关闭 uv4l 流以从其他应用程序访问视频设备

我已经用 HQ 相机在我的树莓派 4 上设置了 uv4l。http流工作正常。我想 24/7 全天候运行它,但我还需要偶尔使用 ffmpeg 将其直播到 Youtube。

我使用 option 启动 uv4l -n videouv4l,因此它创建了一个/dev/videouv4l我可以用作 ffmpeg 输入的设备。

但它仅在没有人查看流时有效。如果流处于活动状态,ffmpeg 会返回一个错误,表明它无法访问设备。

我需要一种暂时禁用流的方法,因此我可以确定 ffmpeg 可以访问该设备。我在文档中找不到任何明显的方法,或者使用(A) stream disable 命令通过 REST API或通过终止进程和(B) 再次启动 uv4l 并禁用流

我怎样才能做到这一点?

至于选项(B),我尝试使用选项启动 uv4l --server-option '--enable-webrtc=no',但它仍然启用 http 流。

问候,维克

0 投票
0 回答
23 浏览

javascript - UV4L Restful API 轮询事件

我正在使用 UV4L 的 restful API 来配置 Janus 客户端。有些事件是异步的,需要您轮询事件端点以获取响应,例如加入请求。

我的问题是,在发送加入请求时,我永远不会收到它的事件。我只在轮询事件端点时才得到这个:

UV4L API 中没有记录此响应,因此我不确定这意味着什么。我确保我的配置已经为 UV4L 服务器启用了 keepalive(默认情况下它是打开的)。我将查询设置为 5 秒的超时并将 maxev 设置为 0,因此它应该获取所有事件。我的获取请求也立即返回,而不是保持活动 5 秒,这看起来很奇怪。使用内置的 UV4L restful api 面板时也会发生同样的事情。

在进行加入请求之前,设置和会话端点都已被调用并成功返回。获取房间参与者列表表明加入成功,我只是从未看到该事件。我需要事件知道何时可以安全地发布到房间。

这是我调用 Restful API 的代码,但因为 UV4L 面板做同样的事情,我不认为这是我的代码的问题: