边缘计算加速视频直播场景:更清晰、流畅、实时_火山引擎边缘计算的博客-程序员信息网_视频边缘计算

技术标签: 音视频  边缘计算  人工智能  

随着4G、5G网络技术的发展和智能手机的普及,网络直播逐渐成为了新媒体主要的传播方式,在社交娱乐、产品展示、政务公开、展会发布等领域被广泛使用。

面对全国不同城市、不同运营商的用户,如何保障视频直播清晰、流畅、实时的观看和互动体验?本文主要分享边缘计算在视频直播场景中的应用,核心内容如下:

  1. 什么是直播?

  2. 直播的系统架构

  3. 边缘计算加速直播

  4. 总结

01 什么是直播?

根据《广播电视辞典》定义,直播是指广播电视节目的后期合成、播出同时进行的播出方式。这种方式中节目的后期合成过程就是节目的播出过程,它不经过事先录音或录像,而是同一时间内在现场或播音室、演播室完成节目的制作和播出。

直播能充分体现广播电视媒介传播的优势:

  1. 通过直播可以随时播出最新新闻,保证新闻报道的时效性。
  2. 可以同步报道新闻事件的发生和发展过程。
  3. 强烈的现场感,实现良好的播出效果。

随着4G、5G网络技术的发展和智能手机的普及,基于互联网和流媒体技术的网络直播逐渐开始发展。依托互联网广泛、便捷的网络资源,网络直播将音视频信号进行编码、压缩、封装处理后,通过流媒体传输协议在互联网上实时传输和播放。对比广播电视直播,网络直播对主播在专业技能、表现形式、直播内容等方面更加多元和宽松,且能提供和观众更加互动的双向交流,网络直播逐渐成为了新媒体主要的传播方式,在社交娱乐、产品展示、政务公开、展会发布等领域被广泛使用。

网络直播根据内容场景,主要分为电商直播、游戏直播、真人秀直播、演唱会直播、体育直播等类型。根据CNNIC发布的《第48次中国互联网络发展状况统计报告》数据,截至2021年6月,我国网络直播用户规模达6.38亿,同比增长7539万,占网民整体的63.1%。受益于广泛的用户群体,网络直播将持续突显其经济和社会价值。

02 直播系统的架构

基础架构

直播基础架构由主播端、服务端、观众端三部分组成:

  • 主播端:视频生产源头。通过硬件设备采集音频、视频数据后,进行编码、压缩、封装后,通过网络推流至服务端对应的媒体服务。

  • 观众端:通过网络拉取服务端媒体服务器上的目标视频流,通过本地播放器进行音视频解码后进行播放。

  • 服务端:包含一系列的媒体服务器,实现对视频直播的控制面(用户认证、房间管理等)和数据面(音视频流的推流和拉流)的统一接入、管理和调度能力。同时,媒体服务也可以根据直播平台业务需求,对视频流进行连麦、转码、内容审核、录制等功能。

业务架构

一般来说直播业务架构主要由主播端、媒体服务、播放端、直播业务平台等几部分组成:

  • 主播端:通过在直播APP中集成推流SDK,实现直播相关的采集、编码、推流及增值业务等能力。

  • 观众端:通过在直播APP中集成播放SDK,实现直播相关的拉流、解码、播放及播放体验优化等能力。

  • 直播业务平台:主播和观众在发布/订阅直播内容时,都需要依赖直播APP:比如主播只有在对应直播APP平台注册并通过审核后,才可以创建房间进行直播,然后观众也是通过直播APP进入某个主播的房间实时观看直播及互动。对应直播APP后端平台就是直播业务平台,实现用户注册和管理、房间管理、鉴权和授权管理能力。

  • 媒体服务:实现对直播流的接入、发布、转发能力,对直播流和内容基于业务需求进行合流、审查、转码、录制等能力。

在商业化的直播APP中,还会有诸如弹幕、打赏、商品推荐等业务模块,提供更加趣味、新颖的直播交互和体验。

03 边缘计算加速直播

随着业务的发展,直播平台需要实现对全国不同城市、不同运营商的用户提供覆盖和直播服务,伴随而来就会产生如下的问题:

  1. 高并发瓶颈:直播中心难以承载百万级、千万级规模的用户并发请求。
  2. 带宽瓶颈:直播中心的网络资源难以满足大量用户的视频接入和分发。
  3. 体验不一致:不同地方用户因为物理距离差异带来额外的网络时延,从而导致用户体验不一致。

边缘计算旨在更加靠近用户的网络边缘,提供标准的计算能力和 IT 服务。通过将时延敏感业务、流量接入业务部署在用户本地,一方面可以就近接入用户降低业务响应时延,另一方面在边缘本地即可对业务进行处理可以有效分担中心瓶颈提升业务容量。

 

推拉流加速

如果将所有主播的直播流都推送至直播中心,然后所有观众也都从直播中心拉流,那么势必对直播中心带来巨大的业务压力。同时主播/观众到直播中心间的网络链路存在长距离传输,其网络性能存在带宽受限、不稳定等因素也会影响最终的用户体验。

