写点什么

央视在世界杯高清直播中占了 C 位 它是怎么做到的?

  • 2018-06-27
  • 本文字数:2991 字

    阅读完需:约 10 分钟

世界杯直播你看了吗?央视网、央视影音的清晰度及流畅度是不是给你留下比较深刻的印象?我们先看下网友们的反馈:

央视作为本次世界杯的版权方和内容分发方,对于本次世界杯直播的支撑服务有着极高的技术要求。而央视网最终也是选择了腾讯云的视频云极速高清产品,来为其全国用户提供流畅稳定的高清直播服务。

从效果来看,极速高清服务在央视网正式上线运营后表现确实不错,在世界杯开赛后与其他平台用户体验也形成了比较鲜明的对比,一改过往用户对央视大型赛事直播的看法。

本文从极速高清的工作原理出发,详细介绍腾讯云的深度学习技术如何对世界杯直播场景进行优化,其中还有腾讯云如何在 PK 中胜出、如何在一周内完成央视网极速高清服务私有化部署等不为人知的故事。

腾讯云极速高清:深度学习效能如何最大化?

普通转码主要存在的质量问题有:转码失真、低分辨率模糊、镜头抖动、噪声大、低码率锯齿块等。

极速高清服务是腾讯云视频云新推出的智能动态编码技术,主要原理就是通过深度学习,对直播视频流进行智能处理,从而以更低的带宽成本给用户提供更高清的视频直播流。主要通过以下几个模块协作完成。

  • 视频场景智能分类

首先通过深度学习的方法,形成包含游戏,体育,秀场,户外,动漫,美食,影视剧等在内的十几个主流大类及几十个小类场景模型库。极速高清服务开始期间,对实时直播流进行检测分析,并匹配对应场景模型。在匹配率方面,较明显的场景如游戏,足球,篮球,动漫等,CNN 网络模型匹配准确率达到 98% 以上;在电视剧,户外运动,美食,旅游等画面特征分散、帧间运动变化较大的场景下,CNN+RNN+LSTM 做时域及空间域的分析,准确率也在 85% 以上。

  • 编码参数匹配

根据第一步场景分类实时识别结果,接下来结合视频源码率、帧率、分辨率、纹理和运动变化幅度等情况,以及综合机器负载和画质效果等维度,选择最优编码参数。

  • 前置处理

根据不同场景分类、客户对视频画质的不同要求,以及结合视频源画面纹理和实时运动检测结果进行锐化、软模糊、反交错、去块、降噪、色阶补偿、降帧等前置处理。

  • 编码动态优化

腾讯云极速高清服务针对不同视频类别,或者同一个视频内的不同视频段,应用完全不一样的编码参数。其中包括但不限于:IBP 帧类型、量化参数 QP、分辨率等;而且支持编码参数按帧实时更新生效。

  • 码率智能控制

由于不管是标准 H.264/JVT-G012 码率控制算法还是 x264 的码率控制算法,在运动变化切换比较明显的场景下,预编一次得到率失真理论凸曲线都是尽可能接近最优失真曲线,对于运动场景实时检测切换比较明显的场景帧,我们会在 x264 码率控制的基础上,综合帧时序信息做一些补偿因子和画质控制,使得主观观看得分 VMAF 值会有 3-5 分以上的提高。

图注:极速高清在 VMAF 得分相同情况下,码率控制更低更精准。

  • detail reduce

针对 h264 视频编码格式,我们设计了一种在视频残差的频域上消除噪声的算法。该算法结合了当前编码宏块的残差大小,宏块的 QP 值,历史的频域值等,并根据不同场景选择匹配的 video denoise 模板,自适应地进行宏块级的视频处理,能够以极低的 CPU 消耗对噪声宏块进行优化,同时保留清晰宏块的完整性。

  • ROI 处理

