目前短视频直播APP开发已成大势所趋,对短视频app开发者来说,短视频拍摄完成后,上传速度、播放流畅度等问题都令大家头疼的,而当前的短视频APP架构又趋于雷同,例如短视频观看、留言、点赞、分享、即时通讯、会员等级体制、拍摄上传等,有的仅仅是更改一些逻辑或者UI样式就匆匆上线了,其实在开发短视频直播APP时在架构上有很多不可忽视的问题,具体详情一起来看看吧。
1、数据大小的差异:
由于短视频的数据量比图片和文本都要大得多,所以在上传、存放以及播放方面都是需要注意的,当在网络环境较差的状况下上传视频时,上传的成功率普遍较低,特别是在晚高峰,也就是省际网络比较拥塞的情况下就更加明显。
针对视频的上传,需要基于CDN进行动态加速来优化网络链路,同时对于较大的视频采取分片上传的方式,以减少失败重传的成本和失败率,不同的CDN的链路状况在不同的地区和运营商表现不一,所以就需要选择比较适合自己情况的CDN。
由于数据相对较大,当数据量达到一定规模时存储容量也会面临一些挑战,目前市面上的短视频直播APP开发容量级别达到的规模要求存储本身能具备较强的线性扩展能力,并且有足够的资源冗余,但是传统的Mysql等数据库比较难支持,所以需要借助专用的分布式对象存储,通过自建的服务或云存储服务进行解决。
另外在播放过程中,有的视频文件较大就很容易受到网络环境的影响,为了避免卡顿就需要在一些细节上进行处理,比如通过网络链路进行优化或者通过多码率的自适应优化。比如多路转码,然后再根据特定的算法模型量化用户网络情况进行选码率,网络环境较差的选择低码率。
2、数据处理需求:
由于视频的本身可以承载大量信息,所以就需要处理大量的数据,比如视频转码、视频水印或者是视频的鉴黄等。对视频进行处理时通常分为两个方面,一个是客户端的处理,另一个是服务端的处理。
客户端的处理通常使用手机的处理性能来减少服务器的压力,同时也容易面临一些低端机型的处理效率问题。在客户端主要是是对视频美颜美化的算法、人脸识别或者是视频的编解码等进行处理。
目前客户端的视频编解码主要分为软编码和硬编码的方式,软编码的兼容性较好但是耗能高且慢。硬编码低耗能且快但是兼容性较差。所以通常采取结合的方式进行处理。
服务端的处理主要是进行视频的一些审核和转码等工作,但是服务端需要考虑的问题就是资源消耗方面比较高,使用的机器数也比较多,在服务端做视频处理操作需要控制在合理的范围之内。
3、审核问题:
短视频直播PP开发的内容本身有多种多样的表现形式,所以也容易出现各种涉黄涉恐的视频信息,如果处理不好就会非常麻烦。视频审核最大的问题就是会面临视频时间过长,造成人力审核成本的增加。
在这一方面可以采取一些技术手段,比如接入一些三方视频识别模块、抽取视频中某几帧进行检查或者也可以通过大数据分析等方法进行审核。
短视频直播APP开发中首先不可避免产生的问题就是短视频的发布速度,不同的应用场景下,短视频的发布速度也不同;其次就是视频的转码与压缩,一般点赞量高的短视频会变成热门视频,当然,这时候会带来相当大的带宽成本。所以就需要对这些热门视频重新转码,提升转码的复杂度,将视频文件缩小从而达到降低带宽成本的目的,现在市面上手机用户的终端和网络情况都不一样,所以在进行转码的时候需要选择多清晰度转码,提升短视频的播放速度和流畅度。这样一来,用户体验就会大大提升,用户黏性自然而然的也就提上去了。