ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

TSINGSEE青犀视频开发单通道 Go WebRTC服务端拉流接口无响应导致程序堵塞如何处理?

2021-05-07 15:34:16  阅读:202  来源: 互联网

标签:http 会话 go TSINGSEE 拉流 webrtc 服务端 单通道


我们在通过GO语言开发webrtc服务时,使用js进行摄像头推流调用go服务端http,交换sdp信息,先把摄像头流推到服务端进行webrtc交互,再调用另外go http服务进行拉流。

87.png

第一次进行http拉流,webrtc 会话描述进行过交换,但是测试期间我们发现,如果此时再打开浏览器进行http 会话描述,go服务端会卡住,导致浏览器等段时间会超时错误。

此处的流程应该是下面这样的:

1、Go 中webrtc拿到的流会放到一个全局变量中,如下:

64.png

2、通过go的接口交换会话描述,再使用webrtc回调函数方法,拿到流就往里面写数据。

65.png

问题就出在第二步,我们在使用拉流接口时也是交换会话描述,从第二步中go写流数据的接口拿到流,这样浏览器在进行拉流操作时,接口无响应,导致浏览器超时。

66.png

找到问题,解决问题也比较简单,把go保存的流开个线程,一直往里写数据,这样就不会造成堵塞了。

67.png

我们开发的webrtc-client就已经经过了多次测试,在现有的视频播放平台上有了新的飞跃,而新型的与WebRTC相结合的EasyScreenLive同屏服务将在视频播放的流畅度和延时方面有更加优越的体现,大家可以通过关注Github获得我们的技术动态。

标签:http,会话,go,TSINGSEE,拉流,webrtc,服务端,单通道
来源: https://blog.csdn.net/TsingSee/article/details/116494217

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有