KubeSphere 在直播应用中的实践

本文是上海站 Meetup 讲师唐明根据其分享内容整理的文章。

引言

目前媒体的主流传播渠道已从传统的报纸、广播、电视转向了互联网,各种视频及社交 App 成为了人们获取资讯的首选途径。苏州市广播电视总台面对互联网媒体的新形势,不断探索新形势下了信息发布方式、传播途径和相关的 IT 技术,为的是能在新的媒体战场上紧跟时代发展,不断保持领先优势。

技术路径

在 IT 架构选型上,技术团队保持对新技术的关注和实践,通过总结这些年 IT 技术的实践经验,坚信云原生才是云计算时代技术的发展方向。如果仅仅是将物理服务器虚拟化,或者将虚机从本地环境迁移上公有云,并无法完全发挥云计算高效安全可扩展的特性。所以技术团队一直坚持对容器技术进行实践。

2019 年初开始将 Kubernetes 应用于生产环境。在学习 Kubernetes 的过程中接触到了 KubeSphere,在对 KubeSphere 进行了较长时间的测试和验证后,今年开始使用 KubeSphere 管理 Kubernetes 集群。

需求分析

媒体行业最主要的业务系统就是媒体的生产制作系统。媒体生产可以分为媒体采集、媒体处理和媒体分发三个环节。

随着技术的发展,采集设备从原先的专业摄像机发展到了单反、无人机、GoPro、全景摄像机、手机等多种多样的设备均可用于视频拍摄,使得视频拍摄的数量大大增加且格式种类、编码方式、帧率等都变得纷繁复杂。此外媒体的分发渠道也不再仅仅是电视和广播,还有网站、app、公众号、短视频平台等。采集端和发布端的巨大变化对媒体处理能力提出了更高的要求。为了能处理好这些视频文件,业务系统需要提供强大对处理能力,包括视频对编解码、提取视频标签、进行智能处理等。

业务痛点

对媒体文件进行处理的工作难度很大。媒体处理系统需要能够处理海量的、不同拍摄设备、不同视频格式、不同拍摄人员所采集的媒体素材,并且需要为不同的平台提供不同长度、不同类型(横屏竖屏)、不同编码格式、不同码率、不同分辨率的成品视频文件。同时需要对这些素材和成片进行妥善得分类和管理。

于是通过自建一套容器平台,来实现这些视频处理能力。选择容器平台是因为进过评估和分析,认为容器是最适合用于处理媒体文件的技术方式。

  • 容器能极大得提高系统的资源利用率,为海量文件的处理提供计算能力;
  • 容器平台能提供很好的系统弹性,满足不同时间段不同业务需求的任务运行;
  • 容器的标准化镜像便于升级管理和维护,可满足媒体处理能力需不断进行升级;
  • 容器能实现跨云的支持,方便将部分热点业务迁移至公有云提供服务;
  • 容器平台能充分利用原有的服务器资源而不用担心硬件的兼容性和稳定性问题。

KubeSphere 应用落地

以 “慢看苏州”的直播业务为例,该业务需求是将许多点位监控摄像头信号与指定的音频进行混合,为视频配上背景音乐,再推送至直播平台。在推进这个项目的过程中也经过了几轮测试:首先使用 ffmpeg 实现了视频和音频文件的合成,但由于摄像头数量非常多,且会随时进行调整,维护大量的 ffmpeg 进程并不可行,于是通过 Docker 以容器方式启动编码任务,最终将这些容器统一运行在 KubeSphere 平台上,为一个工作负载对应一个编码任务。

KubeSphere 成效分析

KubeSphere 很方便得实现了编码任务的启动、停止、监控、调度、统计等功能,大大减少了我们运维的工作量,且能及时发现编码过程中的异常,收到了很好的效果。

这只是我们目前的一个尝试,下一步还考虑将更多的视频处理能力迁移至KubeSphere 容器平台,如视频转码、视频优化、人脸识别、语音识别、语音合成、OCR 识别、标签提取、视频水印、视频特征提取等,为媒体生产制作提供更强大的服务支撑。

本文由博客一文多发平台 OpenWrite 发布!

posted @ 2021-06-13 17:00  kubesphere  阅读(203)  评论(0编辑  收藏  举报