写点什么

网易视频云:从处理流程到细节优化,解读点播直播背后的技术

  • 2016-12-08
  • 本文字数:4043 字

    阅读完需:约 13 分钟

编者按

2016 年被视为直播元年,根据相关数字显示,目前中国互联网约有二百多款直播 App 和四百多家直播平台。其实,视频编码的研究由来已久,互联网规模化的视频服务也已经十余年。在 Vimeo 和 YouTube 正式成立前,最早的视频网络服务雏形可以追溯到 1997 年的一个网站。

网易第一个产品广为熟知是 2010 年的“全球名校视频公开课栏目”,首批上线有 1200 集课程,网易称其视频的技术积累已有十五年;如今,网易向外推出了视频云服务,支持点播和直播两种模式,其中直播又分为单向直播和互动直播。那么,网易视频云背后的技术沉淀是怎样的?除了传统的点播,如何应对新时代的直播业务?如何应对移动互联网等技术背景环境的变化?又怎样看待 VR、AR 浪潮对视频界的冲击?带着这些问题,InfoQ 采访了网易杭州研究院视频技术专家郭再荣先生,本文整理自采访内容。

嘉宾简介

郭再荣,网易杭州研究院视频技术专家,武汉大学通信专业硕士。十年音视频行业开发经验,从事视频编解码算法研发。在网易负责带领网易视频云音视频技术研发团队,主导音视频转码系统、实时视频通话引擎、流媒体服务器和网易视频云平台的研发工作。擅长音视频编解码器、视频加密、视频点播、互动直播服务的开发。

互联网视频产品始于六年前

在视频技术方面,网易最早开发视频点播服务、播放器、后台转码工具,主要用于网易系内部产品,比如网易门户网站视频、公开课、云音乐等产品,属于产品内部研发团队。后来随着需求的逐步增大,我们逐渐把把这些公共技术提取出来,整合成通用的平台工具,并服务于网易有视频需求的产品。

在视频转码系统的开发方面,前期我们已经累积了丰富的经验,经过不断的改进优化,已经逐渐形成了一套分布式转码集群:支持同步和异步的转码任务,负责多媒体数据的处理,这目前已经成为视频云产品的核心底层系统。同时,在提供视频点播服务中累积了丰富的流媒体分发网络方面的经验,包括中心调度策略、分发节点的选择、节点的加速传输方面的优化等,这套系统就是现在视频云产品的 CDN 分发网络的前身。

视频的处理流程及架构总览

通常而言,按时间的横向视频处理流程,一个视频从在客户端上传,到最后播放在另外一个播放器中,经历的流程如下:

视频的构架主要包括音视频采集、预处理、编码、传输、服务端处理、解码等步骤。

网易视频云视频处理包括推流端的预处理,服务端转码处理,播放器端的后处理几个部分,如下图所示。

点播 VS 直播的流处理

我们网易视频云目前为需求者提供点播和直播服务,同时包含互动直播服务,也提供视频转码和视频处理服务。对于视频云平台来说,拥有庞大的流媒体分发网络、强大的转码系统、海量分布式存储服务、功能完善的全平台 SDK 包非常重要。

在点播和直播的异同点上,我们通过如下构架图来表示,其实主要区别是视频源的生产方式不同,流媒体分发网络是一样,播放器端是一样,另外点播需要存储系统,而转码两者都可以有,具体要看各自的应用场景。

算法、硬件和网络三个维度

首先,网易视频云对音视频算法进行了深度优化。对于互联网视频,最重要的就是在保证视频同等质量的情况下,进行码率压缩。这样,在网络不佳时,尽量保证流畅;在网络抖动时,减少对播放带来的影响。除了压缩之外,对于近来兴起的直播业务,还需要对视频预处理。

在对音视频数据压缩编码时,要进行一些预处理,同时编码算法上尽量保证码率平滑。先来谈谈对于音频处理:从麦克风采集的音频,一般是 PCM 格式,视频从摄像头抓取图像,也可以抓取屏幕图片,一般是 YUV 格式。而采集到的原始音视频体积非常大的,需要经过压缩技术处理来提高传输效率。当有混音需求时,也可以通过采集声卡的音频数据,然后再跟麦克风的声音进行混音。对于采集的音频一般先要进行降噪处理,因为在户外环境下,噪声会比较明显。如果涉及到互动直播,在双向通话的情况下,还需要对音频进行回声抑制处理,防止出现回声效果。

再谈谈图像处理,对于直播业务:我们对于采集的图像会进行特效滤镜处理,比如黑白、黄昏、提亮、美颜等,但是这些处理非常耗费性能,一般都需要用 OpenGL ES 来实现,同时也可以进行图像叠加,比如给主播加个帽子,或者为了保护版权,加个水印图片。在播放器显示的时候也可以在头像上做一些处理,比如全屏的时候图像拉伸、填黑边、裁剪,也可加上走马灯,进行版权保护。再举例说明,比如在实时监控的场景中,要实现对于局部画面的实时放大;相对于直播中的预处理,这类操作属于后处理范畴。算法层面的加工主要有三点:预处理、后处理和编码。

