短视频开发中会遇到哪些架构问题

2018-10-10 10:04:24 admin 2

过去的一年,是短视频软件爆发的一年。抖音、美拍、火山等占据了短视频软件的大部分市场。一些小的短视频软件也像雨后春笋一样源源不断的发展起来,短视频的爆发带动着短视频开发行业的发展,让越来越多人将目光放在短视频开发上,对短视频开发中的各种因素产生了浓厚的兴趣。比如说,短视频开发中要面临哪些架构问题。

短视频的开发和直播软件的开发是完全不可相提并论的,短视频的主要展示平台是在手机上,收到手机配置的制约远比直播更加严重。

201808311535680284386.jpg

一、数据大小的差异

拍摄一条视频后经过数据压缩和清晰度的权衡,10S的视频大约在1M左右,一条5分钟的视频就要达到几十M了。对比文本的几十字节、几百字节来说确实是大得多了。所以也会面临着如何上传、如何存放以及播放的问题了。

1.如何上传

当手机拍摄好一段视频想要上传时,如果手机正处在较差的网络环境或是在网络使用的高峰期时,上传自然会慢很多,这时候就需要基于CDN动态加速来优化网络链路,同时对于比较大的视频需要做好分片上传,减少失败重传的成本和失败概率等来提升可用性。

2.如何存放

当数据达到一定的规模,存储容量就会面对一定的挑战。现在视频软件的容量大部分已经达到PB的规模了,这就要求存储本身能够具备比较强的线性扩展能力,并且有足够的资源冗余。传统的MYSQL比较难支持这个场景,往往借助于专用的分布式对象处理,通过自建的服务器或者云服务器来处理。

3.播放

视频文件占的内存也比较大,所以也容易受到网速的影响。为了避免卡顿,有一些小的细节就要去处理。比如对于 60s,300s 的视频,需要考虑到文件比较大,通常使用 http range 的方式或者基于HLS的点播播放方式。HTTP RANGE可以比较简单粗暴的解决问题,基于HLS的点播播放方式会更友好,特别是一些5分钟以上的长视频,不过需要单独的转码支持。

201808311535680435216.png

二、数据的格式标准差异

短视频本身是二进制数据,相比较文本来说有较为固定的编码模式,如H.264、H.265,H.264由于算法优化,可以低于1Mbps的速度实现标清(分辨率在1280P*720以下)数字图像传送;H.265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送。

三、数据的处理需求

视频本身承载的信息就比较多,需要承担大量的数据处理请求,比如水印、帧缩略图、转码等。一些云服务商会提供此类的API直接使用,而数据的处理是非常慢的,会带来巨大的资源开销。

现在开发市场上的短视频的app对现在的市场来说,市场的需要和市场的饱和度都有一定的冲击,对现有的市场的问题和发展的空间都有一定的挤压和推进,对未来的市场的发展方向都打下了一定的基础,最新的行业资讯还请关注宸旭科技。