【webrtc-streamer】关于webrtc-streamer使用时CPU占用过高处理方式记录

关于webrtc-streamer使用时CPU占用过高处理方式记录

最近项目中需要集成海康、大华等摄像头的视频流进来,从最初的研究海康自带的SDK中demo到现在统一走onvif方式取rtsp流,各种艰辛不再提了,把卡住时间最长的这个问题记录下来供其他小伙伴使用。

摄像头取流:
Onvif方式取到所有摄像头信息

云台控制方式:
通过PTZ方式统一控制云台和调焦

取流显示:
1.传统的ffmpeg方式有很大的一点就是延迟会比较高,而且为了降低延迟要牺牲掉画质和音频流。
2.Gstreamer 也是比较传统的方式,延迟非常低,但是仅限于静态画面,一旦图像发生变化就满脸马赛克…
3.最新的webrtc-streamer方式,下载地址: webrtc-streamer,windows下直接是exe的方式启动,启动后访问本地localhost:8000可以看到管理页面,本地屏幕等流。
如果要抓取rtsp流,可以通过cmd命令启动
webrtc-streamer.exe rtsp://admin:[email protected]:554/h264/ch1/main/av_stream
也可以直接访问
http://localhost:8000//webrtcstreamer.html?video=rtsp://admin:[email protected]:554/h264/ch1/main/av_stream方式看到画面
此时延迟极低,大概200ms。

问题出现了:当你同时打开多个视频流/访问窗口时,会发现本地CPU以每增加一个增加10%的幅度在上涨,到了70%左右已经打字都非常卡了。这个问题墙内外来回查,也没看见好的解决方案。
在github上一堆参数也没看到有什么帮助…
【webrtc-streamer】关于webrtc-streamer使用时CPU占用过高处理方式记录_第1张图片

直到看issues上有外国老哥儿说在配置文件内发现了-o这个配置,但是没有效果。
【webrtc-streamer】关于webrtc-streamer使用时CPU占用过高处理方式记录_第2张图片
然后突发奇想,在cmd里命令启动exe,加上这个配置参数…

神奇的事情就出现了,同时开7路摄像头画面,webrtc-streamer的进程竟然cpu只占了3%…这他娘的真是个人才,目前不知道这个降低是通过禁止/降低了什么转码内容达到的,但是确实解决了CPU占用太高的问题。

问题解决完成,后续小伙伴们建议搭配-o食用效果更佳。

你可能感兴趣的:(工具/环境,webrtc,ffmpeg,图像处理)