多画面、实时投票,这场上了一晚热搜的超级晚,背后的技术出圈了
"让观众当导演,自己决定演出顺序?"
"不仅直播前台演出,还可以看到候场区明星吃火锅?"
你没听错,在各种直播、晚会频出的岁末年初,最近有一台超级晚出圈了。
1月15日,2021爱奇艺"为爱尖叫"晚会在青岛成功举办。作为全球首台多画面互动直播超级晚,这场晚会还没上线就吊足了观众的胃口:
- 创新性地采用一屏四看的观看方式,将主舞台与几大互动专区毫无保留地展现在了用户面前;
- 同时还把晚会主导权交到用户手中,由他们的实时投票决定演出顺序、返场艺人、观看视角、限定团体等精彩节目。
新鲜的体验让这场晚会的相关话题持续霸占了当晚的微博热搜榜,不过,出圈的不止是有趣的IP和节目,还有保障这些玩儿法顺利进行下去的技术能力:多画面高并发,多轮实时投票,近700万人同时观看晚会,在技术上全程几乎没有出现任何意外。
给这场超级晚做技术"护航"的,是爱奇艺一群整夜无眠,默默守护的工程师。
多画面无卡顿,背后的技术难点如何攻克?
本次"为爱尖叫晚会"最大的亮点之一,就是在行业首创大型直播节目中的"多画面"同屏观看。
顾名思义,"多画面"同屏观看可以切换多个视角画面,让观众更加个性化地选择自己想要关注的"爱豆"观看。具体来说,当用户在爱奇艺直播的手机端全屏多画面模式下,会呈现共1+3个画面:1个主画面+3个子画面。观众不仅可以看到前台晚会的精彩,还可以同时观看等候区、后台区和戏剧区的内容。
事实上,当天被热议的话题也多来自多画面的"后台区"和"等候区","只有潘玮柏在后台认真吃火锅"、"秦岚打麻将"、"尹正说黄晓明裤衩都小了吧",这些都是在传统晚会中看不到的明星们难得的"人间真实"时刻。
不过多画面直播也带来了不少技术难题:考虑到用户会有不同的主画面选择,而主次画面的清晰度不同。如果同时把每一个画面的高码流内容和低码流内容全都推出,会导致每个用户同时收到一大三小的四个码流,相当于普通直播两倍以上的带宽,也就意味着至少是两倍以上的卡顿率。
为了低成本、高效率、低延时的完成多画面的直播,爱奇艺技术产品团队也在这次直播中创新性地引入了混流技术,在云端进行实时的合成。
爱奇艺CTO刘文峰告诉我们,"在晚会现场有110多个机位,每一个机位都被实时的编码成多个码流,包括大画面和小画面,在云端实时将这些画面组成,用户可以去配置不同组合观看直播,所以用户在手机端选择画面的时候,他实际上是切换了不同的组合流。每一个组合流的带宽码率和我们普通的直播相当,整体的操作率很高。"
此外,此方案最大的优势在于可以模拟类似5G同时观看和切换多个画面的效果,特别是5G还在普及中的今天,能够让更多的用户可以提前体验到堪比5G的观看直播体验,同时又能支持多个平台,并且为不支持5G或性能较低的设备提供同样的体验。
从直播效果来看,当天的多画面直播场景体验非常流畅,移动端用户切换视角次数超千万。
互动投票热议!过足"导演瘾"的背后,谁在快速准确计票?
当晚,让爱奇艺的工程师们时刻关注的另一个场景是——实时互动投票。
由观众票选节目单,同样也是线上晚会的第一次,这种新玩法需要节目团队和技术产品团队的充分配合预演。
当晚,每轮投票的窗口时间只有三分钟,但观众的网络有好有坏,投票时高并发的脉冲流量怎么抗?为了保障快速准确计票,爱奇艺的工程师们也提前做好了万无一失的准备。
为了确保在投票结束后1分钟内就能完成所有计票工作,爱奇艺技术产品团队针对投票结果,利用分布式消息队列、并行计算、专线网络,在投票的同时进行近实时的计票,最大限度减小延迟。
同时,在网络接入、负载均衡、风控检测、投票处理、消息队列、数据库存储等多个层面,爱奇艺的工程师们都做好了高可用部署,每一个环节都部署至少两个机房,确保即使在一个机房出现故障的情况下,另一个机房仍然能确保直播过程的正常进行。
并且在人员部署上,为保证每一轮互动投票顺利进行,爱奇艺也在晚会现场安排了实时盯紧节目的工作人员,充当技术后台与晚会现场的桥梁,每次互动投票开始前5分钟都与后方"技术大本营"保持电话实时沟通,同步投票相关参数和配置数据,保障实施技术内容。
在这场近7个小时的直播背后,近50位直播各环节技术同学一直"驻守"在上海的爱奇艺创新大厦,确保技术环节不出差错;也正是在技术和内容团队的充分配合下,当晚互动投票进行顺利,参与人数达到了近500万。
"都在意料之中"
"晚会当晚有没有有惊无险的小故事?"
"都在意料之中"。
事实上,在晚会结束采访爱奇艺的工程师们的时候,他们不约而同的如此回答。
作为一场直播晚会,爱奇艺技术产品团队提前进行了多次预演,做了几乎万无一失的准备,预演几乎考虑到了现场可能发生的各种意外,这才确保了当晚没有任何突发事件发生。
在接受采访时,爱奇艺CTO刘文峰也讲述了技术产品团队为这场直播作出的努力,"第一次将这些技术应用于线上,就是这么大型的一个直播,我们也担心会不会有一些黑天鹅事件出现,所以事先经历了非常多次的预演,让内容团队、节目团队直接配合,把我们在真正直播过程中可能会出现的问题事先想到并且排除掉。所以我们在真正的直播过程中,几乎没有出现没有想到的情况,非常的顺利。"
这些技术能力也得益于爱奇艺在海量用户服务方面的技术基础设施和经验积累。爱奇艺早就搭建了适合百万级在线用户的实时交互服务,为直播和实时互动赋能,支持各种创新玩法,这次的晚会方案,也不光是技术的高可用,更是从整个流程和应急预案方面的高可用。而正是这些日复一日的技术积累和大胆尝试,才让近700万观众体验到了这么一场精彩纷呈的晚会。
相关文章:

