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 发布!
KubeSphere 在直播应用中的实践的更多相关文章
- 直播推流端弱网优化策略 | 直播 SDK 性能优化实践
弱网优化的场景 网络直播行业经过一年多的快速发展,衍生出了各种各样的玩法.最早的网络直播是主播坐在 PC 前,安装好专业的直播设备(如摄像头和麦克风),然后才能开始直播.后来随着手机性能的提升和直播技 ...
- 手游录屏直播技术详解 | 直播 SDK 性能优化实践
在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...
- Golang在视频直播平台的高性能实践
http://toutiao.com/i6256894054273909249/ 熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- 05-雷海林-mysql备份原理与在TDSQL中的实践
05-雷海林-mysql备份原理与在TDSQL中的实践 下载地址: http://files.cnblogs.com/files/MYSQLZOUQI/05-%E9%9B%B7%E6%B5%B7%E6 ...
- ceph在品高云中的实践
ceph简介 ceph是业界目前人气最高的开源存储项目之一,关于其定义在官网是这样的:"Ceph is a unified, distributed storage system desig ...
- 京东云罗玉杰:OpenResty 在直播场景中的应用
2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,京东云技术专家罗玉杰在活动上做了< OpenResty ...
- 一致性Hash算法在数据库分表中的实践
最近有一个项目,其中某个功能单表数据在可预估的未来达到了亿级,初步估算在90亿左右.与同事详细讨论后,决定采用一致性Hash算法来完成数据库的自动扩容和数据迁移.整个程序细节由我同事完成,我只是将其理 ...
- 华为云对Kubernetes在Serverless Container产品落地中的实践经验
华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机 ...
- React 与 Redux 在生产环境中的实践总结
React 与 Redux 在生产环境中的实践总结 前段时间使用 React 与 Redux 重构了我们360netlab 的 开放数据平台.现将其中一些技术实践经验总结如下: Universal 渲 ...
随机推荐
- 人形机器人操作系统(开源) —— FreeRTOS
地址: https://www.freertos.org/zh-cn-cmn-s/index.html
- NVIDIA具身机器人实验室 —— GEAR —— Generalist Embodied Agent Research —— NVIDIA机器人实验室
相关: https://www.youtube.com/watch?v=jbJPG2H8hn4
- HP笔记本电脑——暗夜精灵2pro继电池鼓包后出现无法充电的问题,最后电量显示:0%可用(电源已接通,未充电)
问题如题,最近使用暗夜精灵2pro笔记本(自己17年5月1节日购买)使用了四年,使用了第二年的时候出现电池鼓包问题于是自己花了不到200元在某宝上购入电池进行替换同时更新bios,正常使用到今年8月2 ...
- 美国空军未来利用AI控制无人僚机执行空战或对地作战任务成为可能——AI算法强化学习控制无人机执行空战或对地作战成为可能
来源: https://export.shobserver.com/baijiahao/html/640202.html https://baijiahao.baidu.com/s?id=177346 ...
- pip install --user 使用方法和注意事项——python中安装module库到用户packages路径中
pip install --user 是python中安装module库到用户packages路径中的方法. 参考: https://blog.csdn.net/The_Time_Runner/a ...
- GAN总结
GAN总结 本篇文章主要是根据GitHub上的GAN代码库[PyTorch-GAN]进行GAN的复习和回顾,对于之前GAN的各种结构的一种简要的概括. Code 关于评价GAN模型的标准 Incept ...
- RabbitMq高级特性之延迟队列 通俗易懂 超详细 【内含案例】
RabbitMq高级特性之延迟队列 介绍 消息进入队列后不能立即被消费,到达指定时间后才可被消费 实现 结合以下两种即可达到延迟队列 RabbitMq高级特性之TTL过期时间 RabbitMq高级特性 ...
- dubbo序列化问题(三)子类覆盖父类字段hession反序列化获取不到
转
在进行dubbo开发中遇到一个问题,当是用hession2进行序列化时,子类和父类有相同的字段时,hession2反序列化获取不到该字段数据,如下: import java.io.Serializab ...
- C#反射在数据库操作中的应用(反射属性,反射字段)
这几天学习反射的应用,今天把其应用到数据操作中 现记录学习笔记 环境为: 编译器:vs2017 数据库:access 反射类型为:字段 1先在类文件的定义是用哪种数据库,和用字段还是属性来反射 本例是 ...
- Ubuntu 设置远程桌面(RDP)
安装桌面环境 如果你的 Ubuntu 还没有安装桌面环境,可以选择以下之一安装: GNOME GNOME 是 Ubuntu Desktop 原生桌面环境. # 安装基本的 GNOME 桌面环境 sud ...