logo

移动音视频技术路线

作者:JavaRoom2021.09.27 00:30浏览量:407

简介:实时音视频 RTC 技术

作为音视频小白,有幸听了各路大神讲座,了解并学习到了一些知识,现学习归纳下。认真阅读了文档,感觉确实很强大,作为共有云实时音视频建设,确实是难得的强大支撑!

一、学习内容

  1. 音视频SDK的技术演进
  2. 数据采集管线的设计与实现
  3. 特效模块数据中间件设计和实现
  4. 连麦模块数据中间件设计和实现
  5. 渲染模块数据中间件设计和实现

视频回放:https://www.livevideostack.cn/video/online-lml/

二、演进历程

1.数字化

首先,在互联网化前期多媒体技术就已经开始出现广泛的应用,得益于通讯技术的发展,我们可以借助于广播、有线电视、卫星等等,将数字信号传输给用户。

2.互联网化

解码器其实在整个多媒体技术的发展当中也起到非常重要的作用,只不过当时解码器的能力与现在相比还是有些不同,但同样可以实现解码和容器的分离。

3.移动化

此后,随着互联网的出现,我们可以实现基于一些IP网络协议、光纤的广泛使用,通过WiFi、蜂窝网络,传输数据到设备终端(此时终端更多的还是指PC端)。因此产生了一些在线类的音视频服务,例如点播、在线语音等典型的音视频场景。在这些场景中,SDK更多的还是以服务端为主。

4.智能化

2010-2015年期间,随着手机硬件的发展,终端的算力不断提升,编解码芯片也得以快速发展,再加上消费者使用习惯的变化,出现了更多碎片化的场景和产品,像直播、短视频等。此时,随着手机等移动设备的普及,移动端SDK也慢慢进入到消费级领域,逐渐发展成独立技术栈。

近年来, 随着5G、AI人工智能的发展,VR/AR、语音交互等技术也在发生着新的变化,应用场景变得更加广泛,音视频SDK已经不仅仅局限于移动端,未来会出现在各种设备屏幕、产品形态当中。

三、技术

技术如下图所示

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

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

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

数据从多媒体采集模块出来,会经过一路或多路的混音混流(与实际场景相结合),然后过渡到多媒体编辑模块:当下短视频的一些能力都是通过多媒体编辑这个处理单元实现,再到后面的多媒体后处理模块:例如AR特效,以及一些比较好玩的互动能力等;

内容生产完成后,我们会根据点播、直播或者短视频等场景的不同,采用不同协议进行分发。再下面就是消费侧,这里可以直接读取数据,也可以间接读取数据作为缓存加快二次读取数据的载入。获取数据后会根据不同的封装格式,如FLV、TS或者是MP4等对数据进行解封装,再进行解码和渲染操作。

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

相关文章推荐

发表评论