您的位置:首页 > 其它

开发直播系统中都需要知道哪些技术?怎样才能避免直播系统开发的坑?

2019-06-28 14:28 316 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_45121386/article/details/93999872

从2014年直播发展到现在,已经成为了互联网泛娱乐主要之一,很多企业都想加入直播行业,让直播与企业自身行业结合,成为新的模式,但是企业本身不懂开发直播的技术,只能自行搭建开发项目组,或者找外包公司开发,不管选择那种那种开发方式,都要了解里面的相关技术,避免一些直播开发的一些大大小小的坑。

一、直播中使用的流媒体协议

流媒体是指采用流式传输的方式在Internet播放的媒体格式。流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。

1.UDP协议:UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据

2.RTMP协议:是现在编码器输出的工业标准协议,基于所有的编码器(摄像头之类)都支持RTMP协议。RTMP也是目前直播平台应用最多的流媒体传输协议(延时大约在1-5秒之内)RTMP 基于 flash技术,无法在 iOS 的浏览器中播放,但是实时性比 HLS 要好。

3.HLS协议:HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议,主要用于PC和Apple iOS移动终端。HLS属于切片式传输,HLS延时较大,大约在10-15S左右,目前应用在手机WAP页面以及微信页面观看。

二、 直播平台建设的架构概说

直播过程中流媒体协议的传输大致包含六个环节,分别是采集、预处理、编码、传输、解码、播放等环节,这六个环节的前五个环节都是需要开发者费心的。

1.采集

采集环节最大的坑在于机型适配,这么说吧,我们都知道现在智能手机行业发展的很好,699的红米用得上晓龙的处理器,1万+的苹果照样有人买得起,至于这不足千元和一万+之间的价格差距之间,自有小米、联想、360、华为、三星、VIVO、OPPO等等等等定位不同、配置不同、价格也不同的手机厂家自动上前补缺,用户的选择多种多样,使用感也各不相同,因此开发直播app软件时所需做的适配和测试的复杂度也就水涨船高,根据手机的厂家不同、操作系统不同、系统版本不同、屏幕版本和GPU型号不同,开发者们要做非常非常多次机型配置,如果是有一定经验的开发团队还好,如果是个人或新团队,在测试上所花费的时间和金钱就是对开发者最大的阻碍了。

3.预处理

在预处理环节我们要接触的是美颜、音效、萌颜。贴纸、特效等,通常业内自己开发的很少,都用SDK,这部分不需要我们太过操心,但要注意,在于处理部分,音频和画面不是一条流,小心音画错位的坑

4.编码

编码环节要注意对分辨率、码率、帧率的调试,以及对音视频编码格式的选择,通常,编码格式我们会选择H.264或H.265,编码的作用是降低数据包大小,节约流量,以及方便后期转码解码。

5.传输

推流、拉流和内容分发环节可以被统称为传输环节,传输的完整流程是这样的,主播自开启直播起,主播端便会源源不断向服务器传输视频流(此时直播画面到达服务器),另一边,用户打开主播直播间收看直播,在点击的一刹那,用户端会向服务器发起申请,用户端拉流申请被同意后,视频会被CDN分发和加速,最终到达用户手中。

6.解码

在视频到达用户端后,用户端需要对视频进行转码和解码才能播放,通常解码器和编码器是配套的,这样能够大大降低解码速度,提高直播首屏打开时间,避免因等待造成的用户流失。

在这一步所需要处理的难点有:播放模式、音视频同步难点、降噪和回声抑制难点等,在视频解码完成后,即可渲染播放。

在直播开发过程中有大大小小的坑,直播软件开发者要记得规避它们,才能更好的开发直播app软件。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