短视频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将会是后续的一个趋势,同时依托于这个之上的一些图片编码标准也可以获得有效的应用,从而来节省带宽。网络