阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

淘宝直播在智能互动领域的探索及落地

  • 2020-09-11
  • 本文字数:2227 字

    阅读完需:约 7 分钟

淘宝直播在智能互动领域的探索及落地

背景

随着带宽成本的降低和端上算力的提升,在直播、短视频中基于流的互动玩法也将越来越丰富;无论是基于人脸、手势、分割算法的智能化贴纸,还是结合算法的小游戏有了越来越好的舞台;业界短视频和直播主要针对的娱乐性的场景,更是将娱乐化的玩法用到了极致,例如抖音的仿 flappy bird 潜水艇小游戏,最气的漫画风格的拍摄玩法都引爆成为热点。抖音有 PC 的玩法生产工具 EffectCreater 生产工具和移动端的玩法社区特效君,已经打打造了一个支持数以万计的设计师的生态圈。


淘宝直播和短视频更偏向电商场景,我们也在探索这些玩法在直播和短视频中的应用,对提升直播间停留时长,丰富直播间和短视频内容;其中在视频流里面渲染和算法调用几乎都是 Native 的能力,如果用 iOS 和 Android 上分别实现,性能较难把控,开发成本、上线和下线成本高,必须在活动前很长时间开发,然后随着版本发版,活动结束后为了减少包大小,又需要将代码删除,玩法也无法沉淀。


跨端方案成为唯一选择,为了提高运营、设计和玩法开发人员的制作效率,我们也必须有配套的素材生产工具和玩法编辑工具, 解决素材制作-效果调试和预览-素材上传-素材投放全链路的问题,同时我们也希望玩法能结合权益产生更大价值。

跨平台渲染计算引擎

首先在底层渲染层,我们开发了基于 C++的跨平台渲染计算引擎 RACE,除了为传统的视频前处理、画质增强、美颜美型美妆外,也提供了动画系统、玩法系统等游戏化的能力,在一个渲染引擎里面将媒体渲染和游戏化渲染结合起来。


我们采用了游戏行业经典的 ECS 系统,加以简化和改进,来解决渲染关系,渲染逻辑和玩法逻辑的组织。




玩法往往需要多个算法的配合,同时视频美颜、前处理等等也需要算法的能力,端上算力有限,合理的算力管理调度也必不可少,所以我们开发了 PixelAI 统一的算法计算框架,一个是用来进行算法生命周期模型管理、还有算法调度,性能监控,同时也提供了多平台的算法运行时统一的基建设施,这样算法同学只要做好模型推理和算法实现,所有工程化的东西一站式解决。

脚本系统设计

在玩法方面,我们希望玩法可以动态下发,这就需要能用脚本去做玩法,我们希望将渲染计算的能力全部导出到脚本系统里面,这样就可以在脚本里面利用底层强大的能力;同时玩法里面可以方便的调用业务接口,做好玩法和业务的关联,业务逻辑主要在 Weex 和 H5 环境,同时我们也希望脚本能力能够使用在编辑器上,供跨端的前端框架如 Electron 或 Flutter 直接调用,这样节省了大量的编辑器开发工作量。



我们在不同 JS 引擎上封装了一层 JS Wrapper 层,抹平不同 JS 引擎的 JSBinding 问题,利用 LLVM 分析 c++头文件,利用 python 工具编写 JSBinding 模板全自动化导出 C++到 JS 的接口;对原有的渲染计算框没有做任何修改,这样在不需要玩法的情况下,不影响稳定性;


同时我们也导出了一份 OpenGL 到 WebGL 的接口,这样完全可以在 JS 侧能在视频流里面实现更丰富的渲染能力。

MediaAI 素材玩法编辑器

编辑器我们和前端和设计师合作,采用 Electron 方案,编辑器预览和编辑窗口的显示核心由 RACE 渲染计算统一提供,Electron 底层是 NodeJS,NodeJS 的 JS 引擎是 V8,只要将 RACE 的 JSBinding 接口直接注入到 V8 里面,编辑就可以调用全部的 RACE 接口做窗口预览和编辑,这样编辑器开发就节省了大量的开发工作量;


编辑器中接入素材平台,运营和开发人员编辑好素材和玩法之后,上传到素材管理平台,由素材管理平台进行分发,玩法类由有相应权益的主播或者运营设置好参数,如玩法对应的权益,下载玩法到推流端或者播放端,在端上的 JS 环境中解析 JS 脚本,加载素材和玩法逻辑,渲染和计算部分底层统一由 JS binding 调用到跨平台的 RACE 引擎完成,完整链路如下:



编辑器既可以面向设计师制作各种人脸手势触发贴纸、视频文字模板等等,又可以面向前端开发者制作互动小游戏:



部分落地

春节期间淘宝直播推出的春节氛围:



直播后面比较乱,利用分割算法来个背景模糊,或者来个抱抱宝宝的小怪兽:




商家希望主播和达人能够拍摄短视频对商品进行介绍推广,主播和达人也能够从短视频的购买中分佣,对广大中小主播和达人而言,将商品寄送到每个可能会推广的主播和达人成本高昂,我们 360 度的拍摄一个商品,然后利用主播可以用手势控制缩放旋转商品别介绍,这样就可以极低成本无接触式的生产商品推广短视频;


