MediaBox助力企业一站式获取音视频能力

news2024/12/31 5:55:21
以一只音视频百宝箱,应对「千行千面」。

洪炳峰、楚佩斯|作者

大家好,今天我分享的主题是MediaBox——行业音视频数字化再加速。

根据权威数据表明,65%的行业数字化信息来自视频,基于此,音视频技术对于行业数字化来说是至关重要的。今天我想借此机会向大家介绍一个重量级的客户端产品——MediaBox,它将致力于实现行业音视频数字化再加速。

MediaBox,顾名思义,是一个包罗万象的音视频魔盒。在这里,多种音视频能力的SDK可供任意选择、自由组合、多端适配,一次性满足多种音视频需求。

接下来我将从MediaBox初识与全景、音视频终端SDK的架构设计和演进、音视频低代码开发的场景建设与实践和生态合作及未来展望四个方面进行分享。

01 MediaBox初识与全景

从需求侧来看,传统音视频技术已发展多年,在行业化的过程中被广泛应用于互娱行业。同时,也在逐渐向教育、医疗和零售等传统行业渗透,刺激了传统行业需求的旺盛增长。

从研发侧来看,音视频的复杂度使得行业客户也面临许多挑战,例如开发门槛高、接入复杂度高、性能挑战大等等。

基于这些行业趋势和挑战,企业的音视频诉求可总结为:高易用、高性能、场景化、多端化的多SDK组合及方案。阿里云视频云“MediaBox音视频终端一体化套件”就给出了这些问题的最优解,通过极致的自我进化,加速行业音视频数字化落地。

这里分享一个大家比较熟悉的互娱场景:直播PK。在开播端需要RTC技术支持直播推流和旁路直播;在PK时需要借助IM信令完成交互、RTC完成音视频流传输以及进行混流布局。这样的场景就需要多个SDK和云产品组合完成,那么相比音视频SDK,我们更需要场景化的解决方案。

通过MediaBox全景图,可以看到,MediaBox由音视频终端SDK、音视频低代码AUI Kits两大部分组成,并基于行业生态合作构建音视频场景方案。

MediaBox音视频终端SDK全面覆盖实时音视频、直播、超低延迟直播、播放器、短视频、美颜特效等,通过自由组合出包,形成一系列不同能力的SDK,为客户提供灵活、易用、高效的接入体验。

MediaBox AUI Kits通过对MediaBox SDKs单点能力做场景化的封装,方便客户将某个视频场景化的能力快速集成到自己的应用中。客户不需要理解音视频SDK中API的具体用法,只需关心自己的业务实现,即可实现场景化的音视频能力,从而大大加快业务开发进程。

MediaBox的优势可以总结为“一体、三高、多场景”。

首先是一体化:主要是SDK一体化和云端一体化。基于SDK一体化的底座,既可以方便地进行SDK开发,也可以进行SDK组合,满足不同的业务需求;云端一体化,比如特效引擎实现端云体验一体化,智能缓存、调度优化等实现端云一体化。

三高,指的是高易用、高性能、高智能。基于一体化SDK,我们可以实现SDK的灵活组合,并且结合AUI方案实现低代码接入以保证易用性;另外,SDK的稳定和高性能是重中之重;同时,SDK的智能化可以很好地服务各种场景需求。

最后是场景化,场景化方案要解决易用和好用的问题。举个简单的例子,长视频和短视频场景,在起播buffer的设置、缓冲区大小、本地缓存的设置上是有很大差异的,而客户需要的是可以依据具体需求,开箱即用的场景化方案。

02 MediaBox音视频终端SDK的架构设计和演进

接下来介绍MediaBox音视频终端SDK的架构设计。

在此之前,给大家分享两则小故事。大家知道国产大飞机C919上有多少个零件吗?据相关报道,C919上一共有250万个零件,如此多的零件需要经过完整的系统工程组装起来,并且其中的每个零件都非常重要。

如果我们把MediaBox比作一架飞机的话,那么其中的各个子模块就相当于零件,如何进行有序组装、并完整实现整体功能就成为了一个巨大的挑战。

另外一个分享是关于汽车制造平台。我们知道,不同车型可以在同一个制造平台上生产,共用整车设计,尤其是底盘设计和车辆结构。同样的,MediaBox基于一体化的底座,可以快速迭代和开发SDK产品。

