全民k歌怎么开直播,全民k歌手游直播怎么开

背景2020年受到疫情的影响,大众减少了线下娱乐,将更多的时间投入到了线上活动,直播行业迎来了一个小爆发,主播注册数量与线上观众不断增长。同时,在线直播演唱作为一种全新的演出模式,受到广大网友的好评,

背景

2020年受到疫情的影响,大众减少了线下娱乐,将更多的时间投入到了线上活动,直播行业迎来了一个小爆发,主播注册数量与线上观众不断增长。同时,在线直播演唱作为一种全新的演出模式,受到广大网友的好评,4月以来TME承办了近20场明星在线演唱会。

随着站外直播场景业务需求逐步增多,K歌直播旧的业务代码无法满足不断增长的产品功能需求和用户体验需求。在此背景下,Web侧急需为推流直播业务提供更加可靠的技术支持。

HLS和HTTP FLV

目前K歌Web使用的直播流格式主要以HLS直播流为主。HLS(HTTP Live Streaming) 是由Apple提出的HTTP流媒体传输协议。其工作原理是服务端把整个流切分成一片片小的媒体流片段,客户端通过下载一个包含源数据的extended M3U(m3u8)playlist文件用于寻找可用的媒体流,随后开始下载格式为MPEG-TS的媒体片段,整体的流程图如下:

移动端 iOS 和 Android 都支持HLS协议,做好视频采集、视频流推流服务之后,便可以直接在H5页面通过 video 标签播放直播流。

全民k歌怎么开直播

<video> <source id=&34; src=&34; type=&34; /></video>

1、手机点开全名k歌app。2、进去以后点击发现,直播就在这个页面,找到点击直播。3、编辑直播内容,编辑好以后就可以直播了。在这个页面可以提前设置美颜还有自己的头像,好的头像可以吸引观众,还没点击开始直播自己的美颜就不。

HLS局限性

HLS流最大的局限性主要有:

在服务端对直播流进行切分处理之后客户端才能拉取到数据,所以整体延迟较高,通常延迟可达到20~30s。

由于直播流分片拉取,所以客户端需要频繁地进行http请求,可能会导致播放卡顿。

通过video标签进行hls播放,无法很好的在业务层进行定制化操作以及数据监控。

因此,前端还需支持更低延迟也更稳定的直播流,FLV直播流能满足当下需求。

HTTP FLV是将RTMP封装在HTTP协议之上的用于传输flv格式的协议,其传输的http_flv是一个文件大小无上限的http流的文件。相较于HLS,HTTP FLV无需在服务端对直播流进行切片处理,所以具有低延迟的优势,平均延迟只有1~2s。此外,HTTP FLV还具有一定程度上避免防火墙干扰、兼容302跳转、支持HTTPS通道加密等优势。

HTTP FLV局限性

既然HTTP FLV相较于HLS有如此大的优势,直接使用HTTP FLV不是更好吗?

由于HTTP FLV的支持需要依赖于MSE(Media Source Extensions) API 和 fetch+stream API ,而iOS浏览器不支持MSE API,所以flv流无法直接在iOS端播放。

FLV Web支持方案

全民k歌怎么开直播

通过原生的video标签来进行flv流格式播放的方式不可行,是否有其他方法来支持flv在移动端的播放呢?调研发现,现阶段支持移动端播放flv格式的js sdk主要有以下几种,对比其在移动端的能力如下表所示:

全民k歌手游直播怎么开,flv.js工作原理为:通过mse将flv流转码成fmp4给video进行播放,由于其本质还需依赖MSE,所以无法支持iOS。

NodePlayer.js 工作原理:通过ASM.js软解码H.264+AAC流,利用WebGL视频渲染,WebAudio音频播放来实现移动端flv直播流播放。

WXInlinePlayer与ffmpeg-player工作原理基本相似:

数据流获取层:利用 XMLHttpRequest 或者 Fetch Api 从云端的HTTP-FLV 流媒体获取直播流数据。

WASM解码层:利用web worker开启子线程,通过获取视频流metaData信息之后,对视频进行解封装,并将视频流格式化为YUV,将音频流格式化为PCM,进而将转换好的数据回调给渲染层。