在直播连麦或者粉丝连麦中做个 flappy bird 的小游戏?或者主播在发放红包后,粉丝通过玩游戏通过游戏得分才能领取红包,这样既有趣,又将粉丝留在直播间;



来点可爱又萌的美妆贴纸(原谅一个程序员全程友情出镜);



后记

一个好的媒体互动产品能给业务带来更多的活力,但往往需要创意设计师、算法、底层和业务开发共同完成,端上算力有限,特别是在淘宝直播,手淘短视频等场景下,其他业务已经占用了很高的性能,需要灵活高效的架构,很好的性能,针对高中低端机的分级体验。在电商场景下,挖掘更适合电商玩法的互动能给业务带来更大的价值,好玩的互动再跟权益绑定,为商家、主播提供更多更好玩的运营工具;在大促活动提供更有趣的玩法、日常活动里面提供更好的留存手段。


我们近期会新增很多的渲染能力和算法能力,打造好基础,这样才会更大的发挥大家的创意;我们近期也将举办一个素材设计比赛,激活大家的创造力,等配套工具更完善,我们也会将工具开放给外部的商家、主播等,打造更好玩的直播短视频生态。


本文转载自公众号淘系技术(ID:AlibabaMTT)。


原文链接


淘宝直播在智能互动领域的探索及落地


2020-09-11 14:061846

评论

发布
暂无评论
发现更多内容

盘点2020 | 疫情下的思考和学习

soolaugust

盘点2020

硬肝到秃头!Alibaba强推并发编程笔记我跪了,真的学到好多东西!

Java架构追梦

Java 学习 架构 面试 并发编程

好久不见!这份Spring全家桶、Docker、Redis架构大礼包免费赠送

Java架构之路

Java 程序员 架构 面试 编程语言

Java进阶文档:彻底搞懂JVM+Linux+MySQL+Netty+Tomcat+并发编程

Java架构之路

Java 程序员 架构 面试 编程语言

智慧城市建设,社区智能化系统搭建解决方案

t13823115967

智慧城市 平安小区

产品策略闭环是个什么环?

万事ONES

项目管理 团队协作 需求管理 需求分析 产品策略

一口气说出四种幂等性解决方案,面试官露出了姨母笑~

不才陈某

Java 分布式 接口

从源码的角度搞懂 Java 动态代理!

Java架构师迁哥

将原则纳入到架构的生命中

soolaugust

架构 思考 设计

我和阿里P7差的不是薪资?而是Redis+微服务+Nginx+MySQL+Tomcat

Java架构之路

Java 程序员 架构 面试 编程语言

云图说 | 云上资源管控有神器!关于IAM,你想知道的都在这里!

华为云开发者联盟

服务 权限管理 iam

Prometheus TSDB(Part 2):预写日志(WAL)和检查点

Grafana 爱好者

云原生 Prometheus tsdb 可观察性

答了Mybatis这个问题后,面试官叫我回去等通知……

田维常

mybatis

腾讯高工强烈推荐的“Netty速成手册”原理+应用+调优,带你将知识点一网打尽

比伯

Java 编程 程序员 架构 Netty

解析字节算法面试真题,深入探究ArrayList应用原理

小Q

Java 学习 编程 架构 面试

一文为你详解Unique SQL原理和应用

华为云开发者联盟

数据库 sql unique

IDEA 文档插件 DocView 版本更新:修改 UI 并支持 IDEA 2020.3 !

程序员小航

idea插件 IntelliJ IDEA 文档生成

为了SpringBoot提交Tomcat执行,我总结了这么多

小Q

tomcat 学习 面试 微服务 springboot

面试被问高并发一脸懵?那是你没看过我整理得高并发回答模板

小Q

Java 学习 面试 高并发 性能调优

VACUUM无法从表中删除死元组的三个原因

PostgreSQLChina

数据库 postgresql

智慧警务可视化平台开发,重点人员管控系统搭建

t13823115967

智慧公安 智慧警务系统开发

《大数据算法》.pdf

田维常

算法

EZYTRX波场智能合约APP系统软件开发

系统开发

dubbogo 3.0:牵手 gRPC 走向云原生时代

阿里巴巴云原生

gRPC 云原生 中间件 dubbo-go Go 语言

80%Java开发者面试都问的SpringBoot你竟不会?看完这些笔记足以

Java架构之路

Java 程序员 架构 面试 编程语言

LeetCode题解:127. 单词接龙,BFS+统计单词变化次数,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

从 JMM 透析 volatile 与 synchronized 原理

码哥字节

volatile JVM JMM Java 25 周年 synchronized

什么是全场景AI计算框架MindSpore?

华为云开发者联盟

人工智能 AI mindspore

DeFi(去)中心化DAPP系统软件开发

系统开发

一文带你彻底了解大数据处理引擎Flink内存管理

华为云开发者联盟

大数据 数据 处理

耗时一个月整理的97道大厂Java核心面试题出炉,精心整理,无偿分享

Java架构之路

Java 程序员 架构 面试 编程语言

淘宝直播在智能互动领域的探索及落地_大前端_张伟(韦编)_InfoQ精选文章