SIFT+ 差分图像 + 运动目标图像检测或用户指定 (如台标、水印) 关注 ROI 区域,对该区域的宏块编码进行强化 (放大 / 缩小量化步长)、锐化、色阶补偿等处理,如央视网世界杯就要求对台标和字幕区域画质和亮度增强。

腾讯云视频云主要通过以上模块协作处理在云端开启腾讯云极速高清服务。

从模拟到切量:500+ 场的世界杯赛前预演

今年春节后,腾讯云极速高清服务开始陆续接入一些头部游戏直播平台,但针对体育赛事特别是足球赛事的客户,我们一直没有接触到。世界杯前我们针对足球赛事场景做了一次系统化的机器学习以及视觉效果优化评估,以便为即将到来的世界杯做好准备。

  • 预演:机器学习和视觉调整

我们通过网络爬虫收集到 500 场足球比赛视频,针对每场比赛视频,在高速运动场景,足球跟随模型训练,长远镜头优化,精彩回放 ROI 区域增强,观众表情捕捉等细节上,做出视觉效果分析以及优化效果评估,以便打造世界杯最优动态编码模型。

  • 中超:试水极速高清服务

虽然我们一直在自己优化足球赛事的动态编码模型,但一直缺少真实的落地用户,此时内心还是有些忐忑的。大约 4 月中旬的时候,我们向龙珠直播的中超比赛主动推广了极速高清服务,并针对中超的一些比赛逐步增加了极速高清服务,虽然开始的时候出现过一些问题,但后来逐步优化后,效果可以满足客户需求。

  • 英超:切量大幅推广

