默认
发表评论 11
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
websocket传输数据流有什么更好的方法让数据传输的更快吗
阅读(49935) | 评论(11 收藏 淘帖 1
大家我  我是用Socket通过截屏的方式  转换成图片发送后叠加成视频  效果    传输的是image 视频流    附上一段代码
  captureScreen.prototype.sendLiveImage = function(){
    ctx.drawImage(shareVid, 0, 0, this.DisplayW, this.DisplayH);
    try {
      var rawData = atob(shareCanvas.toDataURL('image/jpeg', MirrorQuality).replace('data:image/jpeg;base64,', ''));
      if(eMirroring.isConnected && rawData && rawData.length > 0){
     eMirroring.sendStreamPic(STREES_FORMAT.OUT_PIX_FMT_JPEG, this.DisplayW, this.DisplayH, rawData.length, util.str2ab(rawData));
      } else {
        return;
      }
    } catch (err) {
      //util.log("atob err");
      // 发送10字节数据,防tcp连接掉线
      eMirroring.sendStreamPic(STREES_FORMAT.OUT_PIX_FMT_JPEG, this.DisplayW, this.DisplayH, 10, util.str2ab("1234567890"));
      return;
    }
  };

我想让传输变得跟快  或者说直接传输屏幕截屏的视频流   有什么好的办法吗      求各位路过大神帮帮忙

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:[已回复] GCDAsyncUdpSocket发送数据时如何设置响应超时时间呢?下一篇:长连接网关技术专题(一):京东京麦的生产级TCP网关技术实践总结
推荐方案
评论 11
引用:飞落舞 发表于 2017-11-07 19:10
我并不是要操作什么  只是要远程客户端 能看到我自己本身客户端的整个屏幕图像  就像是投影仪一样   把我 ...

那你只能自已像视频聊天一样,把抓到的侦压缩编码成H.264这样的格式,到接收端解码。
但TCP用在这种场景下,延迟什么的肯定比UDP高啊
引用:JackJiang 发表于 2017-11-07 16:49
其实你应该这么想,开局一张全图,后绪的所有操作,其实整个电脑桌面的动的只是你操作的那部分,比如鼠标 ...

我并不是要操作什么  只是要远程客户端 能看到我自己本身客户端的整个屏幕图像  就像是投影仪一样   把我桌面的视屏  投影到远程客户端
签名: 难受想哭蓝瘦香菇
引用:飞落舞 发表于 2017-11-07 16:32
嗯嗯  是的 类似于远程桌面  但不是通过WEBRTC哪种客户端之间直接数据传输   而是用WEBsocket  通过服务 ...

其实你应该这么想,开局一张全图,后绪的所有操作,其实整个电脑桌面的动的只是你操作的那部分,比如鼠标移动等等,后绪只传动的这部分数据,估计数据量会下降很多,不然真没办法。
引用:JackJiang 发表于 2017-11-07 16:26
其实2楼说的很对,你现在的方法,无论怎么压缩,跟传一张张图片没区别,而图片这种2进制数据再怎么压缩, ...

嗯嗯  是的 类似于远程桌面  但不是通过WEBRTC哪种客户端之间直接数据传输   而是用WEBsocket  通过服务器传输屏幕流   我主要是数据传输这一块不知道怎么弄
签名: 难受想哭蓝瘦香菇
引用:飞落舞 发表于 2017-11-07 15:10
好的    整体思路是这样的    我想通过获取的屏幕视频流   通过websocket 发送给服务端  然后再由服务端 ...

其实2楼说的很对,你现在的方法,无论怎么压缩,跟传一张张图片没区别,而图片这种2进制数据再怎么压缩,为了让对方感觉不卡,则FPS值就得上来,一上来那数据据量就大了。

其实事情的本质你是希望做一个远程桌面吗?
引用:JackJiang 发表于 2017-11-07 14:47
你可以说说你的整体技术思路是怎么实现的,以及现在到底遇到的问题是什么?你希望得到什么样的建议?

好的    整体思路是这样的    我想通过获取的屏幕视频流   通过websocket 发送给服务端  然后再由服务端发送个给另一个 客户端,现在的方式是   我通过获取屏幕截图的方式   通过websocket  发送给服务端,再由服务端发送给另一个客户端。  可是这样一来  就会出现卡 顿   延迟这样的效果    我在想 能不能通过改进编码的方式 把发送的数据变得更小  从而使得传输更加的流畅  和快速。(标明我不知道有没有这样压缩的更小,实现传输更快的方法)。     
签名: 难受想哭蓝瘦香菇
引用:飞落舞 发表于 2017-11-07 14:06
回复四楼   这个两种传输格式  一种是 dodataurl  形式   一种是blob形式   改怎么弄才好呢

你可以说说你的整体技术思路是怎么实现的,以及现在到底遇到的问题是什么?你希望得到什么样的建议?
[img]file:///C:\Users\Lenovo\AppData\Roaming\Tencent\Users\1337792483\QQ\WinTemp\RichOle\8`C30MLVHDCQGD6OM$YZ[A6.jpg[/img]回复四楼   这个两种传输格式  一种是 dodataurl  形式   一种是blob形式   改怎么弄才好呢

8`C30MLVHDCQGD6OM$YZ[A6.jpg (27.56 KB, 下载次数: 2417)

8`C30MLVHDCQGD6OM$YZ[A6.jpg
签名: 难受想哭蓝瘦香菇
每一帧图大概有多少字节?传输完一帧需要多少时间?有没有个精确地度量?不然怎么知道慢,慢多少呢?
签名: 该会员没有填写今日想说内容.
慢的另一个原因或许是你要传输的数据量比较大,你可以想办法压缩一下每帧数据大小,比如Windows自带的远程桌面为什么这么流畅肯定是有很牛逼的压缩算法,而你用QQ的远程协助就会感觉明显卡。
签名: 周末了,可以浪了
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部