通过边缘计算提供的边缘实例自建直播网络,将推拉流能力部署在更加靠近终端用户的边缘,实现就近接入、转发用户直播流数据,降低用户时延。同时边缘实例所在节点具备运营商高质量的专线出口,可以有效保证用户-边缘节点-直播中心的网络传输质量,提升业务稳定性。

  • 上行推流加速:基于用户地理位置亲和性,智能调度用户(主播)到最近的边缘计算节点提供视频直播流媒体推流服务,降低用户接入响应时延提升体验。

  • 下行拉流加速:基于用户地址位置亲和性,智能调度用户(观众)到最近的边缘计算节点提供视频直播流媒体拉流服务:如果本地已经缓存直播流,直接分发;如果本地无缓存,则回源直播中心拉流,有效降低用户拉流时延,并极大的节省直播中心带宽支出成本。

媒体处理加速

边缘计算提供的通用算力,能支持在用户本地即可对视频直播的用户媒体数据进行处理,比如将视频直播媒体服务中转码、切片、合流等服务直接在边缘本地部署,一方面本地媒体数据处理可以提升用户交互相关业务的响应效率,另一方面在数据源头对数据进行压缩、优化处理可以提升边缘-中心的数据传输效率优化成本。同时,从全局系统架构来看,采用物理位置分散的边缘计算架构可以实现直播业务的分布式部署,从而实现更高并发、更稳定的业务能力。

 

可以考虑在边缘节点实现如下媒体服务处理:

  • 窄带高清/转码:在保证用户观看视频质量的前提下,对直播流视频进行压缩,降低回传带宽需求。

  • 合流:对用户的多个视频流在边缘进行合流,降低回传带宽需求。

  • 转封装:针对用户不同终端类型(IOS、Android、HTML5等)动态转换流媒体封装协议。

  • 转码:实现视频流不同编码格式的转换。

  • 超分辨率:通过算法提升原片画质,满足高质量画面的用户需求。

  • 动态分辨率:基于用户的实时网络环境动态切换不同码率视频,保证视频流畅度。

值得一提的是,在直播场景中涌现出越来越多有趣的玩法和特效,比如抖音中比较火的“蚂蚁呀嘿”、“漫画风”等视频特效,可以极大丰富用户趣味性提升用户粘性。高质量的视频特效,同样对用户终端提出更高的资源需求,但是很多中档、低档的终端受限于硬件性能瓶颈导致用户难以获得产品预期的效果从而影响体验。边缘计算节点提供通用的GPU算力资源,可以有效地辅助终端实现高质量的视频特效渲染,保证用户获得预期的直播体验。

AI应用加速

随着AI技术的发展和成熟,越来越多的AI技术被应用于直播场景,比如通过AI算法在内容理解、内容创新、内容传输等方面实现更加优质、创新的直播体验。

 

从算力来源来看,中心云、边缘节点、用户终端都可以提供AI业务所需要的算力资源:

  1. 中心云,具备大规模、高性能的AI算力优势,能满足各种AI业务场景资源需求;受限于用户距离,在服务远距离用户时存在时效性低的缺点。
  2. 用户终端,部分中高档移动终端能提供一定的AI算力用于AI业务。用户终端的AI算力对用户来说时延最低、体验最佳,对业务方来说无需投入资源、成本最优;但是由于用户终端型号多样、性能层次不齐,需要业务方投入相当的资源做兼容适配,且最终效果受限硬件性能难以达到预期效果。
  3. 边缘计算,在更靠近的用户边缘能提供通用的计算能力,如和数据中心一致的GPU显卡,可以满足AI业务推流或渲染所需要的算力资源,同时距离用户更近保证业务相应的时效性,所以能很好的协调中心AI算力和端侧AI算力在时延、兼容性、算力能力、成本的差异。

04 总结

边缘计算提供全国各省市和运营商的全域覆盖,在视频直播场景将和用户交互与流量接入相关的推拉流、转码合流等服务在更加靠近用户的边缘部署,就近实现主播和观众的直播视频推拉流,确保低时延业务响应,提升高清直播的流畅业务体验。同时,随着对视频直播内容趣味性、创新性、沉浸性的需求的不断提升,边缘计算提供低时延、标准化、异构化的算力资源将持续助力直播场景提供更加极致的业务体验。

 

 

火山引擎边缘计算节点致力于为用户提供稳定、高性能、功能丰富的新一代边缘计算云平台服务,通过覆盖全国各省市和运营商的边缘节点,助力业务快速部署到用户与云中心之间的每个边缘层。

目前火山引擎边缘计算已在抖音直播、今日头条、西瓜视频、飞书等多款应用落地。欢迎关注边缘计算节点或开通服务~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/VE_Edge/article/details/122941374

智能推荐

php批量执行函数,php自动执行函数_穿杨之光的博客-程序员信息网

