旅游网站建设需求说明书,湖北省城乡建设厅证书查询,网站的静态页面谁做,上海有限公司1、如果让我来设计webrtc框架我在分析源码的时候#xff0c;都喜欢做这样一件事情#xff1a;如果让我来设计它#xff0c;我会怎么做#xff1f;大家可以紧跟我的思路#xff0c;分析一下WebRTC为什么如此设计。为了对整个框架有有一个全面的了解#xff0c;我们首先要做…1、如果让我来设计webrtc框架我在分析源码的时候都喜欢做这样一件事情如果让我来设计它我会怎么做大家可以紧跟我的思路分析一下WebRTC为什么如此设计。为了对整个框架有有一个全面的了解我们首先要做的事情是拆解模块。如下图所以这里我们根据数据流动将WebRTC拆解成多个模块这里有些模块相对比较复杂我们做了简化。整体的框架如下图所示WebRTC标准与框架大家也许已经发现我针对一些模块圈出了一些更大的模块毕竟相比零碎的模块我们喜欢简单。因此对于一条流来说它的整个流程便简化为简化后的框架这里简单地对概念做一些解释track用于处理原始媒体流。对于本地的track来说它的作用是接收采集的视频帧完成处理和编码得到编码后的数据对于远端的track来说接收编码的视频流完成解码处理送去渲染。rtpsender接收编码后的数据完成打包和一些冗余策略等。rtpsender和本地的track是一一对应的。transport ICE相关完成传输通道的管理。rtpreceiver接收网络报文输出编码数据用于后续解码。rtpreceiver和远端的track是一一对应的。在这里track的作用是处理原始的媒体流rtpsender和rtpreceiver可以完成对媒体打包做一些控制transport是对传输通道的控制。有了这样的抽象我们的pipeline就会更加清晰。这里我在track基础上圈出了mediastream的概念这个是WebRTC的老接口使用的概念现在都是推荐使用track来操作。对于MediaStream的理解大家可以看下标准一般来说对于普通的音视频通话一个MediaStream包含一路音频track和视频track其实拿1v1的通话来说大家可能更容易理解为什么要把他们绑定到一起了。一般同属于一个MediaStream的流是需要做音视频同步的。https://www.w3.org/TR/mediacapture-streams/www.w3.org/TR/mediacapture-streams/2、ORTC的设计哈如果你了解下ORTC的设计思想你就会发现还有一群更聪明的人早就想到如此设计整个RTC了ORTCObject API for RTC的设计思想ORTC标准可以看到ORTC中也是抽象成了Track、RtpSender、RtpReceiver、Transport几个概念。ORTC设计的是一套面向对象的接口外部通过和RtpSender、RtpReceiver、Transport交互来达到对RTC的控制目的。ORTC标准的出现也规范了WebRTC的代码框架。3、WebRTC PeerConnectionPC接口WebRTC对内部的各个模块都有经过封装比较推荐的是使用PeerConnectionn接口来对外交互我们上面的设计还是很贴近PC了大家可以多看看这个标准https://w3c.github.io/webrtc-pc/w3c.github.io/webrtc-pc/目前的WebRTC标准里面pc接口为了兼容planB和unified plan接口相对比较复杂如果我造轮子肯定会甩掉历史包袱只保留一套接口了。unified plan支持对每一个track配置相对更灵活。因此我们围绕track、rtpsender、rtpreceiver、transport增加一些接口即可。AddTrack用于增加本地的track输入为视频源接口可以是内部采集也可以是外部采集我们可以自己实现采集功能。远端的track是协商之后由信令触发。SetLocalDescription 设置本地SDP能力SetRemoteDescription 设置远端SDP能力CreateOffer添加好track设置好本地能力后便可以向接收端发起协商。CreateAnswer接收端响应offer协商完成后会创建一个rtpreceiver用于接收媒体报文并且会对应床架一个远端track用于解码和显示。以上接口接口可以保证整个流程能够运行起来peerconnection流程实际上这里还缺失了ICE协商相关的接口这里没有做详细介绍了。原文https://zhuanlan.zhihu.com/p/484971820★文末名片可以免费领取音视频开发学习资料内容包括FFmpeg webRTC rtmp hls rtsp ffplay srs以及音视频学习路线图等等。见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