渲染层:渲染层将获取到的视频数据与音频数据存入渲染缓存池中,WebGL 在 Canvas 上绘制视频画面,同时通过 Web Audio API 播放音频。

WXInlinePlayer和now直播的ffmepg player两者最大的区别在于其针对的目标有所不同。

解码库依赖方面

ffmepg player是在web侧复用FFmpeg中的H.265解码模块实现前端解码,整套解码器在依赖h264\acc\flv的同时还依赖了hevc,所以ffmepg player同时支持了H.265与H.264两种格式的视频流。但正因如此,ffmepg player输出的wasm文件体量较大,约1.3M。

WXInlinePlayer提供了可选的三套构建方案:baseline(不使用OpenH264),all(在baseline基础上支持OpenH264)以及h265 (基于OpenH265),开发者可根据需求来选择不同的解码器,最终输出文件体量视构建方案而定。基于OpenH264的解码文件约800K。

解码算法方面

WXInlinePlayer使用的主要是SWSFASTBILINEAR 算法。

文件部署方面

ffmepg player从网络性能的角度考虑,将wasm和js胶水代码部署在cdn上,通过fetch 请求web worker cdn的方式来实现项目对sdk的访问。

WXInlinePlayer相对来说更&34;,直接将wasm和胶水代码转成base64的形式注入到sdk代码中,最终输出为单个的js文件。

总结来说,要想让web端可以很好的支持flv,实现多平台的支持http-flv流播放器,主要开发思路如下:

技术流程图如下:

为此,K歌web团队封装了一套同时支持hls和flv视频流播放的kg-player SDK。

kg-player SDK

我们对WXInlinePlayer 以及腾讯自研的TCPlayer进行了源码优化,解决了iOS端画音不同步、移动端系统适配以及webgl渲染旋转等问题,将其封装成kg-player SDK。

例如,WXInlinePlayer使用的OpenH264解码模块,在iOS端和Android端有差异化的表现,在iOS端会对首帧进行额外解码,导致第二段音频每次都会包含第一段音频,从而使得画音不同步。对此,我们在逻辑层对iOS端的第一段音频进行记录,在audioSrc.start播放时减去第一段时长,使音频时间轴整体前偏移首段音频的长度,最终使音视频保持同步。

再例如,由于K歌iOS主播端的推流没有对直播源进行旋转,导致原本竖屏的直播流为横屏状态。对此,我们在webgl渲染层面对其进行逻辑封装,通过视频的宽高信息对直播流进行检测,通过矩阵变换视频流进行旋转。

优化后的flv解析流程如下:

技术架构

K歌Web侧推流直播的整体技术架构图如下:

整个技术架构分为三个模块,基于kg-player sdk的直播流播放模块,基于kg-im sdk的直播间消息模块以及礼物动画渲染模块。

kg-im sdk通过轮询的方式获取直播间的互动消息(礼物消息,评论消息,喇叭消息等),并根据消息池中消息的总数来弹性控制每次拉取消息间隔的时间,进而保证前端能够及时高效拉取消息且不会造成额外的网络开销。同时SDK会对消息进行二次封装,去掉冗余字段,封装成前端更易识别的消息结构体,减少前端业务代码。kg-gift 同时支持视频动画,webgl动画以及传统的css动画来满足直播业务中较为复杂的礼物动画需求。

直播性能数据

hls流与flv流各有优劣,在接入kg-player sdk之后,具体的性能对比数据如下:

首帧渲染时间

由于flv播放需要通过前端的WASM进行软解码,所以从第一帧传输到渲染上屏需要的时间要略长于hls流播放。

1、打开全民k歌,点击直播。2、入直播界面,选择我要开播。3、然后点击同意规则,进行设置自己需要的内容。5、最后设置完成后即可开播。

播放卡顿率

在kg-player内会设置心跳检测,其核心逻辑是通过设置timeInterval来进行心跳记录,心跳间隔2秒,2秒内如果出现当前播放时间和上一次心跳时的播放时间一致的情况则标记当前出现卡顿并进行一次&34;上报,否则则进行一次&34;上报。

