本文是上海站 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 在直播应用中的实践的更多相关文章

  1. 直播推流端弱网优化策略 | 直播 SDK 性能优化实践

    弱网优化的场景 网络直播行业经过一年多的快速发展,衍生出了各种各样的玩法.最早的网络直播是主播坐在 PC 前,安装好专业的直播设备(如摄像头和麦克风),然后才能开始直播.后来随着手机性能的提升和直播技 ...

  2. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

  3. Golang在视频直播平台的高性能实践

    http://toutiao.com/i6256894054273909249/ 熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量 ...

  4. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

  5. 05-雷海林-mysql备份原理与在TDSQL中的实践

    05-雷海林-mysql备份原理与在TDSQL中的实践 下载地址: http://files.cnblogs.com/files/MYSQLZOUQI/05-%E9%9B%B7%E6%B5%B7%E6 ...

  6. ceph在品高云中的实践

    ceph简介 ceph是业界目前人气最高的开源存储项目之一,关于其定义在官网是这样的:"Ceph is a unified, distributed storage system desig ...

  7. 京东云罗玉杰:OpenResty 在直播场景中的应用

    2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,京东云技术专家罗玉杰在活动上做了< OpenResty ...

  8. 一致性Hash算法在数据库分表中的实践

    最近有一个项目,其中某个功能单表数据在可预估的未来达到了亿级,初步估算在90亿左右.与同事详细讨论后,决定采用一致性Hash算法来完成数据库的自动扩容和数据迁移.整个程序细节由我同事完成,我只是将其理 ...

  9. 华为云对Kubernetes在Serverless Container产品落地中的实践经验

    华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机 ...

  10. React 与 Redux 在生产环境中的实践总结

    React 与 Redux 在生产环境中的实践总结 前段时间使用 React 与 Redux 重构了我们360netlab 的 开放数据平台.现将其中一些技术实践经验总结如下: Universal 渲 ...

随机推荐

  1. 【转载】SLAM领域的优秀作者与实验室汇总

    原地址: https://blog.csdn.net/m0_37874102/article/details/114365837 总结一些之前看过的SLAM(VO,VIO,建图)文献所发表的实验室和作 ...

  2. 论文写作:写回复意见时的套话 (reviews and comments)

    Typos, Grammar, and Citation Errors: We acknowledge the need for a thorough proofreading to rectify ...

  3. python网络连接报错:ValueError("Unable to determine SOCKS version from %s" % proxy_url) ValueError: Unable to determine SOCKS version from socks://192.168.1.100:1080/

    python应用proxy网络连接报错: return super().send(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...

  4. 是忧是喜?——微软撑腰,奥特曼重回OpenAI任CEO —— 争论点:AI发展规范化是否会损害美国在AI领域的领先地位 —— AI发展是否需要规范化

    参考: https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_1027953478745543 ...

  5. 对国产AI计算框架要有一定的包容力——记“mindspore”使用过程中的“不良反应”

    看mindspore的官方文档,居然有502错误,恶心到了: 打开Eager模式的链接,报错:

  6. MD5签名生成,字典排序,实际生产

    1.背景 作用:防止请求参数篡改,限制请求时效性: 常用方式:md5签名 关键:签名Key 常用签名原串排列:字母顺序.key1=value1&key2=value2....key (注意:签 ...

  7. (七)Redis 持久化 AOF、RDB

    Redis 一旦服务器宕机,内存中的数据将全部丢失,从后端数据库恢复这些数据,对数据库压力很大,且性能肯定比不上从 Redis 中读取,会拖慢应用程序.所以,对 Redis 来说,实现数据的 持久化 ...

  8. FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向

    ​IT寒冬之下,程序员这个职业不再像以往那么吃香,尤其是APP开发的门槛越来越高,使得安卓程序员不得不求变,如果不在技术上及时转型提高,逆水行舟未来不可期呀. 有鉴于此,博主整理了几个可供安卓程序员的 ...

  9. Windows中Powershell中的 rm -rf 等效命令

    Remove-Item  -Recurse  -Force  <要删除的目录> 可以简写为: rm -r -fo  <要删除目录>

  10. Win32 API 读取文件

    昨天又用Win32来读取文件的时候,又出现了字符编码的问题. 用TCHAR字符来写文件呢,用系统的记事本打开是乱码. 用CHAR字字符来写呢,在读取汉字的时候后面有一串乱码, 用CHAR[]数组读取就 ...