2-3.直播技术的方向

那今天呢?我们来详细聊一聊直播的技术方向,在上一节课中呢,我已经向你介绍过目前的直播技术呢,包括两个方向。一种呢,是以webrtc为代表的实时互动直播,而另一种呢,是以CDN为代表的传统直播,那从产品的角度上来看呢?

像直播购物,娱乐直播,唱歌啊,跳舞啊,模仿啊这一类以及游戏直播都属于传统直播,而像音视频会议。在线教育互动课堂这一类产品呢,都属于实时互动直播,那通过这些产品呢,我们可以看出。区分实时互动直播与传统直播最大的关键点是,是否可以进行多人的实时音视频互动?

当然,文字的互动是不算的,因为传统直播。基本上都是以文字进行交互的是吧?那对于传统直播来说呢,他们使用的传输协议一般都是rtmp协议或者是hls协议。那这些协议的底层呢?都是基于TCP的,那由于TCP机制的原因,在一些网络不太好的地方。

传统直播的延迟会非常大多的可能达到几十秒的延迟,那平均延迟呢?也在三秒以上。那关于TCP为什么会导致延迟的增加?那这些内容我会在后面再向你做详细的介绍,那现在我们只要知道TCP不适合在网络差的情况下做实时传输就OK了。那另外呢,对于传统直播来说,其底层大多是使用的ffmpeg来实现的,那使用ffmpeg这个开源库可以大大降低直播软件的开发难度。

OK,那下面呢?我们再来看一下右侧的实时互动直播,对于实时互动直播来说呢,它使用的传输协议是rtp协议。底层呢是基于udp的,那udp协议的特点就是延时较短,通常单向的延迟都是低于200毫秒的。当然,这已经是非常大的值了,那我们在平常使用的时候,如果是在国内的话,基本上都是几十毫秒就可以到达了,对吧?那对于大多数的实时互动来说呢,

他们一般都使用开源的webrtc来实现,这样可以大大降低这个开发的难度。那下面呢,我们就来对这两种技术做一下对比,那这样呢,可以使我们更加清楚,知道两者的区别是什么,

那首先呢?是他们的设计目标不同,对于传统直播来说呢,它实现的目标是一人讲多人听,所以他更看重的是媒体分发能力。而实时互动直播的实现的目标儿则是多人的音视频互动,强调的是多人的互动性,对,这是他们目标儿的不同啊,

第二个呢,是延迟方面。那对于传统直播来说呢,由于是一人讲多人听,没有互动,所以对于实时性要求并不高,一旦没有了互动,就任何一个用户儿。在什么时间来?那延迟多少都是无所谓的,对,只要你在这个时间点来了之后,我经过数据的缓冲。让你能够连续的向下看,

你就不会感觉到视频有什么问题,所以这个延迟呢,一般是在三秒以上,这个我们刚才已经介绍过了。而对于实时互动直播来说,它要求的这个实时性呢,特别高,那端到端的延迟一般不超过500毫秒,这个讲的呢,是端到端,那对于中间儿的网络传输来说呢,这个延迟就要更小了。否则你就超过了这个500毫秒,这是第二点,第三点是传输协议,

对于传统直播来说呢,它使用的是rtmp HLS协议,这些协议呢?底层统一使用TCP而实时互动直播呢?使用的是rtp或srtp底层是基于udp的,那此外呢?实时互动直播还会使用RTCP协议对udp进行这个控制,这是传输协议,我们再来看看开源库,那对于传统直播来说呢,可以使用ffmpeg来减少工作量。实时互动,直播呢,一般都会使用webrtc来加快自己的开发进度,那相比较而言啊,

ffmpeg的复杂度比较webrtc来说呢,要小一些也更容易学习一些。推拉流方面,传统直播可以使用obs软件进行推流,那这是一个功能非常强大的推流软件。很多的主播呢,都使用这个进行推流,那也可以使用ffmpeg命令进行推流,而拉流方面呢,就更多了是吧?浏览器上可以使用。FLV.js video.js这些开源库进行拉流,那在PC端呢?可以使用vlc ffplay这些工具。而实时互动直播可以使用浏览器的原生API进行推流,或者自己使用webrtc库开发推流软件。

那拉流也是一样的,在浏览器上呢,依然可以使用原生的API进行拉流,那其他端呢,就需要自己用webrtc库进行开发了,对于浏览器的支持。传统直播在浏览器上只能拉流,不能推流,而基于webrtc的实时互动,直播呢,在浏览器上既可以推流,也可以拉流啊,服务器方面对于传统直播来说呢,如果是商用产品推荐大家直接使用云厂商的CDN,那它既可以保证你的质量,又可以很好的扩容。

如果是自己做实验的话,一般可以使用安这个startmp model或者是srs,这些都是非常OK的。对于实时互动直播的服务器来说呢,那如果商用,你可以选择声网拍乐云这一类的SDK的厂商。那也可以采用开源的服务器,像media soap genus等等,当然对于这些开源的服务器,如果要商用的话,一般都需要大量的这个修改才可以达到商业的目的。

那在众多的webrtc开源服务器中啊,media soap的性能和稳定性可以是最好的,那里边包括了带宽评估,流控simulcasts VC等等这些特性。

那其他的webrtc流媒体服务器呢?那在这一块儿一般都是缺失的,没有media soap做的好,尤其是。带宽的评估流控,这是非常关键的。那现在呢?咱们言归正传,从实现的难度的角度看,那传统直播实现的难度呢?稍微小一些。啊,

因为不用考虑互动性,所以逻辑上呢,就简单一些,而实时互动直播呢,难度要大很多,那上面呢,我就将直播的两种技术路线向你做了详细介绍。

下面呢?咱们来看一下商用的直播技术解决方案是什么样的?那在教育场景下呢?在同一个房间里。既需要多人的实时互动,又需要大量的媒体数据的分发,

所以一般的商业直播解决方案都是将传统直播和实时互动直播这两种技术结合到一起。那这张图啊,就是一个商业的直播解决方案的示意图,其中的左侧是这个。实时互动直播在实时互动直播架构中一般包含了这个边缘节点,也就是说接入节点还有。核心的自建网络对包括这两部分,那当不同地区的人要加入到同一个房间里,他们首先会连接离自己最近的这个边缘节点。

然后呢,再通过核心网络与另一端进行这个互联,那这个时候如果还需要大规模的。数据分发那在服务端呢,就要对多路的音频流和视频流进行这个合并,那合并成一路音频流和一路视频流,

最终呢?通过rtmp协议推送到传统的CDN网络,对于想收看的听众来说呢,他就可以连这个CDN网络直接进行这个收听了。那这个呢?就是一般商业的解决方案,

那我们简单了解一下就OK了,最后我们来小结一下,那在这一节课中呢?我首先向你介绍了如何区分实时互动直播和传统直播。关键点是是否可以进行多人的音视频互动。那之后呢,向你详细介绍了两种直播技术之间的区别,包括了目标儿的不同,实质性的不同等等等,

那最后呢,又向你介绍了商业直播的。这个解决方案向你展示了一个示意图,那在这个方案中呢?我们可以知道那商业的直播一般是将两种技术结合到一起。这样才能达到一个真正商业的目的,那我们本节课就到这里,有任何的问题呢,你可以到讨论区或者是QQ群里去购物留言。我在那里呢,给你做详细解答好,谢谢。

如有侵权,请联系我删除

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值