优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

火山引擎10mos agoupdate lida
73 0 0

文章主题:弹幕互动玩法, 直播间, 互动操作, 直播方式

666ChatGPT办公新姿势,助力做AI时代先行者!

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

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

弹幕互动玩法是一种依赖直播间(如直播连麦、语聊房等核心互娱乐场景)的直播形式。观众们通过发送弹幕或赠送礼物等方式,参与到直播画面的互动内容中,从而掌控直播过程中的互动元素。这种玩法具有即时性、 multiparticipant 等特点,同时具备观众互动性高、直播内容游戏化和趣味化等优势。

自2014年《Plays Pokémon》的兴起,历经2021年的《修勾夜店》热潮,弹幕互动经历了多次复兴。近年来,随着各大平台对弹幕互动的关注度不断提升,这一玩法逐渐成为用户关注的焦点。观察弹幕互动的用户观看人数/时长、营收等核心数据,可以看出其带来的效益相当可观。

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

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

在第一阶段中,我们主要关注PC端的直播过程。传统的直播流程要求主播首先在PC端安装相应的程序和工具,然后通过这些工具在主播的电脑上执行和渲染互动玩法。此外,主播还需利用PC端的直播设备(例如OBS)将本地画面与主播直播画面混合并推送到直播间。当观众进入直播间时,他们可以通过发送弹幕或献上礼物的方式参与到互动中来。

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

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

弹幕互动内容 requires real-time calculation and rendering, which places high demands on device hardware configuration, particularly the graphics processing unit (GPU). In some cases, it is even comparable to the performance requirements of triple-A games. If the performance of the launch device is insufficient, this can result in弹幕 being ineffective or even cause the content itself to become stuck, negatively impacting the user experience of live broadcast viewers.

随着移动端设备的普及,越来越多的主播选择在移动端进行直播,这使得传统的仅在PC端运行的弹幕互动程序面临着巨大的挑战。由于移动端的操作更为便捷,主播可以随时随地开启直播,极大地降低了直播的门槛。然而,这也意味着传统弹幕互动程序的使用范围将受到限制,其覆盖的平台玩法也将大幅降低。

在移动端开启直播时,依然有可能与其他平台上的各种功能进行融合,但这并不意味着在PC端使用OBS进行弹幕功能直播是一个可行的选择。这样做不仅会增加运营维护的成本,同时也可能会阻碍其推广的进程。因此,我们需要寻找一种更为合理的方式,既能充分利用移动端的优势,又能避免过度依赖某个平台的功能,从而实现我们的直播目标。

在第二个阶段中,我们将在直播/语聊的基础上,引入云游戏元素。在这一过程中,主播将同时进入连麦房间进行RTC流推送,并进入云游戏房间以获取互动玩法的音视频信息。随后,业务层利用H5引擎获取的视频流与业务层采集的摄像头流,将在终端进行合并处理,并最终推送到直播房间。

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

这个方案虽然突破了开播平台的和设备限制,但是在实施过程中仍存在一些问题,主要表现在方案的接入和体验上。首先,从方案层面来看,由于涉及的业务逻辑较为复杂,因此接入过程相对繁琐。其次,从用户体验的角度来看,嘉宾/观众侧的主播解说和互动画面存在轻微不同步、画面延迟较大以及有回声等问题。具体来说,RTC引擎订阅云游戏音频观众侧出现回声的主要原因在于游戏流的声音或麦克风可能会捕捉到本地播放的游戏声音。

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

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

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

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

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

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

1. 弹幕互动延时问题

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

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

2. 外放回声消除

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

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

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

4 弹幕互动方案在业务应用中的挑战与实践
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。

5 写在最后

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

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

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

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

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

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

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

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

优化算法,智能选择合适编码格式,进一步节省码率,同时保证画面质量

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

© Copyright notes

Related posts

No comments

No comments...