七牛云霍锴 WICC 2020 谈构建互动直播场景的闭环解决方案

 头条123   2025-05-19 15:36   1491 人阅读  0 条评论
七牛云霍锴 WICC 2020 谈构建互动直播场景的闭环解决方案

  10月31日, 二届全球互联网通信云大会(简称 WICC 2020 )在深圳圆满落幕。七牛云架构师霍锴受邀出席此次会议,并带来了主题为《构建互动直播场景的闭环解决方案》的 。

  七牛云架构师霍锴

  以下为演讲实录,略有删减。

  视频直播发展到今天,在直播过程中加入互动元素已经成为标配。"无互动,不直播"这句话在今天变得越来越常见。互动直播的场景是多种多样的,主要集中在娱乐直播、在线教育、视频会议和电商直播。比如说娱乐直播中多个 进行 PK 的场景;在线教育领域的互动课堂;企业的内部培训;或者是电商的带货直播,都可以用到七牛云互动直播解决方案。

  七牛云互动直播方案的架构

  对于整个方案来说,首先需要 端通过摄像头和麦克风采集音视频数据,然后根据需求进行直播或连麦等不同场景的实现。在编码数据之前,也可以针对采集到的音视频数据进行预处理,比如说加上水印,美颜,滤镜,混音等效果。 还可以通过人脸核验进行登陆验证,或者通过 IM 聊天室 信息。

  在 端完成音视频的采集处理以及编码后,会将编码后的数据发布到七牛实时音视频云上,实时音视频云会根据 的场景来选择它是单路转推还是合流转推服务,进而把单 的画面或者把多个 合流之后的画面通过 RTMP 转推到我们的直播云上。在直播云上,我们可以把这些音视频数据进行实时转码,比如按照不同的码率或分辨率进行转码,以匹配观众端的网络状况。并且,我们还可以把这些音视频数据进行内容审核,从而判断哪些数据是违规的,哪些数据是合法的。此外,我们也可以把这些数据进行落存储操作,用于以后的点播服务。

  上面这张图我们可以比较清楚的看到音视频数据的流转过程,从客户端的采集,到互动服务器的处理转发,再到流媒体服务器的审核分发,这整个流程是怎么交互的。接下来,我会给大家介绍一下每个环节都是怎么工作的,也就是我们互动直播方案的相关技术的实践。

  七牛云互动直播方案的相关技术实践

  

  1、客户端的技术与挑战

  这张图的右侧是我们在服务了众多客户后,沉淀下来的我们客户端 SDK 的几个指导性的原则:

   一是接入极致简单,接口必须人性化。我们的 一用户是程序员,所以我们必须能够做到和大家感同身受,把接入流程简化到极致,用以减轻大家的接入成本。 二是一定要保证我们的音视频体验良好。整个方案的核心还是在音视频上,所以要特别重视清晰度,延迟,卡顿,回声等这些影响音视频体验的重要因素。 三是可扩展性要强,生态化要好,可以满足客户的多种拓展性需求,如美颜处理、降噪处理等。 四是客户端自己要感知到线上运行的情况。比如有没有崩溃,堆栈信息是什么,哪个接口引起的,我们一定要做到对线上的真实情况可感知。

  左侧是七牛互动直播解决方案客户端相关的主要功能,总体分为三大类型,首先是数据的采集,处理,编码,传输,播放,回声消除等这些音视频相关的核心功能。然后就是像高级美颜,人脸核验,IM 等外围业务相关的功能。 后就是数据上报、崩溃捕获等至关重要的 QoS 功能。

  2、客户端的分层架构

  我们整个的客户端可以抽象为三层,底层,核心层和扩展层。

  底层是指包括 WebRTC,FFmpeg,WebSocket,xCrash 等我们所依赖的 三方开源库。

  再往上是我们的核心层,在这一层我们会对底层进行封装,并实现我们核心的业务。比如,我们基于 WebRTC 来实现摄像头与麦克风的采集,音视频编码传输,多 Track,大小流,回声消除和降噪等一系列实时音视频的相关功能;我们通过 OpenGL 来实现水印,纹理剪裁,美颜处理等一系列视频数据的处理;通过 FFmpeg 来实现像混音,重采样等一系列音频数据的处理;通过 WebSocket 去封装信令,实现房间管理;通过 xCrash 来捕获 Android 系统上的崩溃信息。

   上层是我们的扩展层,主要是用来扩展 三方的 SDK,比如 IM,FaceID,高级美颜等外围业务相关的功能。

本文地址:https://www.toutiao123.net/news/22110.html
版权声明:本文为原创文章,版权归 头条123 所有,欢迎 本文,转载请保留出处!