且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

开发网络视频直播系统过程中的那些关键点

更新时间:2022-03-28 08:09:30

“Syno Japan与媒体Carts合作在***内发起了“电竞相关认知/消费调查”,调查表示整个2018年是日本的电子竞技元年,也是***内逐渐认知电竞的一年。”由此可见,电竞在日本仅仅处于起步阶段,对于中国和韩国等地来说早已成为了大众的“生活必需品”,尤其是在网络视频直播系统带动下的游戏电竞直播,更是受到了人们的广泛关注。实际上,大多数人并不了解网络视频直播系统在开发时需要怎样的技术支持。所以,就跟大家简单地分享一下相关内容。

1.DRM管理器

对于大部分网络视频直播系统来讲,都会有一个区域:付费房间,而直播中的付费视频服务都基于DRM管理。

DRM其实很大程度上是依赖于平台和设备的。多媒体引擎中的DRM管理器,是更底层解码器中内容解密API的包装。只要有可能,它就会尽量通过抽象的方式来屏蔽浏览器,或者操作系统实现细节的差异性。DRM管理器(可选组件)一般都会和流处理引擎紧密相连,主要原因是DRM管理器经常与解码层进行交互。

2.格式转换复用器

其实网络视频直播系统在进行封包和编码方面都存在一定的局限性,比如Flash读的是FLV容器封装的H.264文件。这种情况就容易导致有些视频片段在解码之前需要进行格式转化。这样一来,就能够使用相应格式的内容来播放视频流。而多媒体引擎层面的格式转换复用器曾经受到过质疑,但是随着现代Flash和Javascript性能的提升,所带来的性能损耗几乎可以忽略不计,并且也不会对用户体验造成太大影响。

3.资源质量参数预估器

这里提到的预估器主要是提供带宽、CPU和帧率等信息,它可以从各种不同的维度获取数据,比如跳帧数和片段下载时间。并且可以将数据汇总起来用于估算用户的可用带宽值和CPU计算能力,输出时采用ABR做出判断。

4.ABR 切换控制器

为什么要把ABR(切换控制器)放到最后再说呢,因为它是多媒体引擎中最为关键的部分,也是最容易被人忽视的一部分。控制器在读取预估器输出的带宽和跳帧数等数据之后,使用自定义算法根据这些数据做出相应的判断。从而告知流播放引擎是否需要切换视频或者是音频的质量。目前遇到的最大难点就是切换频率和在缓冲风险之间找到平衡,比如太频繁的切换可能会导致用户拥有一个糟糕的网络视频直播体验。

对于网络视频直播系统而言,带宽、跳帧数、延时和卡顿等问题都是影响用户体验非常重要的指标。要想在互联网领域获得长久发展,就要从开发过程中去避免和解决影响用户体验的问题,只有这样才能真正的适应用户需求,从而建立起优质的网络视频直播系统。


原文首发地址:https://blog.csdn.net/fmscms/article/details/88551292