美文网首页APP & program
端到端同屏的方案

端到端同屏的方案

作者: 娜娜的简书 | 来源:发表于2022-07-13 13:50 被阅读0次

场景:桌面端应用(electron开发)同屏到pad端(uni-app开发)。

方案一:socket指令发送操作步骤。

思路:前提是桌面端与pad端显示的前端页面一样,即桌面端执行一个操作后,立即把该操作发送到pad端,pad接收到后执行该操作。
痛点:工作量大,要把服务端即桌面端的代码在pad上重新开发一遍。

方案二:electron推流,uni-app拉流。

思路:electron中用ffmpeg方法推流,output一个 rtmp://172.16.10.86/live/stream 流地址,pad中用uni-app中video标签直接可以播放。

<video src="rtmp://172.16.10.86/live/stream" style="width: 100vw;height: 100vh;" :autoplay="true" controls></video>

痛点:延迟大,10秒左右。

方案三:视频截图。

思路:java封装一个截屏方法,并开启一个websocket服务,每20ms截一张图,以imageData的格式传到pad服务端,之后打包成.vbe的java包,放在electron项目中,当需要开始同屏时,electron中打开该java包

shell.openItem('D:/pro/static/tentacle/start.vbe')

pad端创建一个canvas,每20ms去获取一下图片,放到cavas中。

痛点:慢,卡

方案四:webRTC传送视频流(现在项目中使用的方法)。

思路:通过信令服务器进行信令数据交换(如媒体描述信息SDP的交换,连接地址的交换等),目前项目中使用的是socket.io搭建的信令服务器,之后可以直接通过传送视频流方式实现同屏。

相关文章

网友评论

    本文标题:端到端同屏的方案

    本文链接:https://www.haomeiwen.com/subject/wkoxirtx.html