直播是一种实时性、互动性显着的互联网传播内容的形式。不同于传统的文字、图片、视频等传播形式,直播紧密地将用户与直播内容交互在一起,用户本身也是内容生产的一份子。按照时间历程,直播可大致分为三类,传统秀场直播、游戏直播和泛娱乐直播,可以说适合各种移动场景。其中音视频实时通信始终是最大的技术考验。
音视频采集:
音视频采集对直播系统开发来讲,重要程度到了,能不能开发的程度。如果音视频采集成功,那么对于直播平台的构建,等于打好了基石。
音视频采集最重要的部分就是采集,什么叫做采集呢?采集又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。比如摄像头,麦克风,都是数据采集工具。
视频编码
短视频app中如果不进行视频编码的话,数据量就会非常大,造成存储和传输困难,所以视频文件通常都需要在录制完成之后进行编码。视频编码主要从两个维度进行数据压缩:
1. 单张图像某一区域相邻像素相似,比如一片红色只记录红色色值和区域,不用记录这个区域的每一个像素点。
2. 相邻图像之间内容相似,因为相邻两帧要制造连续的效果,所以两帧之间的内容一般非常接近,目前主流的视频编码技术都是用图像编码方法对第一帧进行编码。
软解码和硬解码
H.264的视频解码给CPU造成了很大负担,所以通常会把这部分工作交给更善于进行处理简单工作但是数据量较大的GPU。
1.GPU解码就是所谓的硬解码
2.CPU解码就是软解码。
3.iOS提供的播放器类使用的是硬解码,所以视频播放对CPU不会有很大的压力,但是支持的播放格式比较单一。
系统搭建部署
通常,实现实时互动的架构中,主播把自己的视频流上传到服务器,再通过这台服务器分发给其他用户,再次采用合适的传输协议,并且延时可以做到很小,从主播到服务器再到观众的延时,加上编解码和抖动的延时,可以将延时控制在几百毫秒以内。虽然这个结构很简单,大势有一个缺点就是没有考虑到覆盖不同地区和用户的问题。
接入三方服务
像三方支付服务、地图定位服务、短信验证码服务等等,这些三方服务关系到系统最终的完整性。再比如说ShareSDK,提供了稳定的社会化渠道分享功能,可以给整个直播平台开发项目节省很多开发成本,接入也十分方便。
系统封包测试
这就是我们经常提到的“打包APP”,封包程序主要用到安卓端的Android Studio环境,iOS端的X-code等。封包完成后产生的安装包格式,大家经常会接触到,如安卓安装包.apk格式,iOS安装包.ipa格式。
本文暂时没有评论,来添加一个吧(●'◡'●)