新闻动态

Journalism新闻

短视频APP开发架构设计与实现

 短视频APP的用户停留时间长、黏性大、使用频次高,其次日留存、7日留存甚至是月留存同样也非常高,而大多数公司在进行自己产品APP的开发时,也会在其中集成垂直分类或一些社区化的短视频功能。短视频行业之所以如此火爆,就是因为它将手机的视频录制和碎片化时间这两个特点都发挥到了极致,短视频app开发业务也随之变得被大众熟知起来。

短视频APP开发录制模块的重点在于帧数据获取,除了可以通过摄像头获取视频帧,还可以通过屏幕录制获取视频帧,而音频帧数据主要还是通过麦克风进行获取;虚线部分的Filter模块主要实现了内置美颜/滤镜功能,另外因为有纹理和YUV数据的CallBack回调机制,所以也支持第三方库的美颜、滤镜、特效等功能;处理后的数据会经过OpenGL进行裁剪,缩放,旋转等操作,这些工作虽然可以由CPU来进行,但是会比较耗时,利用GPU是更明智的选择;最后得到纹理后,会被分成两路,一路渲染显示,另一路进行编码封装,这两个线程共享同一个纹理,这样的处理大大减少了资源的占用,提高了SDK的工作效率。

在短视频APP开发业务服务器端,当生产者生产出一个视频并将其上传至业务服务器后,系统会入库这条短视频的Matedata并存储到数据源中,真正的短视频文件则会安放在存储中。这里需要注意的是,一些小运营商的DNS缓存会降低上传成功率,我们需要通过技术优化来克服此类问题。当某用户消费此短视频时,通过使用CDN对整体过程进行加速来提升消费体验,同时CDN也帮我们提高缓存命中率节省带宽成本。而用户经常消费的一些高质量视频内容离不开可靠的运营后台,运营后台可帮助视频生产者完成编辑、推荐、分类等工作。现在我们平时用到的很多APP都会根据用户行为构造人物画像并通过人工标注或算法生成等方式将这些内容进行标注,从而获知用户感兴趣的内容并进行精准化推荐,人物画像与智能推荐系统对大多数APP来说都是一个非常重要的系统,可有效增大用户黏性。

随着短视频APP开发的不断的发展,以及实时直播的崛起,带宽的压力会越来越大,所以能够结合着P2P+CDN的方式来缓解服务端的带宽压力,不过P2P主要会面临着防火墙的问题、以及节点网络质量的影响,同时也依赖于视频播放的热度,这种对于效果都会有一些影响,同时为了更好的播放流畅度,单一的P2P无法满足需求,需要基于P2P和CDN的辅助进行。而带宽的另外一个节省之道,就是通过更好的编码标准来进行优化,比如H.265的编码标准,通过这个能够节省1半的流量,只不过目前H.265在硬编支持不是很好,只有个别手机机型支持,而软编码的方式相比于H.264,编解码速度要慢个几倍,这种对于能耗消耗比较高,处理也比较慢,不过随着硬件的不断升级,H.265将会是后续的一个趋势,同时依托于这个之上的一些图片编码标准也能够得到有效的应用,从而来节省带宽。