上图是MediaBox一体化SDK的总体架构。它是一个分层的架构,SDK的Crash捕获和License认证都是作为通用能力服务于整个SDK,在SDK之外还有很多研发支撑工具,来保障SDK研发的效率和稳定性。

在SDK的发展初期,各个业务为了满足需求,会各自进行SDK的迭代。随着客户业务的发展,会需要使用多个SDK来完成功能需求,如果强行把这些SDK融合在一起,在包大小方面也不是最优的,而且可能会产生包冲突。

于是我们针对几个主要原子SDK的功能模块做了分析。如图所示,各个SDK之间有很多可以共用的模块,通过SDK模块,可以更好地进行模块复用,同时实现包大小的降低,另外也可以实现更多的性能优化和兼容性提升。

这些组件抽离后,如何将它们组合到一起呢?可以通过pipeline机制来串联从采集到渲染的整个流程。而音视频pipeline的构造、运行、销毁等全生命周期管理,则需要由微内核来实现,它具备高效、灵活的特点,同时因为引入了插件管理,可以实现插件的插拔,提升SDK的扩展能力。

接下来通过一个示例展示插件设计。

某位客户希望引入智能降噪的功能模块,一般情况下智能降噪模块是基于深度学习网络实现的,所以其SDK包相对很大。如果我们直接把该模块引入SDK,会导致整个SDK的size过大。

通过前文介绍,pipeline机制可以很好地串联内部组件,那么对于外部组件是否有好的解决之法?我们在微内核中通过插件占位实现了插件的热插拔,真正实现一套插件代码、一次打包,同时满足两种客户的诉求。

前面介绍了一些架构设计的思考,接下来就涉及到一些实际落地的困难和挑战。

第一个问题,是重写SDK,还是基于现有的SDK进行演进?在业务需求的推动下,只能选择后者,但这相当于开着飞机换引擎,对于整体稳定性的考验非常之大。

第二个问题,对于一台零件众多的庞大机器,如何让它顺畅地运行起来?多团队如何协作?版本如何管理?

一体化工程涉及到多个组件,各个组件的版本管理、依赖关系也相当复杂,组件也很难独立被引用。因此我们设计了一个灵活组件管理工具:ACPM(Aliyun C++ Package Manager)。它由两个主要的模块组成:

1、依赖模块:负责根据描述分析依赖关系、下载对应组件、生成cmake工程需要的编译文件;

2、发布模块:负责托管组件静态库(在MTL上),并记录发布时的具体信息,以供依赖时分析。

通过这样的方式,我们可以更好地管理各个组件。举一个实际应用的例子,短视频、直播、RTC都使用到了视频采集模块。如果针对此模块做融合,直接重写一份模块进行共用,在实际运行过程中可能会遇到一些挑战。

我们采用的方式是ACPM化,在一个相对业务量较小的业务(如短视频)内,将其SDK中的视频采集模块ACPM化,另外两个业务仍使用原有的模块。在前者的ACPM化模块逐渐稳定后,再将后两者的模块进行ACPM化,就可达到整体组件使用和工程效率上的融合。

ACPM化也可以应用在公共组件、音视频算法等当中。在跨平台上,我们不仅支持了Android/iOS/Win/Mac多端,还支持了Web端,可以输出成Web Assembly代码,这样一些Native客户端的能力可以快速无缝转到Web平台,实现多端体验的一致性

比如美颜特效SDK,可以通过ACPM编译成Web Assembly代码来供Web平台使用,由于底层代码是同一套,在体验上也最大程度地保证了一致性。

接下来以一个高性能算法特效执行引擎在Web端的实践为例,介绍如何用一体化的框架落地。

如图中的特效引擎,有其pipeline以及数据输入组件和图像处理组件,它可以打包成Android/iOS/Win/Mac以及服务端的版本,在Web端通过WASM的方式支撑相关业务。

Web上会有性能差和功能受限的问题,我们通过Profile工具生成火焰图,分析耗时函数,并将其进行SIMD替换。另外,通过在Web上开启多线程,可以提升整体运行效率。

云端一体可以实现更极致的优化,是竞争力的体现。

