乐趣区

如何快速打造一款高清又极速的短视频APP?

整个短视频的市场规模一直在增长,网络数据显示 2018 年已经突破 100 亿大关,在 2019 年预测将超过 200 亿。纵观行业,在生活资讯、美食、搞笑、游戏、美妆等领域,短视频流量巨大但竞争激烈,但是在教育、财经、军事、旅游等行业还存在较大的机会。那么在这些垂直行业里,我们如何结合短视频能力,实现业务突破?
近期的云栖 TechDay 音视频技术专场中,阿里云视频云高级技术专家王海华现场分享了《高清极速 - 全面提升短视频应用体验》议题。他表示,作为短视频 SDK 服务提供方,视频云一直和客户同样关注如何把短视频的产品和体验做得更极致。本次分享讲从端到云再到端,探讨如何进行思考与优化,实现视频体验的全面提升。
短视频的业务特征

短视频可以随时随地进行拍摄、分享与浏览,所以它存在着海量的上传和播放
用户在移动端消费短视频的机型和网络情况十分复杂
用户对短视频体验的追求是清晰和流畅,而作为开发者,也需要考虑到流量与用户体验的平衡

关于视频云全链路优化的技术实践
阿里云视频云提供一站式短视频解决方案,并从整个链路上进行技术优化。在生产端,短视频 SDK 支持视频拍摄、导入编辑和视频上传的能力;当视频传到云端,支持媒体转码、存储、视频 AI 分析处理功能。在分发环节,通过全球节点、智能调度和热门视频预热资源,将视频内容更稳定极速的分发至消费端;最终在播放端,播放器 SDK 可以实现快速启播、播放缓存、无缝循环播放和多清晰度切换。

一、视频生产端 - 帧率与低端机型体验优化
在视频拍摄阶段,用户最关注视频的清晰度和流畅度。这其中的优化包括几个环节:
1. 预览帧率的提升
摄像头采集到数据直到呈现到屏幕上,采用 GPU 驱动渲染,保证渲染的实时性,减少延迟和丢帧的情况。同时,针对人脸特效的渲染,采集 3buffer 的 CPU 回调方案,减少 buffer 资源等待造成的帧率下降。
2. 录制帧率的提升
录制是把视频帧编码的过程。整体采用 GPU 直接渲染到硬编 Surface 的方案,同时保留了之前的 buffer 方案作为软编的适配,在编码的延迟和丢帧缩短到最小。

3. 针对低端机型 定义最优适配
移动终端机型复杂度极高,硬件能力、性能、屏幕分辨率等等指标千差万别,如果想要最大限度保证低端机上的视频质量,就要在提升清晰度和流畅度的时候,降低分辨率。那么问题又来了,在什么机型上降低?怎么降低?到底降低多少合适?阿里云短视频 SDK 又多往前走了一步,多做了一点点。经过大量的数据分析和适配测试完成了在不同性能手机的适配。
要提升整个视频的清晰度视频编码是永远绕不开的一个话题,在阿里云除了在编码器算法的优化以外,也从更加贴近业务场景的角度进一步优化。在如此多的业务场景,一种编码技术和编码参数是解决不了所有问题,所以针对不同场景,需要完成相应的编码优化。比如以质量优先的场景,会适当牺牲转码速度或者压缩率,以保证清晰度最佳;以转码速度优先的场景,会调整质量,以适实现更高的转码速度。这样更有针对性的编码调优,就可以根据需求实现场景化的平衡。
除此之外,还从更加上层的用户体验上做了很多细节的优化。
王海华表示:“从相册选择资源进入编辑界面,从点击合成按钮进入发布界面,从点击发布界面回到 APP 的主界面等这些环节的交互流畅度也直接影响用户体验。这其中的优化点:首先是当从相册选择多个图片或者视频合成视频时,我们底层支持图片视频混编的能力从而缩短 loading 时间,减少等待时间;其次支持后台合成和后台上传,点击合成按钮和发布按钮的时候我们直接进入后台进行合成和上传,让 APP 可以更快的进入到下一个界面,从而提升用户体验。”
“在视频生产端经过了以上的优化后,看起来我们可以根据对应的场景拿到自己需要的视频,所有的问题都解决了。但是面临着海量上传和播放,以及复杂的网络,我们怎么保证上传速率和上传功率?在播放环节上又怎样去保证播放流畅度?作为开发者(我们的客户)又怎么控制带宽成本呢?”接下来,王海华带我们了解了在上传、云端处理和分发以及播放几个环节中的优化点以及带来的效果。
二、视频上传链路优化
在视频上传链路,需要核心关注速度和上传成功率两个指标。视频云支持动态加速,选择最优路径来就近上传数据,保证极速上传。同时,采用分片、断点续传技术,针对不同地域和场景决定分片大小,确保上传成功率在 99.2% 以上。
三、云端处理 & 分发
当视频上传到云端,就需要对其进行转码等处理,并进行内容分发。这其中我们针对三个指标进行关注和优化:
1. 视频发布速度
不同的场景,需要的视频发布速度是不同的。对于聊天场景下的视频发布,直接在端上进行转码,把原视频直接访问,最大限度提升速度。对于对实时性要求并没有那么高的视频社交 APP 等场景往往在上传的时候会上传一个码率相对较高的高清视频,为了视频快速启播,我们推荐可以先运用低复杂度转码来加快转码速度;在未来,也会将视频端上合成、上传和云端转码并行处理,大幅度缩短处理时间。
2. 转码成本 vs. 带宽成本
在很多社区里面当一个视频变成热门视频的时候,这时候带宽会带来更大的成本,这个时候建议对热门视频重新转码,提升转码复杂度,将视频文件变小,降低带宽成本。
3. 提升播放体验
因为用户的终端和网络情况不同,所以需要进行多清晰度转码,并采用推荐视频预热方案,提升启播速度和流畅度
四、视频播放优化
播放端直接影响着用户体验,这里我们需要关注几个指标:

打开速度的快慢影响着用户对产品的第一印象,启播环节用到协议优化、解码渲染优化、视频列表预加载等方案,实现极速启播。
短视频通常比较短小,通常会采用循环播放的方式来吸引用户重复观看,避免流失。那无缝地循环播放、同时边播放边缓存就十分必要,可以节省流量。
终端网络情况复杂,但播放流畅度依然是用户十分在意的指标。当用户出现网络环境的变更,需要快速切换多种清晰度的视频,保证视频播放的流畅。

如何进行产品快速落地
一、客户端
短视频 SDK 将最新最流行的功能、交互集成到产品级 Demo 中,并开放了源码,开发者拿到以后可以直接集成到应用中,或者基于源代码进行业务的适配,快速开发出一款短视频 APP。
Demo 提供了拍摄、编辑、播放等模块,同时提供相册管理、音乐、动图、字体等资源的下载和管理,也提供了异步上传发布功能、AppServer 业务服务器的 SampleCode。
二、服务端
在云端,短视频 SDK 与视频点播服务打通,提供了丰富的媒体管理和媒体处理能力,开发者通过简单的配合和 API 调用就可以将以下功能集成到业务当中。
媒资存储:音频,视频,图片,字幕等丰富的存储能力;媒资管理:提供了分类,打标,搜索,审核能能力等;数据统计:存储,流量 / 带宽,播放量等数据统计;

感兴趣的用户,可以扫描上方二维码体验 demo,点击访问阿里云官网短视频解决方案页面,了解详情,或者点击浏览趣视频解决方案文档,更快上手

本文作者:樰篱阅读原文
本文为云栖社区原创内容,未经允许不得转载。

退出移动版