• 欢迎访问马东东的博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

支撑直播app的直播技术

经验杂谈 马 东东 2年前 (2017-09-24) 842次浏览 1个评论 扫描二维码

 

技术支撑业务

 
一个完整的直播技术架构由推流端(采集、前处理、编码、推流),服务端处理(转码、录制、截图、鉴黄),播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)组成。 
 
支撑直播app的直播技术
 
首先,介绍当下很火的直播场景。目前对直播场景的基本分类:
 
媒体&活动直播
 
特点:单向,无交互,流数少,延迟容忍度高 >10s;包含电视转流、演唱会直播等。这类目前对于直播的技术要求较低,低上行,高下行。游戏直播特点:单向,无交互,流数多,延迟容忍度高 >5s;目前国内CDN产商抢得最激烈的一块。本身的业务场景其实并不需要那么低的延迟。延迟是2秒、5秒还是10秒其实对体验的影响不是十分大。不过由于竞争激烈,拉高了延迟门槛。
 
秀场直播
 
特点:单向,文字交互,流数量多,延迟容忍度低 2~5s;这个是目前大家都能看得到盈利模式的一种。除了主播在播外,观众可以点赞,文字,送礼物,有一定的交互性。所以对直播的延迟要求苛刻,越低越好。推流主要是专业主播PC端,流数量多。此类直播也称为美女秀场,市场上存在大大小小公司,基本带宽在1~5G。 秀场平台非常多。
 
社交直播
 
特点:单向,文字交互,流数量非常多,延迟容忍度低 2~5s;社交直播和秀场直播,在交互上类似,区别比较大有两点:1. 秀场一般都是有限的主播把内容运营起来,推流的数量较少,一般是<100路;2. 社交直播是路人即可产生内容,所以直播的流数会上升到1000,甚至10000。
 
目前最火的一块,有映客,在直播,花椒等。整体直播云的设计是以满足技术及并发要求最高的社交直播需求为主要目标。
 
教育在线直播
 
特点:双向,师生直接交互,流数少,延迟容忍度2~5秒。总的来说,教育直播的要求是低延迟、交互频繁。一个高效的课堂应该是师生互动频繁,老师的提问学生应该立刻能进行解答,学生的问题老师也能及时给出反馈。我们很难想象说,老师问了一个问题,学生过了10秒钟他才听到,然后又自己思考了10秒钟,他的回答又过了10秒钟才传到老师这边,可能老师早就讲到下一个问题了。这样的课堂效果可想而知是非常差的。
 
 
根据CNNIC数据表明,中国在线教育用户规模逐年扩大。截止2016年用户规模达1.38亿。调查显示,2016年直播热渗透到教育行业,企业呈现“扎堆”入局直播互动教育的倾向,很多原先布局其他教育形式的企业纷纷转型或者涉足直播互动教育,直播赛道聚集了越来越多的玩家。我们不妨来关注一下教育直播背后的技术。教育直播目前是要解决低延迟和交互频繁的问题,本篇文章将以布卡直播为例,用他们对教育直播的技术方案带大家走进直播行业的背后。 
 
 

如何应对低延迟、交互频繁

 
延迟方面我们主要在这讲的是实时性。要做到低延迟,需要解决两个难点: 
 
选择一条最有的链路来传输数据。
在该最优链路上传输数据做到延迟最低。
 
#1,可以通过推流端SDK和调度服务器协同,进行选路。
 
#2,在编解码,传输协议,传输网络,缓冲池方面做到实时,这些技术壁垒都是蛮高的。
 
对应的策略有:
 

选用合适的数据编码

使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据涉及技术或协议:编码方式:CBR、VBR编码格式
视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等
音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等
 

而布卡直播作为音视频交互技术的先行者,布卡是国内首家将H.265编码技术应用于在 
在线教育行业的直播平台。在有效降低宽带的情况下,音频传输实现1080p的高质量,400毫秒的低延迟,做到不卡顿、不掉线、不延时。

 
 
选用合适的传输协议
 
编码完成后,我们会把它传输到服务器,这个时候就需要采用合适的传输协议。
 
