0

我在我的 raspi 上设置了一个 uv4l 服务器,它为一个无名网络摄像头提供服务。它正在使用uvc驱动程序。服务器内置网页大部分工作。我可以将 webrtc 从 pi 流式传输到我的笔记本电脑浏览器,但是 mjpeg 按钮会显示一个损坏的图像图标。

最重要的是,似乎没有 url 可以直接从服务器工作,例如http://raspberrypi:8080/stream/video.mjpeg

使用该 url 上的 chrome 检查窗口,我可以看到返回 200,但服务器随后关闭了连接。VLC 也无法打开连接。

这是我的 uv4l 命令...

/usr/bin/uv4l -k --sched-rr --mem-lock --config-file=/etc/uv4l/uv4l-uvc.conf     \
             --driver uvc --driver-config-file=/etc/uv4l/uv4l-uvc.conf       \
             --server-option=--editable-config-file=/etc/uv4l/uv4l-uvc.conf  \
             --device-id=1908:2310 

有任何想法吗?

4

2 回答 2

2

一个可能的原因是您的基于 UVC 的网络摄像头本身不支持MJPEG视频格式,因此您从UV4L. 作为uv4l-uvc用户空间驱动程序的替代方案,您可以告诉UV4L使用uvcvideo内核驱动程序。例如,假设uvcvideo创建/dev/video0,命令将类似于:

modprobe uvcvideo
uv4l --external-driver --device-name=video0 --server-option '--port=9000'

但是,如果uvcvideo不提供MJPEG任何一个,您的问题仍然存在。

于 2018-08-10T09:09:49.063 回答
0

我已经广泛搜索,我想我明白发生了什么,即使我找不到任何明确的解释。raspicam 驱动程序有很多功能/选项,包括编码。uvc 驱动程序除了传递网络摄像头流之外什么都不做。uv4l 服务器也不进行编码。

我的网络摄像头只有原始 yuyv,所以我需要一个真正的编码解决方案。我用过很多ffmpeg,所以我选择了它。它可以使用 Broadcom h.264 硬件进行编码,因此它只使用了 20% 的 cpu。

我使用的是 ffserver 程序而不是 uv4l 服务器,因为我只提供 http 服务,它非常适合 ffmpeg。

于 2018-08-11T18:38:04.727 回答