其次,在硬件上面,客户端是依赖于用户已有的设备,我们的发力点是在服务器端。网易视频云有分布式转码集群,并采用软件和硬件结合的转码方式,对应到芯片依赖类别上则是 CPU 和 GPU,权衡两者结合使用:对于大并发的任务,利用 CPU 资源进行软件转码模式;而对于高实时性要求的任务就利用 GPU 资源进行硬件转码模式,特别是对于高清视频的转码,能达到更快的转码速度。结合直播应用而言,虽然依靠 CPU 计算的软件转码可以实时得到结果,但是这会造成资源的浪费。

另外,视频云自建流媒体分发网络,在全国部署了接流源站和分发节点,资源节点数量达到 500 个以上,并利用自有的智能调度系统,保证直播的流畅性;同时网易也自建了海外专线,保证海外数据流回到国内时走专门优化的链路,确保流畅度。

应对移动网络干扰

不管是直播还是点播服务,都存在一个端到端的数据传输链路问题。我们采用智能调度策略来解决这个问题,就是根据客户端的网络类型、地域、出口 IP 等信息,选择最优节点给客户端。最优节点的方案有两种:

  • 一种是根据客户端的 DNS 域名来选择就近的节点,当 DNS 配置有误的时候,可能会存在调度不准的问题。

  • 另外一种是根据客户端的出口 IP 来选择节点,这种调度方式会比较准确一些。同样对于播放器端也是采用类似的方式来选择流媒体服务器集群的边缘节点,另外也可以用 HTTP 302 跳转的方式来优化播放链路。

具体对应到两种播放模式的处理上:

对于点播来说,可以对同一个视频源部署多条流,即不同分辨率和码率的视频源,这样用户在观看的时候可以切换选择。

对于直播来说,视频云也提供实时转码功能,可以转码出多条不同分辨率和码率的直播流,这样用户在观看的时候可以切换选择。

视频界的发展历程及未来挑战

音视频编码既要尽可能地对文件压缩,同时又追求最高的音频和图像质量,还要能有更少的计算量,这三个目的指标是相互矛盾的。

从事视频编码近十年,在我看来:音视频编码标准正变得越来越复杂,能达到的音频和图像的质量也更好,压缩率也有较大提高,但是对应的算法计算量也越来越大,比如目前发展势头很猛的 H.265 标准。这一切的发展都是基于硬件设备性能越来越强大,可以承受更多的计算量。现在的手机 CPU 都能做 2K 的实时编码;若采用专有硬件编码芯片,那么性能就会更好。编码标准发展了,同等编码质量下的码率降低了,特别对于网络视频服务来说,用户观看视频更加流畅清晰了,企业的带宽成本也降低了。

在直播快速发展的同时,VR、AR 已经非常火爆,结合两者也是将来视频发展的趋势。但是在我看来,视频 VR 直播目前还有几大难点:包括采集设备、图像拼接算法、视频编码器、画面显示设备等。而目前的 VR 技术是从实验室刚开始转入应用的阶段,很多地方不完善,尤其是体验效果不佳、会让人感觉晕眩。此外,如果想要实际应用到网络视频,必须过了传输这关。VR 视频的分辨率非常高,至少 2K 以上,否则效果会比较差。多幅图像拼接之后,编码的码率就会非常高,一般在 10Mb 以上,互联网的传输也会有问题。因此,现在最多的也是一些离线的 VR 展示。另外,现在优质的采集和显示设备也比较贵,还达不到平民级的消费。目前还是在发展中,当然这是视频将来的方向。

其他问答

InfoQ:目前网易视频云对H.265 编码技术的研发是处于什么阶段?

郭再荣:H.265 的编码的研发目前仅限于内部,自编自解是没有问题的。但是 H.265 的解码技术在业内还没有普及,对于 web 播放器或者第三方播放器很可能无法播放。

不过 H.265 肯定是将来的趋势, 因为在画面越来越清晰之后,对于编码会造成很大的压力,同时带宽的需求压力也会上升。举例说明,如果使用 H264 编码需要至少 1.5M,使用 H.265 编码预计 1M 左右即可达到同样的效果。

InfoQ:用户是否可以在不同端之间切换观看?如果是的话,怎样做到内容的播放点的同步?

郭再荣:播放点的同步需要用 PTS 来做,首先切换流的时候,播放器要记住前一次的播放点的 PTS,然后再往前几秒发送切换流的 seek 请求,服务器会从一个关键帧开始发送数据,播放器定位到前一个 PTS 点,再开始播放,这样就可以做到同步。原理就是同一个视频源的多条流的 PTS 是一致的。

