主播在直播中做“激烈”运动,会导致什么技术问题?

简介:
     直播App最大的敌人就是“墙”。不要紧张,不是谷歌的那个死对头,而是真的砖墙。

众所周知,主播直播的时候,会做一些激烈的运动。。。比如:在屋里走动。当她手持手机绕过一堵墙的时候,会导致Wi-Fi信号骤然降低,但是主播往往不会意识到信号减弱这个事实。同样,在户外用3G/4G网络进行直播的户外主播,面对的网络情况更加复杂。

想象一下这样的情况:

如果主播向广大观众说一句“我爱你”,但是却要等10秒的时间才收到 Diors 赠送的玫瑰花,这短短的10秒钟,足以把“我爱你”和送花的行为割裂成两个没有联系的部分。

这钟直播体验显然非常糟糕。

在复杂的情况下,如何不让网络另一端的广大 Diors 错失“福利”,直播平台会选择使用网络加速服务商(CDN)的服务。一般来说:大流量传输,如迅雷下载、乐视视频或熊猫TV,都需要 CDN 的服务,以提高用户接收文件包的速度。通俗来讲,CDN的原理就是把用户需要的文件先利用高速的网络通道缓冲到离用户最近的节点,然后再就近传输给用户。减少了从远程服务器搬运的长途跋涉。

在CDN的应用中,有很多场景。例如爱奇艺、乐视这类视频网站,用户请求的视频是有限长度的一段综艺节目或电视剧,观看者会综合考虑画质和传输速度。而对于斗鱼TV、熊猫TV这类有互动的“流媒体”直播平台来说,用户对于直播流畅性是非常在意的。正如前面所说,人对于反馈的等待时间是有忍耐极限的。

熊猫TV的 CDN 服务商又拍云 CTO 黄慧攀告诉雷锋网(公众号:雷锋网)

从经验来看,主播和观众双方互动从开始到结束,在4秒之内完成是可以接受的底线。在直播推流端(主播端)网络状况达标的情况下,又拍云可以把网络延迟控制在2-3秒。

在传输过程中,传输质量当然由 CDN 厂商负责,但是,如果出现直播端网络信号不好这样的“硬伤”,CDN 厂商会如何处理呢?

面对这种情况,CDN 厂商就必须做出取舍。黄慧攀说,如果直播端遇到网络问题,在传输中会采用“抽帧”的方案:原本一秒视频包含25帧画面,但是在网络状况不好的情况下,会优先保证声音的传输,把视频的传输变为每秒10帧或更少。

简单说来,就是在牺牲一定直播画质的基础上,保证用户的流畅体验。

打个比方,视频直播就像送快递,如果发件人手里需要运送的物品过多,作为快递员的 CDN 就会和寄件人“商量”,筛选最重要的几件物品优先打包运输,同时扔掉其余的物品。

但是,这里有一个技术细节:接收快递的人如果没有能力同时接受如此多的快递,快递员就不能采用扔掉包裹的方式来处理。因为这些快件已经被打包,在运输的过程中,作为快递员是不能私自拆包的。这时,直播App一般会选择降低码率,也就是降低解析度的方式来解决——例如用最低320像素的分辨率来传输视频。当然,如果网络再进一步恶化,CDN 加速也无能为力。

由于涉及到多次网络分发,从中转网络到边缘网络,每一次缓冲都需要半秒左右的时间,所以视频直播每降低哪怕零点几秒的延迟,CDN 厂商都需要付出巨大的技术努力。

对于直播平台来说,也有很多策略可以选择。例如:

  • 当直播由于网络信号中断,再次恢复的时候,延续之前的直播几秒才跳到实时直播时点。

  • 对于某些主播,是选择耗费资源的高清信号,还是在 CDN 网络上进行在线压缩之后再推送出去。

这些都是根据直播平台的内容制定的。

由此看来,简单的直播,却涉及到很多环环相扣的技术解决方案,主播每一次“运动”都是牵一发而动全身的。

  
 
  本文作者: 史中

本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
移动开发 JavaScript Oracle
Oracle根据汉字取拼音首字母的function
Oracle根据汉字取拼音首字母的function
9155 0
|
小程序 搜索推荐 安全
【开题报告】基于uniapp的在线蛋糕商城小程序的设计与实现
【开题报告】基于uniapp的在线蛋糕商城小程序的设计与实现
730 0
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
12341 81
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
安全 物联网 数据安全/隐私保护
UEFI的一点点概识
UEFI的一点点概识
1815 0
|
JSON 持续交付 数据中心
基础设施即代码(IaC)的实现途径
【8月更文挑战第18天】基础设施即代码(IaC)是现代云计算和DevOps实践中不可或缺的一部分。通过编写代码来定义和管理基础设施,可以实现自动化、可重复性、易于维护和高度可扩展的基础设施管理。通过选择合适的工具和方法,遵循最佳实践,企业可以显著提升基础设施的部署效率和管理水平。
|
数据可视化 搜索推荐 前端开发
编码如画,以梦驭马——CodeWave低代码平台全侧写
编码如画,以梦驭马——CodeWave低代码平台全侧写
582 0
|
Java 数据库连接 数据库
sqlLite 如何使用数据库连接池
这篇文章介绍了如何在SQLite数据库操作中使用HikariCP连接池以减少频繁建立和释放数据库连接的资源消耗,包括在Maven项目中添加依赖、配置HikariDataSource对象以及实现数据库连接池的具体代码示例。
|
NoSQL Redis C语言
[hiredis 的Redis执行语句返回结果类型全说明
[hiredis 的Redis执行语句返回结果类型全说明
295 1
|
机器学习/深度学习 数据采集 数据挖掘
Python实现循环神经网络RNN-LSTM回归模型项目实战(股票价格预测)
Python实现循环神经网络RNN-LSTM回归模型项目实战(股票价格预测)
|
人工智能 算法 搜索推荐
如何在淘宝人生2一键定制你的专属3D数字人(下)
如何在淘宝人生2一键定制你的专属3D数字人(下):
867 4