zoukankan      html  css  js  c++  java
  • TSINGSEE青犀视频开发单通道 Go WebRTC服务端拉流接口无响应导致程序堵塞,如何处理?

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

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

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

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

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

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

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

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

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14741302.html
Copyright © 2011-2022 走看看