我在raspi上安装了uv4l服务器,该服务器提供无名称的网络摄像头。它正在使用uvc驱动程序。服务器内置的网页大部分都可以工作。我可以将Webrtc从pi流式传输到笔记本电脑浏览器,但是mjpeg按钮将显示一个残破的图像图标。
最重要的是,似乎没有直接在服务器上运行的网址,例如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
有什么想法吗?
答案 0 :(得分: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
,您的问题仍然存在。
答案 1 :(得分:0)
我已经在Google上进行了广泛的搜索,即使我找不到任何明确的解释,我也想知道发生了什么。 raspicam驱动程序具有很多功能/选项,包括编码。 uvc驱动程序除了通过网络摄像头流之外什么也不做。 uv4l服务器也不进行编码。
我的网络摄像头只有原始的yuyv,因此我需要一个真正的编码解决方案。我已经使用了ffmpeg很多,所以我选择了它。它可以使用Broadcom h.264硬件进行编码,因此仅使用了20%的cpu。
我使用的是ffserver程序而不是uv4l服务器,因为我只提供http服务,因此非常适合ffmpeg。