linux下挂载硬盘
2019独角兽企业重金招聘Python工程师标准>>> 切换到root用户 su - root 查看硬盘信息 fdisk -l Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders Units cylinders of 16065 * 512 8225280 bytes Sector size (logical/ph…

通过创建 HttpCookie 对象的实例编写 Cookie
通过创建 HttpCookie 对象的实例编写 Cookie HttpCookie myCookie new HttpCookie("UserSettings");myCookie["Font"] "Arial";myCookie["Color"] "Blue";myCookie.Expires DateTime.Now.AddDays(1d);Response.Cookies…

亚马逊云服务(AWS)云原生自研处理器首次落地中国区域!
2021年1月28日,亚马逊云服务(AWS)正式宣布,由 AWS Graviton2 处理器提供支持的 Amazon Elastic Compute Cloud (Amazon EC2) M6g、C6g 和 R6g 实例已在由光环新网运营的 AWS 中国(北京ÿ…

一个古老的问题HashMap与Hashtable区别
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的&#…

如何修改可运行Jar包,如何反编译Jar包
将可运行Jar包,反编译成项目,修改代码,再次编译,打包。 需要工具:jd-gui、myeclipse 具体步骤: 1、使用jd-gui打开原始的Jar包,选择File-->Save All Sources,会生成一个zip压缩包…
告别手敲 SQL ?GPT-3 自动帮你写
作者 | Brian Kane SeekWell 编译 | 伍杏玲 出品 | AI科技大本营(ID:rgznai100) 【导语】手写业务 SQL 很繁琐?GPT-3来帮你!本文作者通过手动输入简单的英文描述秒 Get 到 SQL 了。听说 AI 又来抢开发者饭碗࿰…

Java IO 体系结构
参考文章地址: http://blog.csdn.net/oracle_microsoft/article/details/2634231 Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系 2.…

ACCESS数据库防止下载
1. 修改数据库名。这是常用方法,将数据库名该成怪异名字或长名字,以防别人猜测。一旦被人猜到,别人还是能下载数据库文件,但几率不大。如将数据库database.mdb改成dslfjds$^&ijjkgf.mdb等 2. 修改数据库后缀。一般改成databa…

CentOS 7 SSH 免密登录的方法
先决条件 3 台 CentOS 7 HOSTNAMEIPROLEserver110.8.26.197Masterserver210.8.26.196Slave1server310.8.26.195Slave21. 用 root 用户登录。每台服务器都生成公钥,再合并到 authorized_keys。 2. CentOS 默认没有启动 ssh 无密登录,去掉 /etc/ssh/sshd_c…

webconfig加密
退到根目录 cd/跳到某盘 c: ..跳到某目录 cd Documents and Settings/All Users上一层 cd .. cd WINDOWS/Microsoft.NET/Framework/v2.0.50727 回车 aspnet_regiis -pef connectionStrings D:/NET aspnet_regiis -pe connectionStrings -app /NET 虚拟目录aspnet_regiis -pd…

WIN7 任务栏放右侧 有个BUG
不能变窄啊,微软又在设计上。转载于:https://www.cnblogs.com/whitetiger/p/3269827.html
全领域通吃,12个经典Python数据可视化库盘点
责编 | 寇雪芹头图 | 下载于视觉中国来源 | 博文视点BroadviewPython有很多数据可视化库,这些数据可视化库主要分为探索式可视化库和交互式可视化库。前者透过简单直接的视觉图形,更方便用户看懂原数据,后者主要用于与业务结合过程中展现总体…

add nodes to the swarm
一旦你们创建了一个带有管理节点的swarm集群,你就可以开始添加 worker节点$ docker-machine ssh worker1 $ docker swarm join \--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \192.168.99.100:2377 This node …
三种方法,用Python轻松提取PDF中的全部图片
作者 | 陈熹、刘早起来源 | 早起Python头图 | 下载于视觉中国有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用Python也可以轻松搞定!今天就跟大家系统分…

ASP.NET中如何防范SQL注入式攻击
1将sql中使用的一些特殊符号,如 -- /* ; %等用Replace()过滤;2限制文本框输入字符的长度;3检查用户输入的合法性;客户端与服务器端都要执行,可以使用正则。4使用带参数的SQL语句形式。 ASP.NET中如何防范SQL注入式攻击…

iOS下的类似Android的toast提示
一般人会说,就是用那个MBProgressHUD不就行了吗? 的确是,MBProgressHUD能为我们做了好多loading指示器,但是toast不一样,它是在屏幕某个地方出现一行小提示,例如网络状态,出现的时候不会妨碍用户…

配置Activiti Explorer使用MYSQL
http://blog.csdn.net/lxxxzzl/article/details/39583977

初学者SQL语句介绍
初学者SQL语句介绍 1.用 Select 子句检索记录 Select 子句是每一个检索数据的查询核心。它告诉数据库引擎返回什么字段。 Select 子句的常见形式是: Select * 该子句的意思是“返回在所指定的记录源中能找到的所有字段”。这种命令形式很方便ÿ…
转型AI成功几率有几分?太真实了......
技术转型,这两年一直是程序员圈子里的热门话题。对于大部分基层程序员来说,基础岗位上薪资的涨幅很难跟上年龄的增长。而近些年,AI技术发展势头迅猛,优秀人才短缺。在这种情况下,无疑是谁先转型成功,谁就占…

如何使用聚簇索引
2019独角兽企业重金招聘Python工程师标准>>> 聚簇索引是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎 总是比使用非聚簇索引快。每张表只能建一个聚簇索引&#…

C语言实现汉诺塔问题
代码如下: #include <stdio.h> #include <stdlib.h> void move(int n,char x,char y,char z) {if (n1) {printf("%c--->%c\n",x,z);}else {move(n-1,x,z,y);printf("%c--->%c\n",x,z);move(n-1,y,x,z);} } int main() {int n…

将Session值储存于SQL Server中
一般情况下,我们喜欢使用Session储存我们的变量。Asp.Net提供了下面一些方法储存Session的值: InProc State Server SQL Server “InProc”表示我们使用传统ASP一样的方法储存Session的值,而且“State Server”则表示使用另外一台主机来…

系统定时关机的方法
曾经在网上搜索过关于windows XP定时关机的方法,很多人都说下载一个定时关机的软件。其实根本不需要这么麻烦,windowsXP本身就自带有定时关机这个功能,而且有两种方法。方法一:使用at命令(1)"开始"->"运行"…

让线上学习不打折扣,作业帮如何用技术促进课堂高频互动场?
“在大班直播课上,可能有数千甚至上万学员同时上课,但是他们彼此看不见也听不见,是千千万万个‘孤独的个体’,而‘小组直播间’却可以让他们随时随刻感觉到自己置身于一个温暖的集体之中。” “小组直播间”是曹越一直主张在大班…

在python中调用js或者nodejs要使用PyExecJs第三方包。
在python中调用js或者nodejs要使用PyExecJs第三方包。 使用时:import execjs这是没有用到nodejs的情况;如果用到nodejs,这种写法会报“Cannot find module xxx”的错误。 如果要用nodejs,要在环境变量中指定node_modules的路径。转…

超越Google,快手落地业界首个万亿参数推荐精排模型
整理 | 兆雨 责编 | 阿司匹林 出品 | AI科技大本营 精准的推荐系统模型是很多互联网产品的核心竞争力,个性化推荐系统旨在根据用户的行为数据提供“定制化”的产品体验。国民级短视频App快手,每天为数亿用户推荐百亿的视频,遇到的挑战之一是推…

Cache总义Cache用法之页面声明
Cache总义Cache用法之页面声明 <% outputCacheDuration"#ofseconds"Location"Any|Client|Downstream|Server|None"VaryByControl"ControlName"VaryByCustom"browser|customstring"VaryByHeader"headers"VaryByParam&quo…

InfBox V7.0 企业绩效助手客户端使用简介
1,点击此处下载InfBox V7.0 客户端软件。2,把下载下来的InfBox.rar压缩包,加压缩到E盘,解压后的目录如下:3,双击运行infbox.exe文件,点击登录窗口的左下角配置图标,设置服务器IP地址…

iOS:转载:UIControl的使用
主要功能: UIContol(控件是所有控件的基类 如:(UIButton)按钮主要用于与用户交互,通常情况下我们不会直接使用UIControl,而是子类化它。常用属性: BOOL enabled 空间默认是启用的&am…

fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出
格式化输入输出 1. fprintf(格式化输出数据至文件) 相关函数 printf,fscanf,vfprintf 表头文件 #include<stdio.h> 定义函数 int fprintf(FILE * stream, const char * format,.......); 函数说明 fprint…