InfoQ:网易视频云进行了 WebRTC 协议框架的全方位支持。可否从技术角度分析下,什么样的直播场景中比较适合采用 WebRTC?

郭再荣:这里需要提及下我们的两种直播方式:单向直播、互动直播。我们首先完善了实时视频通讯系统,支持单向直播,在其基础上扩展多路混屏,旁路直播等功能。WebRTC 技术推荐适用于互动直播的场景。单向直播其实也可以采用 WebRTC 技术;不过一般而言,基于 RTP 传输技术能够保证更好的流畅度,特别是在网络环境比较差、丢包相对严重的情况下。而互动直播对低延时要求比较高,要实现多人通话,肯定是需要 WebRTC 技术,因为传统的 rtmp 直播技术,延时比较大。想利用浏览器直接进行实时音视频通信,或者进行直播服务,必须要采用 WebRTC 技术,这是他最大的一个优点,而且无需安装任何插件。

InfoQ:视频处理、图像处理中多大程度地应用了机器学习?对视频分类和实时监控中有多少人工参与的环节?

郭再荣:目前视频云已经接入网易易盾产品,在视频直播同时进行实时鉴黄,这个服务就是应用了机器学习:先对视频流进行截图,然后对图像进行智能分析以判断是否有违规内容,再上报到实时监控平台,最后经过人工审核,确保不会遗漏任何的违规行为。视频分类一般都是人工处理,是用户根据自身产品进行分类,而实时监控一般最后一关是人工审核,但占比重比较少。

2016-12-08 18:00114571
用户头像

发布了 58 篇内容, 共 46.0 次阅读, 收获喜欢 35 次。

关注

评论

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

Scrum敏捷项目管理真实案例

顿顿顿

Scrum 敏捷开发 敏捷开发管理 敏捷项目管理 scrum工具

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

鳄鱼视界

CodeWhisperer 初体验

天黑黑

AI 亚马逊云 CodeWhisperer

客服都要下岗了? 当ChatGPT遇见私有数据,秒变AI智能客服!

BeeWorks

复杂Flink任务Task均衡调度和优化措施

Openlab_cosmoplat

大数据

BFF层聚合查询服务异步改造及治理实践 | 京东云技术团队

京东科技开发者

优化技巧 企业号 6 月 PK 榜 BFF层 异步优化

让AI无处不在!Intel拿出全新VPU:超高能效碾压GPU

E科讯

开源创新 协同融合|2023开放原子全球开源峰会开源协作平台分论坛即将启幕

开放原子开源基金会

开源 开源协作

【5.26-6.02】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

Java 高效处理千万级数据:技巧与最佳实践

xfgg

Java 大数据

在软件定义汽车的时代,低代码究竟给车企数字化转型带来了什么?

优秀

低代码 车企 车企数字化

百度倾力出品|《神经网络机器翻译技术及产业应用》正式上线

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

西柚子

秒验 iOS端集成指南

MobTech袤博科技

世界500强开滦集团的财务共享建设路径

用友BIP

财务共享

重新思考流处理与流数据库

吴英骏

开源 云原生 流处理 ​Rust 实时数据库

提升您的 MQTT 云服务:深入探索 BYOC

EMQ映云科技

物联网 云服务 mqtt

玩转服务器之应用篇:从零开始构建小型高可用环境

京东科技开发者

高可用 云主机 云服务器 企业号 6 月 PK 榜

大型 3D 互动开发和优化实践 | 京东云技术团队

京东科技开发者

游戏 3D 企业号 6 月 PK 榜 互动游戏

一次网络请求中的流量分发过程 | 京东云技术团队

京东科技开发者

数据传输 企业号 6 月 PK 榜 流量分发 网络请求

智能出行 驱动未来|2023开放原子全球开源峰会CARSMOS开源智能出行生态年会即将启幕

开放原子开源基金会

开源 智能出行 CARSMOS

对应用数据开发还有疑惑?看这篇就够了!数据存储、管理,通通掌握!

HarmonyOS开发者

HarmonyOS

软件测试/测试开发丨接口测试学习笔记

测试人

程序员 软件测试 自动化测试 测试开发

技术的交流 思想的碰撞|2023开放原子全球开源峰会TOC面对面分论坛即将启幕

开放原子开源基金会

开源 社区 TOC

这本数智平台白皮书讲透了大型企业数智化升级业务痛点

用友BIP

白皮书 数智底座 数智平台 平台白皮书 数智化转型白皮书

led显示屏保养技巧

Dylan

故障 LED显示屏 设备日常保养

网易视频云:从处理流程到细节优化,解读点播直播背后的技术_服务革新_木环_InfoQ精选文章