我们实现了一张网一个SDK,并覆盖常见的音视频相关场景。一体化SDK和一体化网络MediaUni的配合,可以实现端云一体化的体验,通过对接客户端SDK,即可便捷地使用云上的服务。

比如端云协同,可以实现智能调度,通过云端联动,智能控制播放缓存大小,以此降低成本。与媒体服务协同,可以实现智能按需转码,当发现某个热门视频时,可以智能启动转码,提升播放体验的同时,也节约了客户的成本。

通过前面的方案,可以说飞机已经造出来了,但还需要保障其稳定性。

首先是一体化对客,所有SDK共用一份License,进行统一授权认证、统一入口和引导;

其次是高可用稳定性体系,通过Crash的收集、问题的智能归因,可以快速识别出问题的影响范围;

然后是高可用数据体系,基于数据指标做埋点优化,针对异常指标进行监控;

最后是建设完善的自动化测试体系,来完整保障SDK的质量和稳定性。

MediaBox在场景化实践中,同样基于端智能技术不断创新突破。

例如,在端侧超分上,需要针对算法进行调优,并考虑端侧算力的兼容性;另外,智能预加载会利用智能算法,基于当前网络状况、用户滑动行为、历史播放行为等信息,动态控制预加载缓存。

在远程教学一对多场景中,学生专注度下降导致教学效果差是远程教学一直以来的痛点,而场景智能为业务赋能带来了更多可能性。音视频终端套件,不止是单纯的开发工具,更是行业的创新型端口,以最轻量的方式,赋予场景全新的数智化能力。

03 MediaBox音视频低代码开发的场景建设与实践

我们接触到的很多客户都不是专业做音视频开发的,因此他们都有一个共同的诉求,即希望能提供一揽子解决方案,而自己只需要专注业务开发即可。

在这里,有几个值得探讨的问题:到底要实现什么样的组件,组件要实现到什么样的粒度,组件要不要开放?

基于这个逻辑,我们开发了很多音视频的低代码基础组件,这些基础组件又可以组合成场景化组件。

AUI Kits的组件设计遵循统一规范、多端统一、简单易用这三个原则,实现了多端一致的UI风格。当然,我们也提供了一些易用的工具,方便客户使用脚本实现一键引入,这样可以极大提升客户的集成效率。

AUI Kits方案不只有UI控件,也包含与服务端紧密配合的场景化组件,其灵活的架构设计可以让客户方便地进行组件组装,另外核心组件的代码也是开源的。

以接入的某电商直播客户为例,基于场景化的解决方案,客户快速接入音视频能力并跑通业务,同时根据需求自定义开发,定制化修改了其UI。

以下将以图中的例子说明,场景化方案是如何来设计的。

场景化方案一般由App、AUI Kits以及App Server配合云服务来完成。为了方便客户一站式集成,App Server当前已经对接了常用的直播审核、录制等阿里云PaaS层功能,客户可以基于源码进行二次开发部署,或者直接使用容器化的方式完成服务部署。客户端的组件会与服务端进行交互,完成场景化的业务功能。

面向娱乐直播、电商直播、企业直播,我们开发了互动直播AUI Kit场景解决方案,将常见的功能抽成组件实现。

在集团内部客户的某App电商直播场景,通过使用AUI Kit的直播播放、弹幕和橱窗等组件,实现了业务的快速落地。此外,某新能源汽车公司快速集成了AUI Kit方案,完成新车发布会的企业直播。

面向公开课、大班课、企业内训等场景,我们开发了互动课堂AUI Kit场景化方案,并在此场景下,完善了互动白板、智能专注度监测等功能。

针对远程监考场景,音视频技术可以很好地赋能教育行业。

中国每年有很多艺术考试,在传统的方式中,艺术生都需要去现场考试。而远程监考场景具有很多难点,首先传统的RTC会议方式是所有考生都在一个会议里,某位考生和老师之间要实现单独通话,且其他考生听不到的需求是难以满足的;除此之外,艺考模式是大量学生同时在线,高并发的流量对于RTC系统也是非常大的挑战。

针对痛点,远程监考AUI Kit方案凭借MediaUni网络,实现一对一通信,并支持万人场景下的高并发推流。

