通过WebRTC 的 RTSP 视频获取

通过WebRTC 的 RTSP 视频获取,第1张

通过WebRTC 的 RTSP 视频获取 背景

由于项目需要,需要使用摄像头在Web页面上展现,由于海康威视摄像头推出的流为rtsp 流,已知存在的基于 FFmpeg 的方案延迟都太高,所以就项目最终选择基于此方案。

方案说明

webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目,它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpeg+flv.js的方案,延迟降低到了0.4秒左右,画面的加载速度也变快了,切换浏览器标签后也不会暂停画面,并且解决了http1.1的同域名中的并发限制(在谷歌浏览器中可以同时播放6个以上的video)。
WebRTC对浏览器有要求,可以在下面的地址中查看支持的浏览器。

https://caniuse.com/rtcpeerconnection

webrtc-streamer 下载和安装

git hub 链接地址:
https://github.com/mpromonet/webrtc-streamer/releases

可以看到webrtc-streamer 不仅支持linux和windos。
windos 上 安装简单,双击即可。
linux 上安装相对比较麻烦,webrtc-streamer 需要安装glibc 2.27、glibc 2.28、glibc 2.29,相对比较麻烦。
在 centos 8.x 也是安装失败,没有办法使用了unbutu 20.4 进行安装。
Docker 镜像安装–推荐这种方式
您可以使用 docker 镜像启动应用程序:

docker run -p 8000:8000 -it mpromonet/webrtc-streamer

您可以使用以下命令从主机公开 V4L2 设备:

docker run --device=/dev/video0 -p 8000:8000 -it mpromonet/webrtc-streamer

容器入口点是 webrtc-streamer 应用程序,那么你可以:
使用以下方法获取帮助:

  docker run -p 8000:8000 -it mpromonet/webrtc-streamer -h

运行容器注册一个 RTSP url 使用:

  docker run -p 8000:8000 -it mpromonet/webrtc-streamer -n raspicam -u rtsp://pi2.local:8554/unicast

使用以下命令运行提供 config.json 文件的容器:

  docker run -p 8000:8000 -v $PWD/config.json:/app/config.json mpromonet/webrtc-streamer
webrtc-streamer 使用

安装后测试

./webrtc-streamer rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

默认端口 8000
http://xxxx:8000/

嵌入 HTML 页面:

不使用内部 HTTP 服务器,很容易在另一个 HTTP 服务器提供的 HTML 页面中显示 WebRTC 流。要使用的 webrtc-streamer 的 URL 应该在创建WebRtcStreamer实例时给出:

var webRtcServer      = new WebRtcStreamer(

使用 webrtc-streamer 在端口 8000 上本地运行的简短示例 HTML 页面:







 
    
使用 Web 组件

使用 web-component 可能是显示一些 webrtc 流的简单方法,最小页面可能是:



    


   



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4992452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存