技术分享| 复盘一起看球场景

news2025/1/15 22:11:14

卡塔尔世界杯已经落幕,作为“后新冠时代”的首个大型全球体育赛事,也同时被多个“史上首次”与“历史之最”所装点,但同时也是国内疫情的高峰期,相信大多数人都是顶着高烧咳嗽跟好友线上看完了总决赛,对于线上互动一起看球赛需要哪些技术呢?我们一起来探索下吧~

一起看架构

线上看球赛用户不仅可以观赛,还可以在直播间通过文字、表情、礼物等形式传达对于球赛的热爱,甚至也可以开通房间邀请好友一起观赛,边看边聊,真实还原线下看球场景。

在anyRTC 方案中,有二种方法可以实现一起看场景,第一种是实时音视频方案,另一种是基于CDN+RTC实时音视频方案。

实时音视频方案

通过纯 RTC 方式 实现,即主播、上麦观众采用 RTC 推流,麦下的观众则通过 RTC 拉流的方式来进行观看与互动,球赛通过插入媒体流功能转换为一路RTC流,实时分发给麦上和麦下用户。

在这里插入图片描述

此方案的优势在于麦上麦下延迟平均在 200ms 以内 ,观众频繁上下麦的体验更好且无异步感 。而此类方式比较适合观众对低延时要求高的直播房间。

CDN+实时音视频方案

CDN+实时音视频 方式实现,即主播、上麦观众采用 RTC 推流,主播端需要把本地音视频和远程上麦用户的音视频以及直播球赛的画面在转播出去(CDN旁路推流出去),而麦下观众则通过 CDN 拉流观看和互动。

在这里插入图片描述

该方案是在原来推拉流架构下无缝加入实时互动的方案,可以复用原有的代码模块,但劣势在于延迟会达到2s以上,同时上下麦会有一段时间(2s左右)不同步的现象。

合流方案

CDN+实时音视频方案里,必须要进行合流,一起看的场景中,一般都是一路视频源(球赛的直播源)+ 音频连麦数据,anyRTC 提供2中合流方案,一种是本地合成,一种是服务端合成,开发者可以根据自己的实际情况去选择。

业界领先的实时互动技术

面对不断创新的社交泛娱乐场景,anyRTC 拥有丰富的 API 组合,可以帮助开发者快速创建各类实时互动场景,极致的音视频体验是业务玩法获得用户认可的必要条件。在一起看场景中,我们面对着本地直播音频被麦克风采集形成回声、使用通话模式导致直播音质变差、比赛声音比聊天声音大导致人声听不清楚等问题,这些问题都严重影响了用户的边看边聊体验;为了解决相关问题,我们使用了直播音频托管 RTC 播放、全链路音频媒体通道模式等方案,为一起看提供了良好的音视频体验。

3A算法+AI降噪算法消除噪音与回声

anyRTC 拥有业界领先的 3A 算法,智能适应各类环境,全面消除回声,并提供超一流的双讲表现;可在不损伤语音音质的情况下,有效消除各类噪音;可实现音频的自动增益,即使在嘈杂环境下用户也能体验优异。同时anyRTC 的 AI 降噪算法将心理声学与深度学习技术相结合,通过特征提取、神经网络以及增益调整对实时音频进行处理抑制噪声,突破了传统信号处理方案的性能瓶颈,从而为实时音视频提供清晰语音环境。

音频托管 RTC 播放

在CDN+实时音视频方案中,主播和连麦双方需要一边播放直播源,一边进行RTC通话,在这种情况下,RTC 播放的远端人声和直播播放器播放的比赛声音会被麦克风采集后发送到远端形成回声。

为了解决一起看场景的回声问题,RTC 和播放器提供了播放器音频托管由 RTC 来播放的解决方案,由播放器将解码后的直播音频数据调用 RTC 音频托管接口来播放;在 RTC 内部,直播音频会和远端用户音频进行混合,再调用系统音频播放接口进行播放,同时将混合信号送到 RTC 回声消除模块,回声消除模块会将麦克风采集到的声音中的远端音频和直播比赛声音消除,这样就得到了没有回声的本地人声数据,这些数据会在编码后送到远端,避免了回声问题的出现。

全链路音频媒体通道模式

在移动端设备上,音频播放区分通话模式(通话模式音频通道)和媒体模式(媒体模式音频通道),二者在音质表现、音量控制上略有不同,从而适用于不同的业务场景, 具体表现如下:

在这里插入图片描述

为了给用户提供更好的音质体验,一起看场景可以配置音频媒体模式;为了解决外放媒体模式时系统回声消除效果差的问题,anyRTC 内置回音消除算法,开发者可以根据上麦与否动态打开回声消除算法,在保障聊天回声消除条件下,达到了高音质体验。

总结

anyRTC 一起看场景解决方案,可通过实时音视频方案,也可以通过CDN+实时音视频方案。合流方案可以通过客户端合流,也可以通过服务端进行合流。使用直播流音频托管给 RTC 播放的方案,解决了双端同时播放直播流音频引入的回声问题;使用外放媒体模式 + 软件 3A 方案,在兼顾回声消除基础上保障了高音质边看边聊体验。

“一起+”的社交玩法会拓展其他场景,一起看电影、一起打比赛等。通过线上一起,让相隔千里的人们有了随时互动的机会和媒介,拉近好友间的距离。

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

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

相关文章

民锋国际期货:期货交易 | 博弈之道,遵守法则

期货交易 | 博弈之道,遵守法则 对于一些好的书籍我会阶段性复读,因为每一次阅读都会有新的收获和更深的理解。这么做的目的是经过反复的咀嚼消化将其运用到交易实践中,为己所用。 最近重温了《海龟交易法则》,而第一次读这本书应…

