如何解决Raspivid 低延迟流媒体和保存
我正在尝试使用 Rpi 零 W(无 serverX)以 10FPS 的速度通过 wifi 保存和流式传输 Raspi 相机
我需要以全帧和高分辨率保存,假设使用 MJPEG 编解码器。 这是通过这个命令完成的:
raspivid -md 2 -w 2592 -h 1944 -fps 10 -cd MJPEG -fl -f -t 0 -o videoOut.mjpeg
这运行良好,只使用了 6% 的 cpu。
然后我需要以 640x480 进行流式传输。我的想法是从 raspivid 流式传输预览,并将 Rpi 屏幕分辨率设置为 640x480。
为了获得非常低的延迟,我必须使用 WebRTC (https://github.com/mpromonet/webrtc-streamer)。
我不想使用 UV4L 来保持开源。
Webrtc-streamer 管理屏幕,但似乎只能与 ServerX 一起使用。
有人有想法吗?
谢谢!
解决方法
通过截屏视频预览窗口来实现低延迟流传输是困难的,甚至是不可能的。太多的步骤需要花费一整帧的时间。
- 获取相机帧并将其从 YCrCb 4:2:0 色彩空间转换为 RGB 1:1:1。
- 在 X Window System 显示服务器上绘制它。
- 从显示表面抓取它,将其转换回 YCrCb,然后压缩它。
- 通过网络将其推送给观看者。
- 解码并渲染它。
那是五帧时间,或者是 10fps 的半秒。
最好直接捕获压缩流。 Broadcom RPi 处理器内置视频压缩硬件,可以在一帧多的时间内生成压缩数据流。它可以在生成压缩视频流的同时渲染预览窗口。
WebRTC 可以很好地处理流媒体的网络方面。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。