注:Web页面在某些交互场景如微信端点击右上角或播放时切后台等操作,会导致心跳计数误差,上报的卡顿率要略大于实际卡顿率

1. 打开抖音APP并进入个人主页。2. 点击“更多”按钮,在弹出的选项中选择“设置”。3. 找到“隐私设置”,进入后找到“直播房间权限管理”。4. 在“直播房间权限管理”页面中,打开“允许全民K歌直播”开关。5. 此时您。

降级

kg-player SDK在检测到页面出现卡顿时会对播放流进行降级,从720p分辨率的流降级到540p,或者从flv降级到hls,由于flv流播放依赖于WebGL渲染,而WebGL渲染又依赖手机硬件性能,所以对于低端机会出现降级情况。

可以看到,整体降级率约为11.49%,这也表明flv在web端的支持有一定的优化空间。

进一步优化

通过wasm进行软解码并通过webgl进行渲染的技术方案,虽然能够很好的解决移动端播放不了flv直播流的问题,但是由于软解码和webgl渲染十分依赖硬件性能,导致很多中低端机型无法很好的播放flv流。

通过对比发现,iOS系统能够很好的解码并播放720p的直播流视频,但是Android端只能勉强支持540p的直播流视频,且在页面进行其他渲染(礼物动画,喇叭广播动画,评论滚动动画)时,由于硬件性能跟不上,Android端有一部分机型会降级到hls直播流,Android端的降级率接近iOS的三倍。

针对上述问题,我们对kg-player SDK进行了进一步的优化,对于Android端这一类性能不稳定的系统,我们回归到通过MSE的方式进行flv直播流的加载,利用现有的sdk如flv.js或者videojs来进行flv直播流加载。使用优化策略后,整体降级率大幅降低,对比图如下:

且优化后无需使用WASM进行软解码,所以首帧平均耗时也得到了降低:

上层业务支持

利用推流直播技术基础,我们能够较好的支撑现有的直播业务。目前主要的落地场景包括K歌直播站外H5分享页(日均PV 30W左右)以及TME live直播(场均PV50W左右),在保证前端渲染性能的同时也能给用户提供很好的交互体验。

总结与展望

未来我们还将支持更多的Web直播业务场景例如直播歌房等,而K歌直播技术架构也将会不断完善,从整体性能以及用户体验上出发,不断进行优化以便更好的支撑起更多更复杂的直播项目。

整个技术架构的sdk代码也在优化封装中,功能稳定成熟之后也将尝试开源。

另外关于c++ Linux后台服务器开发的一些知识点分享:Linux,Nginx,MySQL,Redis,P2P,K8S,Docker,TCP/IP,协程,DPDK,webrtc,音视频等等视频。

开始直播:首先打开全民K歌APP,点击界面下方“点歌”图标。然后在界面上方找到直播按钮,勾选我已阅读并同意遵守全民K歌直播平台用户协议,点击【继续】,跳转到直播界面;需要先完成实名验证,才能打开直播间,点击上传本身份证。

喜欢的朋友可以后台私信【1】获取学习视频

喜欢的朋友可以后台私信【1】获取学习视频以及一套Protobuf协议详解语法给大家

上一篇 2023年01月12 14:34
下一篇 2023年01月11 12:40