基于低代码方案,企业可以快速完成方案集成,大大降低开发门槛。另外,远程监考方案覆盖了Android/iOS原生应用,微信/钉钉小程序以及Web等多端,保障了考试场景下的“高易用”。

同时,基于全球3200+节点的底层网络,远程监考AUI Kit方案能承载10万+考生同时在线,实现监考端视频延时1秒内、1对1通话延时300ms内,全方位满足高可靠、高并发、低延时、高清晰度的“极致好用”。

04 MediaBox生态合作及未来展望

MediaBox的场景化解决方案,可以降低开发门槛、提升集成效率,因此我们将不断开发出更多场景化方案,为行业音视频数字化助力。

此外,云端一体可以实现更极致的优化和更好的体验,这里面可挖掘的空间巨大,我们还将结合场景深耕技术,让端云结合发挥更大价值。

在端智能方面,我们已经实现了智能的预加载,能根据当前的网络情况、当前用户的行为等信息进行模型计算,给出决策。在行业音视频数字化过程中,场景方案中还会对端侧智能提出更多需求。端云结合的智能化、大模型加持下的智能化,都是非常有想象空间的方向。

最后,我们在近期启动了MediaBox生态合作伙伴计划,招募战略伙伴以及重点伙伴,并在销售、营销、技术、赋能等方面给予支持,为伙伴提供更广阔的发展平台。期待与合作伙伴一起,强强联合,为行业客户提供简单、易用、高质量的视频云服务。

我的分享到此结束,谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

长胜证券:三大拐点共振 看好智能驾驶新一轮行情

摘要 【长胜证券:三大拐点共振 看好智能驾驭新一轮行情】长胜证券研报指出,全球共振,国内智驾商场正迎来三大拐点:1)技能上,“BEV Transformer数据闭环”新架构2023年开端上车,使得不依靠高精地…

高并发-ExecutorCompletionService

目录 1 为什么要引入高并发 2 ExecutorCompletionService分析 2.1 原理 2.2 api调用分析 3 实操 1 为什么要引入高并发 众所周知,程序中的代码是从下往下顺序执行的,当我们需要在一个方法中同时执行多个耗时的任务时所消耗时间就会大于等于这些任务消…

港陆证券:五日线破位怎么看?

在股票交易中,五日线是个重要的技术指标之一,它能够反映出最近的商场趋势。假如五日线破位,这意味着商场呈现了趋势反转,出资者需求注重趋势改动,并采取相应的出资战略。 首先,咱们来看看五日线破位的原因…

修改PX4飞控的imu频率

QGroundControl 连接上飞控后,打开 Analyze Tools 下的 MAVLink Inspector 界面 可以看到当前的 IMU 频率为50 HZ,或者在终端启动 mavros,终端输入 sudo chmod 777 /dev/ttyACM0 roslaunch mavros px4.launch 然后查看频率 rostopic hz /m…

备份StarRocks数据到对象存储minio中/外表查minio中的数据

1.部署minio环境 docker pull minio/minio宿主机与容器挂在映射 宿主机位置容器位置/data/minio/config/data/data/minio/data/root/.minio 拉起环境: docker run -p 9000:9000 -p 9090:9090 --name minio \ -d --restartalways \ -e "MINIO_ACCESS_KEYadm…

uniapp的小程序中使用web-view进行相互传参,并监听web-view的返回键

uniapp的小程序中使用web-view进行相互传参&#xff0c;并监听web-view的返回键 一、unaipp给webview传参 //uniapp页面中 <web-view :src"src" message"getMessage" onPostMessage"getPostMessage"></web-view>data() {return …

Mybatis学习|Mybatis缓存:一级缓存、二级缓存

Mybatis缓存 MyBatis包含一个非常强大的查询缓存特性&#xff0c;它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。 MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存 默认情况下&#xff0c;只有一级缓存开启。(SqlSession级别的缓存&#xff0c;也称为本地…

github无法访问

1.查看ip ipaddress.com 2.地址如下&#xff1a; 3.修改本地host文件 &#xff08;1&#xff09;打开访达后&#xff0c;在键盘上按ShiftCommandG组合键&#xff0c;进入&#xff0c;在etc找到host文件&#xff0c;修改 &#xff08;2&#xff09;如果修改不成功&#xff0…