经过前期在龙珠中超比赛中的实践,我们心里基本有底,后期开始主动寻找一些体育赛事客户。新英体育作为英超在大陆的版权方,在英超比赛方面基本一家独大(而且英超的比赛节奏要远远快于中超,这一点跟世界杯的场景会更加匹配,我们对新英体育进行了极速高清服务的推广,在多轮的测试及优化下,最后客户验证通过。

看不见的 PK:几十次服务升级和优化

央视作为整个视频云行业都极其看重的客户,是各家云厂商的必争之地。此次世界杯前,央视决定在世界杯期间引入提升比赛清晰度的新技术后,各云服务厂商都提供了自己的解决方案。经过几轮测试,央视网最终决定在腾讯云和某云厂商之间选择一家,由于世界杯已经临近,对于我们来说是极大的考验。在与对手的 PK 过程中,我们在码率控制、去模糊、去块、反交错、运动搜索和分块决策等模块上共进行了几十次的服务升级和优化,经过一轮又一轮的 PK,央视网最终选择了腾讯云。

图注:极速高清在 VMAF 质量稍微有优势情况,码率比友商少 8%-10% 左右。

我们是如何在一周内完成私有化部署的?

虽然在技术指标侧我们胜出,但由于世界杯的特殊性及紧迫性,且客户暂时没有相匹配的服务器等硬件资源,所以需求就变成了:自带机器私有化部署。其实前期我们与客户沟通的过程中,“私有化部署”一事我们是清楚的,也在着手准备着。但此时时间紧迫,面对“服务器自带”,“交换器自带”,“运维人员自备”等需求,留给团队准备的时间着实太少。但我们绝不想功亏一篑,况且服务好本次世界杯的高清直播,对用户,对客户,对腾讯来说都是极其重要的一件事。经过紧急协商,我们拿出了新的私有化方案。

  • 升级后私有化部署目标

在央视网搭一整套腾讯云极速高清转码集群,支持央视网世界杯期间 CCTV5 频道直播,RTMP/FLV 推拉源流,转码处理后支持央视 RTMP/FLV/HLS 拉流。

  • 升级后私有化机器部署

客户机房只有机架资源,考虑到如果让客户准备相关硬件资源,集团走采购申请的周期太长。若按常规流程,来不及服务此次世界杯。所以转码机器我们从公司外借 10 台 M10,其它相关辅助设备如:交换机、光模块、光纤、网线等也经过了相关同学通力协作,进行了分头采购。在进行服务器等硬件部署时,开发及架构师同学甚至亲自布线、拧螺丝。(这才是真正的全栈工程师)

开场哨响 我们比球员还紧张

最终,在世界杯开赛前我们兼容了客户硬件设备以及软件代码模块的各种适配要求,接下来就是实战的考验了。

第一天比赛开始前,大家心里都还很紧张,之前一切的努力如果在直播开始后出现问题,那都将付之一炬。开赛后,我们紧张地盯着屏幕:各项服务指标一切正常,出流效果超出预期,播出效果对比其他平台优势明显。第一天的比赛后,我们也从客户那里获得了极高评价,外部用户的反馈也让我们心里的石头落了地。但是,比赛才刚刚开始,为期一个月的世界杯,我们也会在看不见的地方继续战斗!

本文作者:腾讯云高级产品经理 李海琦

2018-06-27 16:583393

评论

发布
暂无评论
发现更多内容

新华三亮相未来网络发展大会 共启国家重大科技基础设施(CENI)开放合作

科技热闻

工信部发文将整治涉诈电话卡:打击网络诈骗必须釜底抽薪

石头IT视角

夏未至,春还在|靠谱点评。

无量靠谱

我看JAVA 之 线程同步(上)

awen

Java synchronized 管程

区块链电子印章平台--加速政务数字化

13530558032

一文带大家,认识DPDK基础,踏上网络高级编程之路

奔着腾讯去

c++ 计算机网络 TCP/IP 网络层 网络io

分布式事务框架seata落地实践

有道技术团队

分布式 大前端

GraphQL 入门指南

PingCode研发中心

开发者 graphql

也许已没有也许|靠谱点评

无量靠谱

Gson的快速使用

卢卡多多

json Gson 6月日更

如何做好业绩管理?

石云升

职场经验 管理经验 6月日更

珠宝正品溯源平台,区块链珠宝溯源方案

13530558032

Flink Checkpoint 和 Large State 调优

Alex🐒

flink 翻译 flink1.13

从最难的而立之年走来,三十而已 —— 2021 年中总结

清秋

成长与思考 年中总结

Flink State 和 Fault Tolerance(四)

Alex🐒

flink flink1.13

联邦计算在百度观星盘的实践

百度开发者中心

百度 联邦计算

Swift在淘系的工程化应用和实践

阿里巴巴大淘宝技术

swift 大前端 编程语言 WWDC21

线程与线程池的那些事之线程池篇(万字长文)

秦怀杂货店

线程 线程池 并发

百度大规模Service Mesh落地实践

百度开发者中心

百度 service

百度后端二面有哪些内容,万字总结(一)

李阿柯

MySQL 面试 索引结构 索引优化

原以为哈夫曼树、哈夫曼编码很难,结果大佬用6张图就讲明白了

Java架构师迁哥

Redis入门三:事务

打工人!

redis 事务 6月日更

微信小游戏直播在Android端的跨进程渲染推流实践

JackJiang

微信 即时通讯 直播技术

进击的云原生,为开发者提供更多可能性

阿里巴巴云原生

如何打造一支让人躺平的研发团队?招招让你起不来!

菜根老谭

内卷 躺平

如何在 Vue 的计算属性中传递参数

devpoint

Vue vue2 6月日更

从字节跳动到火山引擎(三):替换 Spring Cloud,使用基于 Cloud Native 的服务治理

字节跳动 微服务 云原生 Spring Cloud 火山引擎

slate-angular 正式开源

PingCode研发中心

angular.js 开源 angular

5分钟速读之Rust权威指南(二十六)Drop

wzx

rust

网络攻防学习笔记 Day51

穿过生命散发芬芳

网络攻防 6月日更

欧洲杯与618:“夏季限定”MVP诞生记

脑极体

央视在世界杯高清直播中占了C位 它是怎么做到的?_语言 & 开发_李海琦_InfoQ精选文章