相关推荐

  • 战神的轻语多少钱,战神4多少钱

    阅文集团旗下起点中文网评选出了2018年度的十二天王,点娘毫无疑问是我国最大的网络小说网站,下面我们来看看十二天王都是凭借哪本书成就天王之位的↓↓↓都市分类:全球高武老鹰吃小鸡著书籍简介:地窟入侵,武

    2023年03月23 207
  • 方舟怎么快速升级,方舟单机快速升到100级方法

    《方舟:生存进化》是Steam上的一款生存沙盒游戏,在这款游戏里,玩家们的等级特别的重要,因为玩家每一次升级不仅仅能够带来各种属性的提升,方舟单机快速升到100级方法,同时还能学会新的技能,这个过程被

    2023年05月23 264
  • steam战地5多少钱,pc端大型单机游戏推荐

    近日《战地》系列在Steam开启了促销,pc端大型单机游戏推荐,包含了《战地4》《战地1》《战地5》三款老游戏的《战地捆绑包》原价426元,现价只需41.9元(降价90%)。有鉴于此,《战地1》《战地

    2023年04月10 286
  • cf怎么截图,cf端游截屏是哪个键

    各位看官大家好,我依旧是你们的老朋友秋刀,今天为各位带来的是CF穿越火线武器第一人称截图的第一弹,不同于之前,cf端游截屏是哪个键,这次是1920*1080最高分辨率,这个状态下的武器应该是最清晰的,

    2023年01月13 288
  • 我的世界刷石机怎么做,我的世界活塞打碎石头

    《我的世界》是一款自由度超高的沙盒构建游戏,以网易游戏为代表。你想玩的都在这里。我的世界活塞打碎石头,游戏中提供了各种地图供玩家选择和游戏。“生活在空岛上”就是典型类型之一,但在空岛上生存并不容易。玩

    2023年01月20 201
  • 退款怎么退,如何让4399游戏全额退款

    01常见售后类型对于现在主流电商来说,通常支持的售后形式包括仅退款,退货退款,换货,补寄。用户根据实际场景和诉求选择期望的售后方式。因此本篇以换货流程为例和大家分享下逆向消费场景的设计。此外,对于电商

    2023年02月09 237
  • 赛尔号表姐是谁,赛尔号能白嫖的自爆

    赛尔号有关9月30日开启的新精灵资料正式透露,这次赛尔号将迎来国庆活动,所以精灵数量上相对于平常来说要丰富一些,排面也非常的充足,赛尔号能白嫖的自爆,下面带来具体的精灵资料和总结说明。,混灵·莱茵哈特

    2023年04月26 251
  • lol怎么看回放,英雄联盟过了20把怎么找录像

    在哪看回放?玩家都知道英雄联盟有回放系统,那么回放系统要怎么使用呢?怎么才能看到自己的精彩操作呢?今天我来给大家带来英雄联盟回放系统的使用方法,希望可以帮助到大家。回放系统使用方法1、首先需要在电脑上

    2023年01月20 206
  • 剑仙是谁,剑仙是李白吗

    中国历史虽历经千年之久,并且一直在不断的演变和进步下,才一路发展到了如今的现代社会。不过,在这漫长的历史光阴之中,却也有许多民族的精粹一直流传至今。譬如,那一直让我们每一个中国人都引以为傲的“中华武术

    2023年04月26 243
  • 幼猎鹰多少级进化,漆黑的魅影十大必抓

    1.《杜玛》影片讲述了,广袤野性的南非草原。入夜,一只迷路的印度豹幼崽跌跌撞撞地闯进高速公路。幸运的是,漆黑的魅影十大必抓,彼得父子救下了它。当两父子把这个小家伙带回家时,儿子赞恩仍旧紧紧地搂着小豹仔

    2023年04月02 239
  • 变速齿轮怎么用,4399变速齿轮在哪

    4399变速齿轮在哪,在道路上不断的车辆已经成为我们生活的一部分,增加的不仅仅是车的数量,还有车的类型和设计,现在的私家车大致分为两种,手动和自动,这也是很多爱车家买车的时候纠结的地方,自动档以简单方

    2023年01月18 247
  • 西卡是谁,lol西卡个人简介

    lol西卡个人简介,直播吧1月22日讯NBA常规赛,猛龙主场104-106不敌凯尔特人。赛后猛龙球员西亚卡姆接受了采访。实际上阿丘瓦还未满24周岁,西卡说:“他的运动能力和所做的一切对我们来说真的很重

    2023年04月26 239
  • mod怎么用,游戏mod该如何安装

    明日方舟模组数据块怎么用?相信该游戏板块的小伙伴们脑瓜子嗡嗡的吧。模组数据块将会对于玩家们的战力带来更大的涨幅效果,相信大部分的小伙伴们还不够清晰了解到模组数据块的使用方法吧,游戏mod该如何安装,接

    2023年02月10 269
关注微信