LeetCode 47题:全排列2

题目 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[…

【C++】C++11新特性 可变参数模板

可变参数模板 可变参数模板1、基本介绍2、递归函数方式展开参数包3、逗号表达式展开参数包 可变参数模板 1、基本介绍 C11的新特性可变参数模板能够让你创建可以接受可变参数的函数模板和类模板&#xff0c;相比C98/03&#xff0c;类模版和函数模版中只能含固定数量的模版参数…

将 ChatGPT 用于数据科学项目的指南

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 我们都知道 ChatGPT 的受欢迎程度以及人们如何使用它来提高生产力。但是&#xff0c;如果您是新手&#xff0c;则值得注册ChatGPT免费演示并尝试它所能做的一切。您还应该参加我们的 ChatGPT 简介课程&#xff0c;学习…

文旅品牌为何青睐于3D虚拟数字人定制?

随着web3.0技术的到来&#xff0c;数字人技术快速发展&#xff0c;推动着文旅通过3D虚拟数字人定制&#xff0c;探索数字化营销。数字人结合动捕设备&#xff0c;可以颠覆传统玩法&#xff0c;以数字人内容赋能传统宣传手段&#xff0c;通过动捕设备让数字人与用户交流互动&…

U盾难管理?用U盾专用USB集线器

公司有一堆U盾要插着用&#xff0c;但是一台电脑也才两三个接口&#xff0c;怎么办&#xff1f; 三个字&#xff0c;很简单&#xff0c; 一台U盾专用的USB集线器就能解决。 U盾专用集线器为解决网银U盾连接问题而生。 它有四大好处&#xff01; 集中管理 把所有U盾集中到一…

Java泛型(待补充)

泛型是一种“代码模板”&#xff0c;可以用一套代码套用各种类型。 一、什么是泛型&#xff1f; 泛型就是编写模板代码来适应任意类型&#xff1b;泛型的好处是使用时不必对类型进行强制转换&#xff0c;它通过编译器对类型进行检查&#xff1b;注意泛型的继承关系&#xff1a…

RHCE——十七、文本搜索工具-grep、正则表达式

RHCE 一、文本搜索工具--grep1、作用2、格式3、参数4、注意5、示例5.1 操作对象文件&#xff1a;/etc/passwd5.2 grep过滤命令示例 二、正则表达式1、概念2、基本正则表达式2.1 常见元字符2.2 POSIX字符类2.3 示例 3、扩展正则表达式3.1 概念3.2 示例 三、作业1、作业一2、作业…

【Apollo】开启Apollo之旅:让自动驾驶如此简单

前言 Apollo 是百度公司推出的自动驾驶平台。它是一个综合性的自动驾驶解决方案&#xff0c;提供了包括感知、决策、规划和控制等核心功能&#xff0c;以及地图、定位、仿真、数据管理等配套工具。 文章目录 前言Apollo 的发展历程Apollo 8.0新特性软件包管理感知框架工具链小…

软件确认测试的七大准则

确认测试 1. 确认软件设计是否依从于软件需求&#xff0c;且软件的每一项需求是否能跟踪到软件设计。 2. 确认状态顺序和状态变化( 功能模块图) 。 3. 确认数据和控制流满足安全性、功能性和性能需求。 4. 确认软件的功能性&#xff0c;硬件、软件和用户接口的一致性&#…

上海亚商投顾:沪指放量大涨超1% 北向资金净买入近70亿元

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日集体反弹&#xff0c;沪指高开高走涨超1%&#xff0c;上证50盘中涨超2%&#xff0c;北证50指数涨…

涉案财物管理系统DW-S405|实现涉案财物智能化管理

涉案财物管理系统&#xff08;智财物DW-S405&#xff09;是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 东识涉案财物管理系统是一套基于物联网技术的管理方案&#xff0c;旨在规…

孙哥Spring源码第17集

第17集 refresh()-invokeBeanFactoryPostProcessor -一-invokeBeanFactoryPostProcessor的分析过程 【视频来源于&#xff1a;B站up主孙帅suns Spring源码视频】 1、什么是解析顶级注解&#xff1f; PropertySource CompeontScan Configuration Component ImportResour…