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

本文涉及的产品
视频直播,500GB 1个月
简介: “Syno Japan与媒体Carts合作在日本国内发起了“电竞相关认知/消费调查”,调查表示整个2018年是日本的电子竞技元年,也是日本国内逐渐认知电竞的一年。”由此可见,电竞在日本仅仅处于起步阶段,对于中国和韩国等地来说早已成为了大众的“生活必需品”,尤其是在网络视频直播系统带动下的游戏电竞直播,更是受到了人们的广泛关注。

“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

相关文章
|
7天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
25 2
|
29天前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
105 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
6天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
21天前
|
监控 安全 测试技术
网络信息系统的整个生命周期
网络信息系统规划、设计、集成与实现、运行维护及废弃各阶段介绍。从企业需求出发,经过可行性研究和技术评估,详细设计系统架构,完成设备安装调试和系统集成测试,确保稳定运行,最终安全退役。
32 1
网络信息系统的整个生命周期
|
7天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
35 3
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
34 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
21天前
|
机器学习/深度学习 存储 运维
图神经网络在复杂系统中的应用
图神经网络(Graph Neural Networks, GNNs)是一类专门处理图结构数据的深度学习模型,近年来在复杂系统的研究和应用中展现了强大的潜力。复杂系统通常涉及多个相互关联的组件,其行为和特性难以通过传统方法进行建模和分析。
44 3
|
21天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
XML 开发工具 Android开发
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
ExoPlayer最初是为了解决Android早期MediaPlayer控件对网络视频兼容性差的问题而推出的。现在,Android官方已将其升级并纳入Jetpack的Media3库,使其成为音视频操作的统一引擎。新版ExoPlayer支持多种协议,解决了设备和系统碎片化问题,可在整个Android生态中一致运行。通过修改`build.gradle`文件、布局文件及Activity代码,并添加必要的权限,即可集成并使用ExoPlayer进行网络视频播放。具体步骤包括引入依赖库、配置播放界面、编写播放逻辑以及添加互联网访问权限。
136 1
FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
|
1月前
|
物联网 5G 调度