C++TensorRT | TensorRT模型编译流程

tensorrt的工作流程如下图: 首先定义网络 优化builder参数 通过builder生成engine,用于模型保存、推理等 engine可以通过序列化和逆序列化转化模型数据类型(转化为二进制byte文件,加快传输速率) 再进一步推动模型由输入张量到输出张量的推理 代码结构: 定义 builder, con…

由手机号正则引发的思考,正则属性 lastIndex

问题: let reg /^1[3456789]\d{9}$/g 正则是验证手机号的证,为何突然不能验证正确的手机号了呢?其中有何蹊跷? 解决方案:底部有3种解决方案,方案3解决最稳妥 先来看一段正则: let reg /^1[3…

物联网架构实例—部标过检工具使用(物联网套件压测)

1.安装包 下载 2.安装MySQL数据库 如果安装时提示缺少C 2015的组件,需要执行vc_redist.x64.exe进行修改,直接双击执行vc_redist.x64.exe即可。 安装到这里,除了root账户外,另外需要增加一个gps账户,这个是过检工具连…

【电商】电商后台---价税管理

文章对电商后台系统中的价税管理进行了系统的介绍,希望通过此文能够加深你对电商系统的认识。 前面介绍了商品管理部分,从商品的属性、分类到商品资质、商品图片都做了说明,在梳理的过程中越发的感觉到每部分细节才是关键。但实话实说通过前几…

2023年全国NPDP产品经理国际认证火热招生啦

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年…

3节点Fate集群实战记录 -- 纵向联邦学习

前一篇博客记录了3节点fate集群实现横向联邦学习的实践过程link,本篇接着记录纵向联邦学习的实践过程,其中有些简单步骤未详细列出,具体执行方法可以参考上篇博客。 纵向联邦的场景简单说就是A和B两数据方,A知道B有A没有的特征bx&…

自监督学习UNSUPERVISED REPRESENTATION LEARNING BY PREDICTING IMAGE ROTATIONS论文笔记

文章目录一、自监督简介1.监督和无监督学习2.无监督学习3.自监督学习二、论文内容0.辅助任务1.出发点2.符号假设3.网络模型4.优点三、实验结果1.CIFAR实验a.评估学习到的特征层次结构b.探讨学习到的特征质量和辅助任务旋转角度之间的关系c.对比实验2.在IMageNet上不同任务的实验…

使用固定TCP端口地址远程MySQL数据库【内网穿透】

系列文章 公网远程连接内网MySQL数据库【内网穿透】使用固定TCP端口地址远程MySQL数据库【内网穿透】 在上篇文章中, 我们成功实现了在公网环境下远程连接内网MySQL数据库。但由于使用的免费的cpolar内网穿透,其所生成的公网地址为随机临时地址&#xf…

Java swing实现的一款餐厅点餐系统

一、项目简介 本项目是一套Java swing实现的一款餐厅点餐系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,确…

Python 面向对象编程 (二) —— 类函数的定义和构造

【无限嚣张(菜菜)】:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题…

日本知名汽车零部件公司巡礼系列之株式会社137

株式会社137 业务内容: 汽车功能部件制造(离合器系统、制动系统) 代理供货业务(汽车相关制造商) 运输业务(汽车相关制造商) 公司简介: 资本金:5000万日元 员工数:山形工厂44名(男31名,女13名&#xf…

折腾Transmission实现固定IP服务器BT做种教程

title: 折腾Transmission实现固定IP服务器BT做种完美 通过网络分享资源,是为了让人下载,但由于种种原因,放到商业网盘的资源经常会被删除,于是我只好自建简易的http文件下载服务,比如frp.v2fy.com [外链图片转存中……

易基因|动物发育过程中顺式调控区域的活性DNA去甲基化早于脊椎动物起源:重磅研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年12月02日,澳大利亚悉尼加尔文医学研究所基因组学和表观遗传学系Ozren Bogdanovic研究团队在《SCIENCE ADVANCES》杂志发表了题为“Active DNA demethylation of develo…

随机创建姓名、手机号等信息Faker类创建的对象的各方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 随机创建姓名、手机号等信息 Faker类创建的对象的各方法 [太阳]选择题 以下python代码结果错误的一项是? from faker import Faker fkFaker() print(fk.name()) print(fk.phone_number()) p…

基于gis平台监控的点位规划系统研究

一、背景 自 2002 年天津市启动了以 “警防、民防、技防” 三张网为主要内容的社会治安防控体系。“技防网” 既覆盖天津全域的具有地区特点的城市报警与监控系统。经多年推进建设,“技防网” 已形成了较为完整的架构体系和建设、运行、管理模式,整体架构…

【K3s】第7篇 详解Kubernetes发布服务类型(例如:暴露给 Kubernetes 集群外部的 IP 地址)

目录 1、发布服务类型 2、NodePort 类型 选择你自己的端口 为 type: NodePort 服务自定义 IP 地址配置 1、发布服务类型 对一些应用的某些部分(如前端),可能希望将其暴露给 Kubernetes 集群外部的 IP 地址。 Kubernetes ServiceTypes 允许…

Vue二次封装组件并发布到npm仓库

1.认识npm NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使…

FFmpeg简单使用:解封装h264 ---- 提取SPS PPS

前言 我们从flv和mp4等文件解封装读取的AVPacket并没有SPS、PPS数据,而是保存在 AVFormatContext -> streams -> codecpar -> extradata里面,下面我们打开一个flv文件看一下 分析一下这块数据,起始位置:0980 大小&#…

【软件测试】测试点总结,收取短信验证码的测试(详全),你的即用宝典......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 现在的APP&#xff…