2018亚太CDN峰会开幕, 阿里云王海华解读云+端+AI的短视频最佳实践
4月11-12日,2018亚太CDN峰会在北京隆重召开,在11日下午的短视频论坛中,阿里云高级技术专家王海华进行了《短视频最佳实践:云+端+AI》的主题演讲,分享了短视频的生命周期关键点和阿里云技术解决方案。以下全文为演讲内容。
每个人都将成名十五秒钟
短视频已经走进我们的生活,离我们越来越近。在1968年美国的艺术家 安迪•沃霍尔 就曾经预言:“在未来,每个人都将成名十五分钟。”在短视频如此火爆的当下,我想这句话可以改成“在现在,每个人都将成名十五秒钟。”可能这个修改有一些断章取义的嫌疑,但这句话恰到好处的表示了短视频的精彩之处,短小精悍、易于传播、内容蓬勃。
我们来看几组短视频行业的数据,来自36Kr研究院的数据显示,2017年9月份短视频用户总时长渗透率为4.1%,位于细分行业名列第五,但同步增长率达到311.3%,这是用户层面的数据,同时在资本市场,我们看到一组来自易观的数据,2017年第三季度短视频市场投融资事件24起,估算吸金超8亿元。
前面讲到的都是整个短视频市场利好的信息,其实短视频有多火我相信在座各位的敏锐度很高。那么问题来了,如何利用自己对所在行业理解的优势,快速推出属于自己的短视频应用呢?接下去的分享就可以解答大家的疑惑。我将为大家分享一下阿里云视频云是如何来思考和用技术方案来解决这个问题的。
移动短视频生命周期
不管你是在自己已有的应用里面提供短视频能力,还是从零开始完成一款短视频应用的开发,我们从一个短视频生命周期上去看,他大概存在以下几个关键的环节。
- 移动端上的视频采集,编辑,生成一个mp4文件;
- 视频上传到服务器上进行文件存储和Meta信息存储;
- 媒体文件(包括图片和视频)都需要在服务端进一步的处理,才能够让用户得到更加好的体验,在图片时代,我们为了让用户能更快访问图片在不同的场景我们会对图片进行压缩裁剪,同样在视频时代我们也有这样的需求,应对不同的网络环境,不同的设备用户都应该有自己更好的体验,这个时候就需要对视频做出压缩,缩放,裁剪等处理,一方面用户能有更快更流畅的体验,另一方面APP开发者也能够在流量上节省更多的成本;对于海量的内容我们如何能够更加容易和方便的管理,传统的就是通过对视频的标题,描述,类别,tag进行检索和管理。现在我们可以通过更多的人工智能相关的技术对视频内容进行理解来完善和补充视频的Tag信息;
- 拿到海量视频的时候我们需要让用户能够更快更流畅访问到我们的视频,必不可少的一个环节就是对视频进行分发;
- 用户需要看到视频最重要的还是需要一个功能完善,性能优异的稳定播放器;
阿里云短视频技术实现方案
下面就从短视频的生命周期每一阶段分别来介绍阿里云的技术实现方案。
视频生产阶段
在采集和特效编辑阶段,阿里云短视频SDK经过几年的发展,拥有的能力包括实时美颜、混音、滤镜、变速、图片视频混剪、字幕、MV效果等等,后面结合AI、AR技术、人脸贴纸等更多玩法,让短视频SDK在端上能够做出更具个性化的视频。同时,这些能力可以和垂直的电商、教育、社交、传媒等各个场景结合,实现业务融合。
其实大家在选择短视频SDK的时候,首先关注到的是功能丰富性,往往会忽略掉的是稳定性和开放性。对于短视频这个用户直接接触的功能来说,稳定性十分重要的,阿里云短视频SDK经过了集团对外的上千客户验证,相对比较可靠。关于开放性,一部分是UI交互层的源代码的开放,我们会给到客户非常完整的产品级别的DEMO,可以简单快速集成,同时,客户也可以根据自己的业务场景做定制化的交互开发;另一个部分是短视频的玩法特别多,每个行业和APP都在时刻变化,我们的SDK能做到尽量开放,提供标准化的文档和接口,让客户可以更好更快的接入第三方。这两个特性,我建议在座的各位在选择短视频SDK的时候可以去关注一下。
一个完整短视频的应用或服务,不仅仅需要短视频SDK,它是一个全链路的过程。生命周期上看包括采集、上传和云端处理等等。
在视频上传阶段,上传SDK提供了分片断点上传、CDN加速上传等能力,在移动状态下,在比较边缘的情况下也可以提高上传速度和成功率。
内容上传到云端后,有人认为下一步就是传输了,但是现在阿里云会做的更多,为客户提供了对视频媒资的管理服务。包括对多媒体媒体文件管理、Meta信息管理、数据服务等。
讲到这里,其实整个视频生产部分已经结束了。下面我们将介绍下短视频的云端处理和播放器观看的相关技术。
视频处理和播放阶段
大家在看视频的时候,经常会抱怨几个问题:
- 打开速度怎么这么慢?
- 为什么这个视频看着看着就卡了?
- 我这个视频为什么糊?
- 移动网络看到底费不费流量?
总结提来一句话:我希望我的视频看起来又流畅,又清晰,又省流量。这个看起来是个相互矛盾的问题,但是很多时候用户要的就是这个。所以,我们短视频研发人员也要格外关注这几个问题,因为这是来自于用户的声音。
为此,阿里云视频云团队推出了“窄带高清”技术,从人眼的模型出发,在节省码率的同时也能提供更加清晰的观看体验,从线上测试结果上看,同等视频质量下最高节省20-40%带宽。这个对于用户、对于开发者来说,都是极好的事情。
当然我们也有其他的选择方案,在保证画质前提下调整视频码率、提高压缩率、减小文件体积,以节省存储和流量,使播放更流畅这个指导思想之下,我们整个点播服务做了以下两种处理。不同客户对于视频转码的能力需求是不同的,我们根据不同的场景预制了不同的转码模板,通过勾选就可以实现转码。如果客户的链路有特殊需求,我们也提供了自定义来适应多变的业务场景,这样可以非常灵活的配置清晰度,码率,输出格式等信息。
前面我们解决了省流量和清晰度的问题,那么流畅观还需要强大的CDN资源来做支撑的,阿里云的CDN覆盖了全球70多个国家,拥有1300多个节点,总体的容量达到了90Tb,而我们的点播服务是与阿里云CDN进行无缝的衔接,保证我们的视频无论何时何地都能够流畅地播放。
同时,针对短视频这个场景在CDN上做了很多的优化,除了更加精准的调度以外,针对短视频的场景我们在TCP协议栈和缓存性能方面都做了很多的尝试,比如说协议栈上有更加激进的拥塞避免算法;缓存上采用了3级缓存,优化了淘汰算法提升了命中率等等一系列的优化,所有的这些都为为了我们视频能够更加流畅被播放。
播放器是接近用户最近的端,简单来说,客户使用了我们的播放器,就基本可以具备与优酷相当的播放能力。刚刚前面提到的用户几个抱怨中,有一个是为什么这么慢,针对这个场景问题,我们在播放器全面支持QUIC协议,基于更多的CDN资源强大的调度,使得我们的秒开成功率达到98%;
短视频循环播放是不可避免的应用场景,我们可以做到边播边缓存,做到收尾无缝衔接,第二次播放不需要耗费用户流量。在视频安全层面,也通过云和端的结合,实现了加密传输和播放,接入也只需要服务端的配置,无需更多的开发成本。
讲到这里,用程序员的话来说,其实整个短视频的开发流程已经能够跑通了。
短视频运营阶段
那当短视频的功能上线后,更多的是需要运营。在运营这个环节中,我们会碰到很多问题,首先,海量数据到达服务器后的内容审核和监管,阿里云视频AI可以快速识别出黄色、暴恐、涉政、垃圾广告、无意义视频等数据,提升人肉审核效率和精准度。
其次一个运营面临的问题是短视频的重复,视频指纹可以产生唯一的“指纹”来代表视频文件,在库中进行视频查找。应用场景包括视频查重、版权保护、原创内容保护、广告分成等。
另外,用户在创作短视频的时候,给到平台方的信息是非常少的。所以如果我们平台方想要对视频内容进行结构化理解,基于视频AI能力就可以实现。从各种维度去识别视频内容,包括人物、语音、文字、场景等,更方便去检索视频内容,根据用户特性去进行个性化推荐。
提升视频的点击率也是平台方和内容创业者关注的问题。通过视频AI来生成智能视频封面,摘取最精彩片段生成封面图、GIF、视频片段,展示在FEED流中,可以提升用户视觉体验,带来更多流量。
最后,平台方有的时候需要针对活动来快速生成视频合辑,传统的搜索、下载、剪辑、上传三个步骤下来,是十分耗时和繁琐的。这里我们提供了一个云剪辑的功能,所有的操作都在云端完成,实现对视频拼接、专场、字幕、打标等功能,结合素材共享、多人协同、极速分发,智能处理,更快的将视频生产并传输到用户面前。
前面做的所有事情,包括AI的引入,我们最终想看到的就是短视频分发后的数据提升。所以我们将云和端的数据整合,为用户提供了清晰直观的数据报表,让用户更好的了解业务情况。后面我们也会陆续开放大家更加关心的:首屏时间,播放成功率等数据。
2018亚太CDN峰会开幕, 阿里云王海华解读云+端+AI的短视频最佳实践的更多相关文章
- 基于华为云IOT及无线RFID技术的智慧仓储解决方案最佳实践系列一
[摘要]仓储管理存在四大细分场景:出入库管理.盘点.分拣和货物跟踪.本系列将介绍利用华为云IOT全栈云服务,端侧采用华为收发分离式RFID解决方案,打造端到端到IOT智慧仓储解决方案的最佳实践. 仓储 ...
- 基于AngularJS的前端云组件最佳实践
AngularJS是google设计和开发的一套前端开发框架,他能帮助开发人员更便捷地进行前端开发.AngularJS是为了克服HTML在构建应用上的不足而设计的,它非常全面且简单易学习,因此Angu ...
- 阿里云王广芳:5G时代,我们需要怎样的边缘计算?
7月24日阿里云峰会开发者大会的IT基础设施云化专场中,阿里云边缘计算高级技术专家王广芳进行了边缘节点服务重大升级发布,同时与现场观众一同探讨了5G时代边缘计算的思考与技术实践. 5G时代,我们需要怎 ...
- 阿里云VS腾讯云 谁才是中国未来的云计算之王?
阿里云早在 2009 年就已经开始布局云计算领域,具有先发优势.据统计,40% 的中国 500 强企业.近一半中国上市公司.80% 中国科技类公司是阿里云的客户.而腾讯云基于腾讯自身在游戏.视频.社交 ...
- [转帖]阿里云VS腾讯云 谁才是中国未来的云计算之王?
阿里云VS腾讯云 谁才是中国未来的云计算之王? https://www.qianzhan.com/analyst/detail/220/191008-f05009f6.html 吴小燕• 2019-1 ...
- 国内云存储对比: 阿里云、腾讯云、Ucloud、首都在线
阿里云的数据存储<http://www.aliyun.com/product/rds/> RDS — 关系型数据库服务(Relational Database Service,简称RDS) ...
- 最快1天搭建短视频APP!阿里云短视频解决方案上线
短视频行业的发展前景乐观是毋庸置疑的,整个短视频的市场规模一直在增长,网络数据显示2018年已经突破100亿大关,在2019年预测将超过200亿.那么,对于短视频从业者来讲,要持续推动业务的发展,必须 ...
- 以应用带动SDN发展(CDN峰会 工信部杨崑)(转)
以应用带动SDN发展(CDN峰会 工信部杨崑) SDNAP推荐:这是在亚太全媒体SDN峰会由工信部研究院秘书长杨崑做的关于SDN的一个演讲,本人认为主讲者通过对整 个信息服务体系的精简归纳总结,剥 ...
- 面向阿里云专家的 Azure 云服务介绍
本文是面向阿里云专家的 Azure 云服务介绍,参考本文可以帮助大家“按图索骥”在 Azure 的平台上找到能满足自己需求的服务. 在公有云计算蓬勃发展的同时,中国也出现了越来越多的本土公有云平台.针 ...
随机推荐
- 资深程序员的Metal入门教程总结
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由落影发表于云+社区专栏 正文 本文介绍Metal和Metal Shader Language,以及Metal和OpenGL ES的差异 ...
- Spring Log4j2 log4j2.xml
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-c ...
- Netty 源码阅读的思考------耗时业务到底该如何处理
目录大纲: 前言 处理耗时业务的第一种方式-------handler 种加入线程池 处理耗时业务的第二种方式-------Context 中添加线程池 总结:两种方式的对比和思考 前言 熟悉 Net ...
- 常见移动设备的 CSS3 Media Query 整理(iPhone/iPad/Galaxy/HTC One etc.)
@charset "utf-8"; /** * iPhone 4/4s landscape & portrait */ @media only screen and (mi ...
- SQL Server ——用 join on 连接多个表
select * from table1 inner join table2 on table1.id=table2.id 其实 INNER JOIN ……ON的语法格式可以概括为: FROM ((( ...
- 撩课-Web架构师养成系列第一篇
前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...
- 你真的了解 Unicode 和 UTF-8 吗?
目录 引言 ASCII 码 什么是 ASCII 码? ASCII 码都包含哪些字符? ASCII 码的局限在哪里? Unicode 什么是 Unicode ? Unicode 的实现方式有几种? Un ...
- visual studio 2013 下ef6 CodeFirst 使用SQL Lite 数据库
今天系统的来记录一下再vs2013下,使用ef6 codefirst功能,来操作SQL lite数据库 本来我以为sqlite数据库用的这么多,ef6肯定支持,结果,使用过程中很多坑,现在我把具体的配 ...
- Python 多线程、多进程 (一)之 源码执行流程、GIL
Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...
- instanceof与constructor的区别
名词介绍 instanceof 的作用是判断实例对象是否为构造函数的实例,实际上判断的是实例对象的__proto__属性与构造函数的prototype属性是否指向同一引用: constructor 的 ...