2024年最全一起学(抖音快手)音视频,一篇文章解析「音视频同步(1),2024年最新嵌入式软件开发面试题库

结语

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图:

由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。

再附一部分Android架构面试视频讲解:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 端网络延时:这部分延时主要出现在解码之前的 jitter buffer 内。

另外,合唱场景通常会为用户提供各种KTV音效,即人声在编码传输前会增加一步前处理,这还会加大音频在端上的延时。

若想降低音频在端上的延时,就需要针对不同机型进行编解码算法的优化,以降低音频采集、编解码、音频处理带来的延时。端上延时还与设备性能、系统紧密相关,如果歌手中有一方的设备性能较差,也会影响合唱效果。

端到服务器之间的延时

除了端上的延时,音频数据在端到服务器、服务器到服务器之间的传输过程也会产生较大延时,这也是阻碍“实时合唱”功能落地的重要因素。

影响采集端与服务器、服务器与播放端的延时的有以下几个因素:客户端同服务间的物理距离、客户端和服务器的网络运营商、终端网络的网速、负载和网络类型等。如果服务器就近部署在服务区域、服务器与客户端的网络运营商一致时,影响上下行网络延时的主要因素就是终端网络的负载和网络类型。一般来说,无线网络环境下的传输延时波动较大,传输延时通常在 10~100ms不定。而有线宽带网络下,同城的传输延时能较稳定的低至 5ms~10ms。但是在国内有很多中小运营商,以及一些交叉的网络环境、跨国传输,那么延时会更高。

服务器之间的延时

在此我们要要考虑两种情况,第一种,两端都连接着同一个边缘节点,那么作为最优路径,数据直接通过边缘节点进行转发至播放端;第二种,采集端与播放端并不在同一个边缘节点覆盖范围内,那么数据会经由“靠近”采集端的边缘节点传输至主干网络,然后再发送至“靠近”播放端的边缘节点,但这时服务器之间的传输、排队还会产生延时。

在实时合唱的场景中,要解决网络不佳、网络抖动,需要在采集设备端、服务器、播放端增设缓冲策略。一旦触发缓冲策略就会产生延时。如果卡顿情况多,延时会慢慢积累。要解决卡顿、积累延时,就需要优化整个网络状况。

合唱也要高音质

=====================================================================

唱歌的人都有一个共同的心理需求,就是希望别人夸自己唱得好听。音质在合唱场景下就显得尤为重要了。而影响实时合唱音质的因素主要包括:音频采样率、码率、延时。

**采样率:**是每秒从连续信号中提取并组成离散信号的采样个数。采样率越高,音频听起来越接近真实声音。

**码率:**它是指经过编码(压缩)后的音频数据每秒钟传输所表示的数据量(比特)。码率越高,意味着每秒采样的信息量就越大,对这个采样的描述就越精确,音质越好。

假设网络状态稳定不变,那么采样率越高、码率越高,音质就越好,但是相应单个采样信息量就越大,传输时间可能会相对更长。也就是说,高音质也可能会影响延时。

敲黑板:解题思路

======================================================================

之前我们提到,因解决方案的不同,“音频”有着不同的含义,这与你的实现逻辑有关。

1.音频=歌声+伴奏

在采集端,我们传输的音频如果是包括歌声与伴奏。那么就意味着是这样的逻辑,如下图。

  • 歌手A先获得伴奏;

  • A 将歌声与伴奏在本地混音后传输给 B;

  • B 根据A的音频进行演唱,这时 B 可以听到合唱的效果;

  • B 将合唱后的混音传输给 A,A 就可以听到合唱效果了。

在这种传输方式下,如果要保证 A 能听到合唱效果,会有两段“端到端延时”,即第2、3步产生的。由于B听到的是A的歌声与伴奏,所以该方案能保证 B 的体验。但由于伴奏传输给 B,B 的歌声又需要再传输回到 A,A 听到的伴奏与B的声音其实之间有很大延时。如果按照上文的延时推断,你需要付出更多的努力,才能让端到端的延时降低到歌手A能接受的程度。

2.音频=歌声

在这里,并不是说不要伴奏了。为了解决伴奏、歌声之间的延时问题,我们还有一种方法,就是通过云端将伴奏同时传输给A和B,那么基本可以保证两者能在同一秒听到同一个音符。接下来要解决的就只是歌声的传输了。基本实现逻辑如下,也是我们自己的实现方式:

  • 声网从服务器或本地获取合唱伴奏;

  • 声网通过 SD-RTN™ 将伴奏,实时同步发送给歌手 A 和 B;

  • 歌手 A 和 B 会同时听到伴奏,然后根据伴奏开始自己的演唱;

  • SD-RTN™ 会实时的将A的歌声传给B端,同样,B 的歌声也会被实时的传输到 A 端;

  • 歌手A和B都能实时听到伴奏和对方的歌声;

  • 同时,观众可以实时听到两个歌手的合唱效果。

这种实现逻辑的好处在于,A、B几乎同时听到伴奏,同时演唱,两者可以实时听到对方的声音。要解决的问题就是降低各自歌声传输到对方的这段端到端延时了。相对来讲,更加简单。

除此之外,其实在线下场景中大家可以看到,很多歌手在唱歌的时候通常都会佩戴耳返,那这个耳返的作用效果在线上实时场景中也是非常关键:

(1)歌手用来监听自己的声音和伴奏,并调节自己音色和情感,这个对延时要求特别高

(2)叠加音效和美声,歌手能听到更极致的音效体验

Agora SDK提供统一接口的低延时K歌耳返功能,通过与手机厂商的深度技术合作,可为K歌、直播类App提供适配不同手机品牌、不同手机机型的耳返应用,我们将传统耳返100-300毫秒的延时降低至50ms以内,结合 Agora 音频整体解决方案,实现超低延时、超低噪声、极致音效的耳返体验。

在github获取我们的合唱Demo,自己动手试试吧

https://github.com/AgoraIO-Usecase/Online-Chorus/

我的NDK模块开发学习之路

===========================================================================

什么所提到的知识点,我已经给大家做了一些整理有系统的导图,和资料视频。需要的朋友可以私信我【NDK】我分享给你或者 直接点击下面链接领取,有不对的地方也欢迎指出,一起交流共同进步。

最后

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

image

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值