写点什么

从业务应用挑战出发,火山引擎专家深度拆解“弹幕互动方案”的全新实践

  • 2023-12-08
    北京
  • 本文字数:3438 字

    阅读完需:约 11 分钟

从业务应用挑战出发,火山引擎专家深度拆解“弹幕互动方案”的全新实践

从互联网到全行业视频化时代,营销、商品、知识与空间的体验正在被重塑和创新,火山引擎视频云以“面向体验,驱动创新”为核心,特别与 NVIDIA 团队合作推出《云上新视界》线上课程。第五期课程中,火山引擎 RTC 商业化解决方案团队负责人郭健为大家分享了当前热门玩法“弹幕互动”的解决方案与应用实践。

一、什么是“弹幕互动玩法”?


弹幕互动玩法是依托直播间(直播连麦、语聊房等互娱核心场景),观众可以通过弹幕、送礼物等互动操作,控制直播画面中的互动内容的一种直播方式,具备即开即玩、多人互动等特性,兼具观众互动性强、直播内容游戏化趣味化等特点。


从 2014 年的《Plays Pokémon》到 2021 年尾《修勾夜店》爆火,弹幕互动几经翻红。今年开始,弹幕互动受到各大平台的广泛关注,从玩法上线后效果看弹幕互动玩法的户观看人数 / 时长、营收等核心指标都有很好的收益。

二、弹幕互动方案的 3 个核心演进阶段


弹幕互动经历了 PC 端开播、云游戏方案、云游戏 + RTC 方案三个阶段。


第一个阶段,PC 端开播。传统开播流程需要主播先在 PC 端安装程序和开播工具,互动玩法在主播 PC 上运行和渲染。同时,主播使用 PC 端直播工具(比如 OBS)对本地画面和主播直播画面混流,再推送到直播间。观众进入直播间发送弹幕或者发送礼物参与互动。



这种方式存在一定局限性,比如:


  • 弹幕互动内容本身需要实时计算渲染,对设备硬件配置如显卡计算能力有较高要求,甚至堪比 3A 大作性能要求,开播设备性能不足,就会导致弹幕无效甚至内容本身卡死,影响直播间用户体验;

  • 越来越多的主播更习惯在移动端随时开播,而只能运行在 PC 端的弹幕互动程序,会大大增加开播门槛,也降低平台玩法覆盖度;

  • 移动端开播还可以与平台其他玩法相结合,但如果单独为弹幕玩法准备 PC 端 OBS 开播,既增加了维护成本,也难以进行推广。


第二阶段,在直播 / 语聊的基础上引入云游戏。主播进入连麦房间推拉 RTC 流的同时,也需要进入云游戏的房间拉取互动玩法音视频。然后业务层把 H5 引擎拉取到的视频流和业务层采集到的摄像头流在端上合流后,推入直播房间。



这个方案解决了开播平台限制和开播设备的限制,但是有一些方案接入和体验问题。从方案层面看,业务逻辑复杂接入相对麻烦。从体验看,存在嘉宾 / 观众侧主播解说和互动画面会有轻微的不同步、画面延时大、有回声等问题。其中,RTC 引擎订阅云游戏音频观众侧有回声主要是因为游戏流的声音或者麦克风会采集到本地播放的游戏声音。


为了解决上个方案的几个问题,火山引擎视频云首推“云游戏 +RTC 方案”方案,而弹幕互动方案也正式进入了第三阶段——火山引擎 RTC 与云游戏产品在服务侧和引擎侧做了深度协同优化。在服务侧,优化了调度方案,保证用户连接的云游戏 pod+RTC 媒体服务器在同一个机房、云游戏音视频流可直接送入 RTC 房间。在引擎侧,云游戏引擎直接依赖宿主侧的火山 RTC 引擎、云游戏引擎裁剪场景无关功能。


在具体操作中,首先主播通过云游戏引擎开启互动完成程序,云游戏启动 pod 并创建火山 RTC 房间。完成后,Pod 集成云游戏引擎和 RTC 引擎向火山云游戏房间推音视频流,火山云游戏房间跨房转推音视频流到两个直播 / 语聊房间,嘉宾和观众通过 RTC 直接拉取直播流和云游戏流即可。



云游戏和 RTC 内部深度协作,缩短数据流转链路在接入直播 / 语聊的基础上,仅需接入 veGameSDK 启动游戏、业务端通过 OpenAPI 同步弹幕 / 礼物数据到云游戏服务器两步即可完成场景“升级”,大大简化业务逻辑,缩短接入周期减少工作量。

三、火山引擎是怎么解决历史方案问题的?


此前弹幕互动方案所存在的观众弹幕互动延时、主播外放有回声等体验问题,火山引擎方案是如何解决的?

 1. 弹幕互动延时问题