php 动态执行 函数,PHP学习 你的知识信息已经过时了吗? ,php自动执行函数,php的命令执行函数关键的两个函数: ignore_user_abort(true),这个函数的作用是,无论客户端是否关闭浏览器,下面的代码都将 得到执行。 set_time_limit(0),这个函数的作用是,取消 php 文件的执行时间,如果没有这个函数的话, 默认 php 的执行时间是 ......PHP函...

【Proteus仿真】【51单片机】水箱液位检测控制装置设计_Hai小易的博客-程序员信息网_51单片机水位检测

1、压力液位检测2、阈值设定,超限报警3、压力液位显示4、补排水自动控制

VS下开发的QT程序的打包_带你去网吧里偷耳机的博客-程序员信息网

step 1在windows文件夹里搜索windeployqt.exe 这个是安装qt时(msvc版)自动安装的。搜到之后在相应目录输入cmd进入命令行step 2然后找到qt项目中的可执行文件,一般在Debug目录下然后在打开的命令行下输入以下命令:但提示无法找到,猜测可能是路径太长,把zkinspector_my.exe拷贝到桌面,执行同样的操作把路径...

android uri跳转,Android Scheme的跳转协议,跳转到app的指定页面_河星星的博客-程序员信息网

Scheme协议Android中的Scheme是一种页面内跳转协议,通过自定义Scheme协议,可以跳转到app中的任何页面服务器可以定制化跳转app页面app可以通过Scheme跳转到另一个app页面可以通过h5页面跳转app原生页面定义协议的格式Uri.parse("cheu://tests:92/goods?goodsId=8897&name=fuck");chen代表Scheme协...

ajax请求五个步骤!_Kaizd的博客-程序员信息网_ajax请求的五个步骤

ajax请求五个步骤!今天 咱们讲一讲Ajax请求五个步骤!1.创建XMLHttpRequest异步对象var xhr;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xhr=new XMLHttpRequest(); }else {// code for IE6, IE5 xhr=new ActiveXObject("Microsoft.XMLHTTP"); }2

项目开发中的一些注意事项以及技巧总结_weixin_34138056的博客-程序员信息网

1、jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View()、PartialView()等,只能返回json以及content等,但是一般我们在开发的时候也是使用json返回的,此时如果需要渲染界面或者是加载局部视图,我们可以在ajax的success的事件中使用$.html()来渲染后台给前端传的View()数据。一开始我遇到这个问题的时候还很纳闷...

随便推点

win10 远程桌面卡顿_win10系统使用远程桌面卡顿的解决教程_weixin_39695672的博客-程序员信息网

有关win10系统使用远程桌面卡顿的操作方法想必大家有所耳闻。但是能够对win10系统使用远程桌面卡顿进行实际操作的人却不多。其实解决win10系统使用远程桌面卡顿的问题也不是难事,小编这里提示两点:1)同时按下win10系统电脑键盘上的win+R快捷键打开电脑的运行窗口,在窗口中输入netsh interface tcp set global autotuninglevel=disabled命令...

20220705开发板BL602的SDK编译以及刷机_南棱笑笑生的博客-程序员信息网

20220705开发板BL602的SDK编译以及刷机2022/7/5 15:241、下载BL602的SDKhttps://bouffalolab.github.io/bl_iot_sdk/get-started/Developer_Environment_BL602/get_started_hw_windows/get_started_hw_windows.htmlBL602的快速入门下载代码,使用 git clone [email protected]:bouffalolab/bl_iot_sdk.g

通过DBLINK查询出现的问题_czw333的博客-程序员信息网

select t1.rolename from (select * from [email protected]) t1, (select * from [email protected]) t2 where t1.rolename = t2.username(+) and t2.username is null;  select t1.rol...

SQL 日期型函数_zoohouse的博客-程序员信息网

<br />1 SQL Server 有两种日期类型:DATETIME 和 SMALLDATETIME,<br />    <br />    DATETIME 的日期范围:1753-1-1到9999-12-31之间的日期值,精度为3.33毫秒,其类型的值在SQLServer内部用两个 4 字节的整数存储。<br />      第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。<br />            另外一个 4 字节存储天的时间(以

设计模式 - 模版方法_我爱看明朝的博客-程序员信息网

设计模式 - 模版方法场景小张的团队最近接受一个需求,实现实现一家咖啡店的冲泡咖啡和茶的冲泡自动化。之前这家咖啡店都是由咖啡师傅手动进行调制咖啡和茶。现在咖啡店需要引入自动化的点单和调制饮料的系统,小张负责实现调制饮料的功能。咖啡师傅手工冲泡咖啡和茶的流程:冲泡咖啡:把水煮沸用沸水冲泡咖啡把咖啡倒入杯子加糖和牛奶冲泡茶:把水煮沸用沸水冲泡茶叶把茶倒入...

vue全面介绍--全家桶、项目实例_weixin_30576827的博客-程序员信息网

简介“简单却不失优雅,小巧而不乏大匠”。2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们的缺点”。授予了这么高的评价的vue.js,也是开源世界华人的骄傲,因为它的作者是位中国人–尤雨溪(Evan You)。Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进...

推荐文章

热门文章

相关标签