作者:穿着拖鞋的中年男子 | 来源:互联网 | 2023-07-06 06:08
直播依靠的是强大的数据处理与分发能力,所以市面上所有的直播平台需要利用各大运营商建立自己的CDN网络,或购买第三方的CDN加速网络。也可以说解决了直播平台搭建中的数据处理与分发,就解决了直播系统的开发。
常见视频处理功能1. 美颜
都说「80%的主播没有美颜根本没法看」,美颜是直播产品中最常见的功能之一。美颜的主要原理是通过「磨皮+美白」来达到整体美颜的效果。磨皮的技术术语是「去噪」,也即对图像中的噪点进行去除或者模糊化处理,常见的去噪算法有均值模糊、高斯模糊和中值滤波等。当然,由于脸部的每个部位不尽相同,脸上的雀斑可能呈现出眼睛黑点的样子,对整张图像进行「去噪」处理的时候不需要将眼睛也去掉,因此这个环节中也涉及到人脸和皮肤检测技术。
2. 视频水印
水印是图片和视频内容中常见的功能之一,它可用于简单的版权保护,或者进行广告设置。出于监管的需求,国家相关部门也规定视频直播过程中必须打上水印,同时直播的视频必须录制存储下来保存一定的时间,并在录制的视频上打上水印。
视频水印包括播放器水印和视频内嵌水印两种方式可供选择,对于播放器水印来说,如果没有有效的防盗措施,对于没有播放鉴权的推流,客户端拿到直播流之后可以在任何一个不带水印的播放器里面播放,因此也就失去了视频保护的能力。综合考虑云端录制对于水印的需求,我们一般会选择「视频内嵌水印」的方式打水印。
直播 CDN 分发网络(网络架构)
主播推流模式
1. 主播推流到上行边缘节点
2. 上行边缘节点将流推到汇聚核心。在有些环境中,上行边缘节点到汇聚核心网络状况并不好,这时候需要多走一层中转
3. 汇聚核心收到流后,和 CDN 一样,不需要主动将流分发到边缘(需要预热的情况除外),一些转码,水印,录制类业务一般在汇聚核心完成
回源拉流模式
1. 当用户在访问到汇聚核心后,汇聚核心向一个回源节点拉流,回源节点向客户源站拉流
下行观看流程
1. 观众到边缘节点拉取直播流
2. 边缘节点上如果有流,直接发送给观众,如果没有流则会向上一级回源
3. 上一级节点可能是中转节点,也可能是汇聚核心。一般会在两种情况下选取是否走中转节点:下行边缘到汇聚核心链路质量;汇聚核心处理能力(中转节点和下行边缘一样有 Cache 的能力,可以做回源收敛)
下行观看流程和传统 CDN 类似,会有直播数据 Cache,由于实效性问题, Cache 时间一般是直播最近几秒的数据,一般多采用内存 Cache 的方式。因此直播业务的回源率比传统 CDN 要高很多。