未优化的云游戏方案观众端发送弹幕后,由于传统 RTMP 直播流延迟较大,观看云游戏观众侧会有 3~5 秒延时,并且都会有轻微的互动画面与解说的不同步,体验较差。这些在普通常见的场景可能影响不大,但是在对战场景,战场形势瞬息万变,可能最后一秒的延时失去被“偷家”导致战斗失败。


优化后,使用全 RTC 方案,可以让用户参与玩法整体延时<400ms 。

 2. 外放回声消除


在未优化方案中,云游戏的声音在经过扬声器播放后,会被近端用户的麦克风采集到并产生回声问题,需要参考扬声器播放的声音进行回声消除技术处理,云游戏和 RTC 独立运行,云游戏音频无法给到 RTC 引擎,所以容易产生回声。


在优化方案中,云游戏音频可以直接跨房转推到 RTC 房间,场景内音频播放通过音频托管的方式统一由 RTC 进行音频播放,有参考信号,可以彻底消除回声,以确保对端收到清晰的声音。



四、弹幕互动方案在业务应用中的挑战与实践

 1. 卡顿优化


弹幕互动场景有一个特点就是画面极致高清,一般是高清 1080P、 帧率 30fps、高码率 8Mbps。同时,主播、观众均为移动端设备,随时开播与参与,用户网络环境复杂且不稳定。在这种高分辨率高码率、且网络不稳定情况下极其容易造成卡顿劣化。


要优化这种情况,首先把线上 H264 升级为自研 ByteVC1 编解码,在 PSNR(视频质量客户评价)画质质量优于原方案 2dB 时,还能节约 10% 码率。此时对于线上情况码率可能仍较大,火山引擎 RTC 采用智能流控协议 (VISC),它基于 Simulcast 和 SVC 策略优化而来、更加智能的一种传输协议,它可以综合考虑音视频通话中每个订阅者的个性化需求,在网络情况、终端性能发生变化的时候,自动调整音视频流的配置,最大限度地让每个参与者的个性化需求得到满足,为用户提供更流畅的互动体验。


 2. 操作延时优化


云游戏在所有的云计算相关应用中,对延时要求最为苛刻,火山引擎 RTC 针对云游戏与 RTC 场景相结合的应用场景,进行全链路延时优化。


  • 阶段一,边缘机房阶段。保证用户连接的云游戏 Pod 和 RTC 服务器调度到同一个机房,使用更高效传输方式优化,首帧时长减少约 30ms;降低延时 50ms;编码前优化采集和格式转换,使用 OpenGL 转换替换 libyuv 转换,优化延迟 15ms;

  • 阶段二,级联服务优化。减少级联服务器和优化信令传输,优化 20ms;

  • 阶段三,订阅端。针对云游戏下行音视频调整 jitterbuffer 大小,降低延时 60~260ms,有优化的处理,可以不影响直播 / 语聊体验;针对不同的硬件解码器做优化,最多优化延迟 90ms;内部渲染替代外部渲染降低延迟 5ms,整体云游戏到端延时可以达到小于 75ms。

 3. 性能优化


弹幕互动玩法可以在个人直播、直播连麦或者跨房 PK 中等场景中加入。在语聊房跨房 PK+ 弹幕互动玩法场景中,假设每个语聊房会有 9 人,两个房间 PK 时,单个用户最多需要拉 18 路音频流和云游戏音视频流,性能压力大,玩法准入机型门槛高,设备发热严重。


因此,为减少对手机性能消耗,火山引擎 RTC 使用 RTC 公共流不进房拉流方案。这个方案中,本房间内拉流方式不变,PK 房间的音频流合流后推一路公共流,对比普通语聊模式单个用户只多拉一路音频流和一路云游戏流。两个房间 PK,每个房间 1 位主播、8 位嘉宾、100 位观众流数评估,单房间减少(1+8+100)*8 约 872 路、单用户减少 8 路流,有效优化用户拉流性能,减少 50% 流数量。



独立集成云游戏 SDK 包体增量一般 9M 左右,9M 的包增量对客户来说是不可接受的。弹幕互动方案中云游戏直接复用火山引擎 RTCSDK 传输能力,云游戏 SDK 精简包只需操控信令和选路部分,精简包给整体带来增量仅 610KB。

五、写在最后


