大学英语精品课程网站建设,内蒙古住房和建设厅网站,网页版qq在线登录,河东苏州网站建设端到端通信互动技术可分解为以下几个技术难点#xff1a;客户端技术、服务器技术、全球设备网络适配技术和通信互动质量监控与展示技术。
一、音视频直播 音视频直播可分成两条技术路线#xff1a;一条是以音视频会议为代表的实时互动直播#xff1b;另一条是以娱乐直播为代… 端到端通信互动技术可分解为以下几个技术难点客户端技术、服务器技术、全球设备网络适配技术和通信互动质量监控与展示技术。
一、音视频直播 音视频直播可分成两条技术路线一条是以音视频会议为代表的实时互动直播另一条是以娱乐直播为代表的流媒体分发。 互动直播主要解决人们远程音视频交流的问题所以其优点是实时性强时延一般低于500ms而娱乐直播则主要解决音视频的大规模分发问题因此其在大规模分发上更具优势但实时性比较差通常时延在3s以上。
1.常见的直播技术 常见的直播技术 上表中只有WebRTC技术用于实时互动直播而其他几种技术都用于娱乐直播。 HLS是基于HTTP的它首先对媒体流文件进行切片然后通过HTTP传输接收端则需要将接收到的切片进行缓冲之后才能将媒体流平稳地播放出来。实际上最初娱乐直播也只有RTMP这一种方案可选但后来由于苹果宣布不再支持RTMP并推出了自己的解决方案HLS最终导致RTMP走向了消亡。 将RTMP换成HLS需要付出高昂的成本于是有人提出了HTTP-FLV方案即传输的内容仍然使用RTMP格式但底层传输协议换成HTTP这种方案既可以保障其实时性比HLS好又可以节约升级的成本因此也受到各方的欢迎。不过HTTP-FLV的扩展性比较差因此它只是一种临时方案。 HLS方案虽然不错有大量的用户使用但其他公司也有类似的方案这使得各直播厂商不得不写多套代码费时费力。于是FFMPEG推出了DASH方案该方案与HLS类似也是以切片的方式传输数据最终该方案成为国际标准从而使直播厂商只要写一套代码就可以实现切片传输了。
2.音视频直播的现状 WebRTC的愿景是让浏览器间可以快速、方便地实现端到端的实时音视频互动。实时互动直播与娱乐直播技术相结合成为现在直播服务器的主流技术方案。 音视频直播技术有两个重要趋势一是实时互动直播技术与娱乐直播技术合二为一二是WebRTC已经是直播技术的标准大家都在积极地拥抱WebRTC。
二、自研直播客户端架构 1.基本的五大模块 一个最简单的直播客户端至少应该包括音视频采集模块、音视频编码模块、网络传输模块、音视频解码模块和音视频渲染模块五大部分。 细化一下音频的采集模块与视频的采集模块是分开的而音频编解码模块与视频的编解码模块也是分开的。也就是说音频采用了一条处理流程视频则采用了另外一条处理流程它们之间并不相交。在音视频处理中我们一般称每一路音频或每一路视频为一条轨。
2.支持跨平台 除上述笼统的五大模块之外还需考虑跨平台问题。只有在各个平台上都能实现音视频的互联互通才能称得上是一个合格的音视频直播客户端。以音频采集为例在不同的平台上采集音频数据时使用的系统API是不一样的。PC端使用的是CoreAudioMac端使用的系统API也称为CoreAudio不过具体的函数名是不同的Android端使用的是AudioRecordiOS端使用的是AudioUnitLinux端使用的是PulseAudio。
3.编解码的插件化管理 对于音视频直播客户端来说我们不但希望它可以处理音频数据、视频数据而且还希望它可以分享屏幕、播放多媒体文件、共享白板……即使是处理音视频我们也希望它可以支持多种编解码格式
音频除了可以支持Opus、AAC外还可以支持G.711/G.722、iLBC、Speex等视频除了可以支持H264外还可以支持H265、VP8、VP9、AVI等。 G.711/G.722主要用于电话系统音视频直播客户端要想与电话系统对接就要支持这种编解码格式Opus主要用于实时通话AAC主要用于音乐类的应用如钢琴教学等。实现插件化管理可以很方便的使直播客户端能够支持尽可能多的编解码器。
4.关注其他问题
音视频不同步问题 音视频数据经网络传输后由于网络抖动和延迟等问题很可能造成音视频不同步。对此可在音视频直播客户端增加音视频同步模块以保障音视频的同步。
3A问题 3A是指Acoustic Echo CancellingAEC即回音消除Automatic Gain ControlAGC即自动增益Active Noise ControlANC也称为Noise Cancellation、Noise Suppression即降噪。
音视频实时问题 TCP是以牺牲实时性来保障网络服务质量的。所以为了保证实时性一般情况下实时直播应该首选UDP。
三、WebRTC客户端架构 从WebRTC架构图中可以了解到它大体上可以分成四层接口层、Session层、核心引擎层和设备层。
接口层包括两部分一是Web层接口二是Native层接口。也就是说既可以使用浏览器开发音视频直播客户端也可以使用NativeC、Android、OC等开发音视频直播客户端。Session层的主要作用是控制业务逻辑如媒体协商、收集Candidate等。核心引擎层包括的内容比较多。从大的方面说它包括音频引擎、视频引擎和网络传输层。音频引擎层包括NetEQ、音频编解码器如Opus、iLBC、3A等视频引擎包括JitterBufer、视频编解码器VP8、VP9、H264等网络传输层包括SRTP、网络I/O多路复用、P2P等。设备层主要与硬件打交道它涉及的内容包括在各终端设备上进行音频的采集与播放视频的采集以及网络层等。
四、自研系统与WebRTC比较