音视频终端引擎优化实践

本文由百度智能云-视频云终端技术架构师 ——李明路,在百度开发者沙龙线上分享的演讲内容整理而成。内容从音视频终端引擎的概念出发,梳理了音视频终端引擎的发展和技术演进,重点介绍了音视频终端引擎的关键技术组件,分享了开发过程中的经验与实践。

文/ 李明路

整理/ 百度开发者中心

视频回放:https://developer.baidu.com/live.html?id=8

本次分享的主题是:音视频终端引擎优化实践。内容主要分为以下五个部分介绍:

  1. 音视频终端引擎介绍

  2. 视频云音视频终端引擎发展

  3. 视频云音视频终端引擎面向企业级架构思考

  4. 视频云音视频终端引擎关键技术组件

  5. 视频云音视频终端引擎面向开发者提供服务

01 音视频终端引擎

什么是音视频终端引擎

定义:音视频终端引擎,是一款集成在移动或嵌入式设备中,使用软件定义的方法,扩展终端原有音视频处理能力,以高效地方式解决异构音视频场景下的归一化、抽象化、层次化的客户端问题。

注释:

  • 归一化:指提炼不同音视频场景背后的主线逻辑。
  • 抽象化:采用虚拟映射的方式,定义不同音视频实体与组件外部联系。
  • 层次化:通过顶层架构的设计,实现不同音视频业务与接口内生关系。

音视频引擎终端引擎基本架构

在这里插入图片描述

首先看图片的顶端,这一条链路很好的解释了在上一章提到的归一化:音视频终端是从业务中迭代出来的,通过一些方法论,还要能够回归到业务当中。

在这条链路上,列举了几个常见的业务场景:点播、直播、短视频、实时音视频等。随着这些音视频场景的不断丰富,业务也会越来越复杂,能够提炼不同音视频场景背后的主线逻辑就显得十分重要。

接下来,我们重点分析音视频终端引擎架构。

音视频框架首先要立足移动端提供的系统能力,包括系统框架和硬件能力。
如图,系统框架层有iOS/Android的一些多媒体框架、硬件的编解码、硬件的处理能力如CPU、GPU、NPU的处理模块,以及一些开源图像库。

系统框架层之上是第三方框架,如FFmpeg、OpenSSL(加解密);在点播场景用的比较多的Ijkplayer/Exoplayer;用于底层通讯的技术:双向、低延时的WebRTC技术,用于单向点播的RTMP,目前比较火的SRT低延时方案;除此之外,还会有一些图像处理方面的框架如GPUImage等。

在此之上,就是一些跟场景相结合比较多的模块,这里大致列出了部分核心模块。

数据从多媒体采集模块出来,会经过一路或多路的混音混流(与实际场景相结合),然后过渡到多媒体编辑模块:当下短视频的一些能力(比如:转场、字幕效果添加等)都是通过多媒体编辑这个处理单元实现,再到后面的多媒体后处理模块:例如AR特效,以及一些比较好玩的互动能力等;内容生产完成后,我们会根据点播、直播或者短视频等场景的不同,采用不同协议进行分发。

再下面就是消费侧,这里可以直接读取数据,也可以间接读取数据作为缓存加快二次读取数据的载入。获取数据后会根据不同的封装格式,如FLV、TS或者是MP4等对数据进行解封装,再进行解码和渲染操作。

相比于其它移动端框架,音视频框架最特别的地方就是管线部分,因为音视频SDK的产品与其它产品不太一样,首先需要的是实时处理,数据流是不断在各个模块之间穿梭的,如何保证各个模块间的高效传输,这里提出了一个管线的概念。

那么,是不是有这样的基本架构后,就能解决现在音视频场景的能力呢?答案当然是否定的。事实上,这套架构中,在软件层面、硬件层面都或多或少面临着挑战。具体来说,大致可以分为以下几种:

1.平台能力不对齐
虽然现在很多的平台都提供了大量的音视频处理能力,但是这些平台的能力并不对齐。下面以苹果iOS系统的多媒体框架和Android多媒体框架处理1080p的高清视频举例说明。
iOS系统多媒体框架:
拥有AVAsset, AVCapture 接口,通过这些接口能够很快速获取到高分辨率视频的裸数据。
Android系统多媒体架构:
缺乏像苹果这样的简单高效接口。通常需要两步解码,并且针对高分辨率的视频可能会解码失败。

2.编解码芯片适配难
编解码芯片复杂且多变,很多厂商会根据自己的平台/产品进行二次定制,导致音视频编解码芯片的标准是对齐的。这对于开发者和云厂商来说,适配的技术成本非常高。

3.CPU到GPU性能开销处理难
虽然说现在很多的高端手机都能提供非常多的协处理器,能力也非常强。但是针对音视频场景,性能开销的处理却有一定挑战。比如视频的采集,通常是在CPU处理,但是若想做一些加速处理&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值