1、RTMP(Real
Time Messaging Protocol,实时消息传送协议)RTMP是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。它有三种变种:1)、工作在TCP之上的明文协议,使用端口1935;2)、RTMPT封装在HTTP请求之中,可穿越防火墙;3)、RTMPS类似RTMPT,但使用的是HTTPS连接;RTMP协议是被Flash用于对象、视频、音频的传输。这个协议建立在TCP协议或者轮询HTTP协议之上。RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的包都是按照固定大小的包传输的。
 
2、RTSP(Real
Time Streaming Protocol,实时流传输协议)RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP提供了一个可扩展框架,数据源可以包括实时数据与已有的存储的数据。该协议目的在于控制多个数据发送连接,为选择发送通道如UDP、组播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法。RTSP语法和运作跟HTTP/1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。代理服务器的缓存功能也同样适用于RTSP,并且因为RTSP具有重新导向功能,可根据实际负载情况来切换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。
 
3、RTP(Real-time
Transport Protocol,实时传输协议)RTP是针对多媒体数据流的一种传输层协议,详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP是建立在UDP协议上的,常与RTCP一起使用,其本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性,只管发送,不管传输是否丢包,也不管接收方是否有收到包。RTP 实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,如在视频解码中,就不需要顺序解码。
 
4、RTCP(Real-time
Transport Control Protocol,实时传输控制协议)RTCP是RTP的配套协议,为RTP媒体流提供信道外的控制。RTCP和RTP一起协作将多媒体数据打包和发送,定期在多媒体流会话参与者之间传输控制数据。RTCP的主要功能是为RTP所提供的服务质量(QoS)提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息来提高服务质量,比如限制流量或改用压缩比小的编解码器。
支撑直播app的直播技术
 
 

在音视频传输稳定、延时等方面,布卡核心是用的UDP,自己设计了一套基于UDP的低延迟解决方案,在优先保证音频的基础上,根据网速给出合适的画质,对于画面的切换,布卡创始人张玺辉表示目前的延时已经控制到200ms-400ms之间。同时UDP音频抗丢包,大概在30%到50%,视频丢包在10%到20%是看不出来的。

 
服务器端需要做什么呢?
 

直播的延时与卡顿是分析直播业务质量时,非常关注的两项指标。互动直播的场景对延时非常敏感,新闻体育类直播则更加关注播放的流畅度。

 

然而,这两项指标从理论上来说,是一对矛盾的关系——需要更低的延时,则表明服务器端和播放端的缓冲区都必须更短,来自网络的异常抖动容易引起卡顿;业务可以接受较高的延时时,服务端和播放端都可以有较长的缓冲区,以应对来自网络的抖动,提供更流畅的直播体验。

 

当然,对于网络条件非常好的用户,这两项是可以同时保证的,这里主要是针对网络条件不是那么好的用户,如何解决延时与卡顿的问题。

 

服务器端通常有两种技术来平衡和优化这两个指标。

 

一是服务端提供灵活的配置策略,对于延时要求更敏感的,则在服务端在保证关键帧的情况下,对每个连接维持一个较小的缓冲队列;对于卡顿要求更高的直播,则适当增加缓冲队列的长度,保证播放的流畅。

 

二是服务端对所有连接的网络情况进行智能检测,当网络状况良好时,服务端会缩小该连接的缓冲队列的大小,降低延迟;而当网络状况较差时,特别是检测到抖动较为明显时,服务端对该连接增加缓冲队列长度,优先保证播放的流畅性。

 
客户端优化
 
 播放端通过增加延时来减少网络抖动,通过快播来减少延时。

 

小结

直播作为一种全新的实时交互形式,与诸多行业场景存在融合创新的可能性。娱乐化直播风口的变现后, 是不是会轮到互联网直播教育了呢??相比传统在线教育,直播教育为师生提供更好的互动体验,打破传统录播课堂师生无法直接沟通、学生在无压力情况下容易产生放弃心理的尴尬境地。而一个良好的课程体验,背后离不开技术的支撑。如何满足教育直播对低延迟、交互频繁的要求是直播技术首要需要解决的问题。


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明文章地址:https://www.madongdong.me/career/talk-experience/2017/09/24/946/mdd/
喜欢 (0)
[821300079@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
(1)个小伙伴在吐槽
  1. Do you have more great arilctes like this one?
    匿名2018-10-05 18:57 回复 Windows 7 | Firefox浏览器 41.0