注意!一对一聊天系统中你所不知道的秘密
时间:2022-05-08 21:21:02 | 来源:行业动态
时间:2022-05-08 21:21:02 来源:行业动态
一对一聊天系统作为直播系统中的“明星产品”,受到了众多软件开发商的喜爱和追捧。它区别于直播系统,具有私密性强互动性高的突出特点。但是在开发过程中,并不是每个人都十分了解关于现代多媒体处理引擎中各个组件的细节,所以今天来简单的分享下这方面的知识内容。
1. 解析器和声明文件解释
基于HTTP的视频流中,很多都是从描述文件开始的。声明文件中一般包括媒体服务器所需要细节的元信息,即视频质量、语言字母等。解析器从XML文件中获取描述信息,然后再从这些信息中获取正确的视频信息,由于媒体服务器的类型很多,并不是所有的都能正确实现,所以解析器有时候可能需要去处理一些额外的实现错误。但是如果提取了视频信息,解析器就会从中解析数据,并用于构件流式的视觉图像且同时知道如何获取不同的视频片段。在一对一的直播流场景下,解析器必须以周期性的方式重新获取声明文件,以此获得最新的视频片段信息。
2. 下载器
即包装处理HTTP请求原生API的模块。不仅可以用于下载多媒体文件,而且必要的时候也可以用于下载声明文件和密钥。下载器在处理网络错误和重试方面拥有着十分重要的位置,而且还能收集当前环境可用的带宽数据。一般使用HTTP协议。
3. 流播放引擎
流播放引擎是解码器和API交互的中央模块,不仅能将不同的多媒体片段导入编码器,而且还能处理多码率的切换和播放时的差异性,比如卡顿时自动跳帧或视频切片之间的差异。
4. 资源质量参数预估器
预估器可以从不同的维度来获取数据,比如跳帧数或视频片段的下载时间。可以将这些汇总起来用于估算用户的可用带宽和CPU的计算能力。
5. ABR切换控制器
这是多媒体引擎中最为关键的也是我们最容易忽视的部分。它可以读取预估器中输出的带宽和跳帧数,根据自定义算法对数据做出判断,决定播放引擎是否需要切换视频的音频或质量。其中比较困难的点就是频繁切换容易导致用户产生很差的使用体验。
6. DRM管理器
目前大部分的付费视频服务都是在DRM管理的基础上,且依赖于平台设备。而多媒体引擎中的DRM管理器是更底层解码器中解密API的包装。它会尽量屏蔽浏览器或操作系统去实现细节的差异性,这个管理器一般会跟流媒体引擎链连接在一起。
7. 格式转换复用器
每个平台在编码和封包方面都有一定的局限性,这一特性容易导致有些视频片段需要在解码之前就进行格式转换。比如hls.js可以使用MSE的格式播放HLS的视频流。但是随着现代flash性能的提升,它所带来的性能损耗并不会给用户带来糟糕的使用体验。
由此我们可以看出,在一对一聊天系统中多媒体引擎也是具备很多不同的特点和组件的。而如果想要构建出能够兼容各个平台的播放器,提供能自由替换的多媒体引擎也是十分重要的。
本文声明原创,转载请注明出处。