总体来说,火山引擎弹幕互动方案有五大优势:


  • 不限设备、不限场景,零门槛开播:无论是个播还是多人互动,移动端即可随时随地“云开启”弹幕互动玩法,无需高性能 PC,消除互动内容本身对用户终端算力的限制;

  • 热门弹幕互动内容全适配:云游戏支持直接部署基于 UE/Unity 框架的互动内容,底层多种类型 IaaS 和对应 GPU 配置,满足不同等级算力要求的弹幕互动玩法;

  • 无惧弹幕高并发,渲染画面高清流畅:云游戏支持 ARM、x86 以及定制化 GPU 等多样化计算资源,并采用自研 ByteVC1 编解码结合动态码率技术,保证互动画面流畅体验同时节约带宽消耗,互动画面 100ms 卡顿率低于 2%;

  • 主播解说与玩法进程实时同步:通过火山引擎 RTC 媒体节点和 云游戏 Pod 端同机房调度,超低延时体验,操作延时小于 90ms,主播讲解和内容画面实时同步,保障观众沉浸互动体验;

  • 应用最小包增量引入:弹幕互动方案中云游戏可直接复用火山引擎 RTC SDK 传输能力,云游戏 SDK 精简包只需操控信令和选路部分,精简包增量仅 KB 级。


而本期课程中介绍的弹幕互动玩法的解决方案技术实践只是“小试牛刀”,如果想要了解更多,可以扫描下方二维码,有更加详细的弹幕互动解决方案和获取弹幕互动 Demo!



2023-12-08 12:155209
用户头像
鲁冬雪 GMI Cloud China Marketing Manager

发布了 362 篇内容, 共 266.0 次阅读, 收获喜欢 294 次。

关注

评论

发布
暂无评论
发现更多内容

TCP 三次握手,给我长脸了噢

程序员小富

TCP

百度版ChatGPT:文心一言发布会盛大召开!

雪奈椰子

Capital

Echo_Wish

学习 进步 笔记 资源 本质

百度生成式AI产品文心一言邀请测试,五大场景、五大能力革新生产力工具

飞桨PaddlePaddle

百度 飞桨 文心一言

如何快速理解网络IO模型

Dinfan

Netty 事件循环 IO模型 Reactor多线程 网络io模型

PyTorch深度学习实战 | 基于ResNet的人脸关键点检测

TiAmo

深度学习 人脸识别 PyTorch

Nacos心跳机制实现快速上下线

做梦都在改BUG

Java Spring Cloud nacos 心跳机制

深圳.NET线下技术沙龙倒计时一天

MASA技术团队

.net MASA

李彦宏文心一言发布会 highlight

B Impact

设计模式-策略模式

蓬蒿

设计模式 策略模式

NodeJS 实战系列:模块设计与文件分类

光毅

JavaScript node.js

MongoDB源码学习:执行创建Collection命令

云里有只猫

mongodb 源码解析

2 万字长文:声明式配置技术概述

Peefy

DevOps 编程语言 开发者工具 #Kubernetes# #开源

DevData Talks 直播预告 | 微众银行的研发效能实践有哪些经验?

思码逸研发效能

研发效能 DevData Talks

聊聊「订单」业务的设计与实现

Java 架构 订单管理 订单系统 订单

想到哪说到哪的AI

FN0

AIGC

Toast的基本使用

芯动大师

android Adapter toast

vivo 短视频用户访问体验优化实践

vivo互联网技术

CDN HTTP 优化 DNS 实践

两会代表热议采用ChatGPT指导论文写作:防范抄袭的探索与思考

GPU算力

人工智能 深度学习 ChatGPT

GPT-4炸圈--多模态大模型

江湖修行

人工智能 大模型 GPT ChatGPT GPT-4

在追求卓越的路上,面对压力时,推荐你这二个做法。

叶小鍵

Go语言实现策略模式

蓬蒿

策略模式

使用价值三角方法来全方位分析产品

产品海豚湾

产品 产品经理 产品设计 产品运营 商业洞察

如何应用BI系统运营提效,一起看看瓴羊Quick BI的表现

对不起该用户已成仙‖

如何测试一个AI系统?

陈磊@Criss

AI 测试

在 windows 上连接 wsl 和直接打开 ubantu 有什么区别?

玄兴梦影

wsl window

干货 | BitSail Connector开发详解系列一:Source

字节跳动数据平台

开源 数据集成 数据引擎 企业号 3 月 PK 榜

openGemini正式加入openEuler DB SIG,携手开展全方面技术创新

华为云开源

时序数据库

Next.js 实践:从 SSR 到 CSR 的优雅降级

Crazy Urus

React nextjs SSR

内部开发者门户是什么?

SEAL安全

微服务 企业号 3 月 PK 榜 内部开发者门户 信息碎片化

Matlab常用图像处理命令108例(七)

timerring

图像处理

从业务应用挑战出发,火山引擎专家深度拆解“弹幕互动方案”的全新实践_云计算_鲁冬雪_InfoQ精选文章