本周尝试和思考通过两个方向优化客户端占cpu严重的问题:
--2.1:
开启new Worker线程,将canvas的绘制在Worker线程执行,并开启OffscreenCanvas离屏,但是发现Worker线程不支持document对象,因此无法创建video对象,且主线程的视频源mediasteam视频流也不支持传递,因为Worker线程接收过来的数据都是通过拷贝执行的,但是系统生成的视频源不支持拷贝;后面尝试通过主线程获取视频源将其转换为图片base64传输过去,发现更加吃内存,所以通过Worker线程和OffscreenCanvas离屏方法走不通;
--2.2:之前我们音视频源采集以及传输都是通过webrtc获取执行的,如果通过ffmpeg进行视频源和音频源的采集,将放弃之前的声网的web sdk,采用tcp或者udp协议传输,似乎声网支持udp协议(待确认)。如果通过ffmpeg,大概的处理逻辑是在本地开启一个websocket服务,通过ffmpeg采集窗口或者视频源,将其进行视频流的处理拼接,然后以udp协议传输给声网,同时本地通过websocket接收处理udp数据源,通过本地video播放预览。(待验证)
网友评论