1.前言
本文延续了腾讯的技术共享:腾讯如何大幅度降低带宽和网络流量(图片压缩),并在保证质量(指图片质量、音频和视频质量)的前提下延续腾讯的带宽共享和网络流量压缩,从而优化运营成本。
每年年初,腾讯都要设定SNG成本优化的年度目标,过去三年通过技术手段为公司节省了超过10亿的现金流。产品的结构和生产能力越来越健康,很难继续优化成本。
然而,在混乱中,我们仍然设定了优化3亿元的目标。幸运的是,我们在2017年实现了这个目标,并再次获得公司级奖项,这非常困难。因为“成本与质量”是一个平衡的梁,SNG产品在2017年面临激烈的内外部竞争,降低产品质量是不可能的。因此,本文将与您分享如何在保证质量(指图像质量和音频视频质量)的前提下压缩带宽和网络流量,从而优化运营成本。
腾讯SNG社交网络业务集团简介:
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_11.png
腾讯SNG社交网络集团(简称SNG)是腾讯七大业务集团之一,成立于2012年5月。它建立了基于QQ和QQ空间的综合互联网服务。在腾讯的大系统中,SNG是一个非常重要的基础平台,也是腾讯产品线中用户数量最多的业务群体。
2.系列文章
因为文章太长,这篇分享分成两篇。这篇文章是两篇文章中的第二篇:
腾讯技术共享:腾讯如何大幅降低带宽和网络流量(图片压缩)
腾讯技术共享:腾讯如何大幅降低带宽和网络流量(音频和视频技术)(本文)
相关技术文章:
QQ音乐团队分享:安卓图像压缩技术详解(上)
QQ音乐团队分享:安卓图像压缩技术详解(下)
腾讯原创分享(一):如何在移动网络下大幅提高手机QQ的图片传输速度和成功率
腾讯原创分享(2):如何大幅降低移动网络下应用的流量消耗(上)
腾讯原创分享(3):如何在移动网络下大幅降低应用的流量消耗(下)
腾讯技术共享:社交网络图片带宽压缩技术的演进
基于社交网络的Yelp如何实现海量用户图片的无损压缩?》
构成即时消息开发的基础知识(2):如何为大量图像文件设计服务器端存储架构?》
这篇文章将集中在优化图片和带宽压缩。请继续阅读。
3.关于作者
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)
范京京:“我是腾讯SNG社交网络运营部的一名年长的女丝绸,被称为DSNO(丝绸一号)团队。”
腾讯高级工程师,2008年加入腾讯,从事资源管理和预核算,现在主要从事成本优化,为SNG优化项目预防性维护。
4.点播小视频的流量优化思路
4.1冗余下载
最初,在QQ空间播放小视频没有速度限制,一旦开始播放,就会以用户最快的速度下载。一个小的视频文件大约有80秒长,在正常的网络速度下不到20秒就可以下载。然而,用户往往不能完全观看每一段视频,用户在数据显示空间的平均播放时间只有23秒。下载但未播放的视频浪费了用户和企业的流量。
这种情况很常见,例如,在QQ音乐中,一首歌的平均长度接近4分钟,高质量的声音质量文件的大小是9M,下载一首歌只需要不到4秒钟,但经常发生的情况是,这首歌在听完前奏后被剪掉。
在另一种情况下,QQ中的长视频(超过10秒)需要下载才能播放。用户在对话框中收到一段视频,当他们点击它时,他们通常会变成菊花。当他们完成下载后,他们发现他们实际上已经看过或者对它不感兴趣。这种情况也浪费了用户的宝贵时间,使体验变得更加糟糕。
4.2QQ空间小视频限制下载速度
要控制空间小视频的下载速度,首先尝试将下载时间限制在比播放时间多40秒,卡住率为1.2%,然后将40秒改为20秒,卡住率将上升到2.1%,最后调整到20秒。如果用户的网络速度太差,如果发生二次缓冲,将没有速度限制。
4.3QQ长视频实现并排播放
对于QQ的长视频,启用了边缘和底部广播策略。点击视频后,用户首先全速缓存20秒,然后以文件速率下载。观看一秒钟后,当播放关闭时,下载将停止。它不需要等待下载播放,用户平均等待时间从12.6秒减少到1.77秒左右,大大提高了用户体验。现在,并排广播已经成为腾讯视频服务的标准。措施完成后,冗余下载率从65%下降到35%左右。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_1.jpeg
4.4空间小视频的历史优化策略
关闭自动播放:
在过去的两年里,空间小视频的播放量一直在上升,这使得外部网络的带宽流量一直在上升。17年前,优化措施是“在高峰时段关闭自动播放功能”(用户只需点击即可播放,但现在,只要用户在WiFi环境中的自动播放体验更顺畅,他们就会切换回来)。
限制转发大文件的数量:
根据下载日志文件大小的分析,有很多文件大于1G。这样的大文件通常是盗版电影,产品不希望空间成为传播盗版电影的平台,所以大文件的转发时间是有限的。
提高安全打击的准确性和及时性;
小视频的头部效应非常明显,少量的热门视频占广播量的50%以上。当时,色情暴力和欢闹盛行,旨在提高色情暴力安全攻击的准确性和及时率。
费率降低:
许多有趣的人是小猫和小狗,场景很简单。当时,我们认为这种视频的流畅度比清晰度更重要。因此,清晰度(比特率)可以适当降低,因此根据热度,系统压缩TOP2000每小时的热门视频,以低比特率播放,节省大量带宽。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_2.jpeg
4.5 H.265小空间视频技术选择
比特率太低,质量变得更差;
比特率是在数据传输过程中每单位时间传输的数据位数。相同编码格式的比特率越高,越清晰。当时,空间热点视频的比特率被压缩到300kps,不到普通手机当前拍摄的1/3。当码率降低到肉眼可以识别的程度时,用户体验会变差。然而,业务持续增长,因此有必要节省带宽并确保质量。因此,我们考虑使用新一代视频编码标准H.265来提高压缩率。
新一代编码标准H.265
265(也称为HEVC)是继2013年264之后,由国际电信联盟VCEG分会开发的一种新的视频编码标准。它仍然采用块的编码框架,块的大小从16*16变为64*64。然而,与H.264相比,它创造性地采用了四叉树结构,采用了编码单元CU、预测单元PU和变化单元TU,大大提高了压缩效率
当时,除了专利风险之外,该公司16年来没有任何商业尝试,因为H.265的计算复杂度远高于H.264,编解码器在性能上需要硬件支持。
4.6硬解码和软解码
解码有两种:硬件解码和软件解码。硬解码是使用回放设备(移动电话和计算机)的硬件解码。例如,具有特殊数字信号处理器核心的解码芯片具有较低的功率和较高的解码效率。现在,支持硬解码的手机比例约为70%。安卓客户端很复杂,不确定它是否支持解码。
如果你没有特殊的硬件,你只能通过软件使用中央处理器进行解码。由于牺牲了解码设备的通用性,该算法在效率和质量上有所降低。与硬件解码相比,它更费时,更容易引起手机的发热和功耗。
微信在用户功耗中所占比例很高,对热量和功耗非常敏感,因此不适合软件解决方案。如果视频一般短于十秒,解码时间也会影响用户体验。
让我们看看QQ空间是如何实现的。该空间在后台建立转码能力,客户端维护一套自动更新的模型库,自动对不同分辨率的265手机的性能进行评分并动态更新。数据显示,95%以上的手机支持H.265软解决方案,因此首先推出软解决方案,并开发了一套云适配背景兼容方案,可以根据不同的客户端请求分配最合适的码率(高、中、低)。
与软解决方案相比,硬件解码可以减少用户终端的CPU占用、系统开销、功耗和发热,因此现在有必要进行软硬件结合。经过一年的运行,整个H.265的播放比例已经从8%上升到现在的30%,最高的压缩率为40%。卡住率没有降低,而是增加了,用户体验更加流畅。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_3.jpeg
5.实时音频和视频聊天的流量优化思想
QQ会议视频混音:
视频中的另一个场景是实时音频和视频通话,如QQ会议视频。过去,当几个人同时说话时,接收器接收几个音频通道,然后在客户端混合它们。混音是将来自多个来源的声音整合到一个立体声轨道或单声道轨道中。
客户端混合更改为后台混合:
因此,如果我们能在服务端的一个房间里把所有用户的声音混合起来,然后发表一个演讲,将会大大减少我们和用户的下行带宽,实际上在上线后节省了近50%的带宽。
节省混合计算资源:
另外,因为混合比较消耗计算资源,一方面,混合编码性能被优化,另一方面,用户的房间号被分析,并且对于低于3的房间不执行混合。
质量跟踪:
在优化过程中,用户质量也由质量评分系统监控。质量随着混合灰度逐渐增加。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_6.jpeg
6.实时音视频直播的流量优化
下图显示了一个企鹅电子竞技的吃活鸡游戏。可以看出,房间里上网的人数非常多,具有高清晰度、超清晰和蓝光,而且带宽成本总是很高。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_111.jpeg
今年春节期间,NOW现场直播的答疑业务非常火爆,每天晚上8: 00在指定的房间提问。观众每天可以分一百万的奖金。最高峰值是900,000名观众同时在线。假设平均码率为1M,峰值带宽为900G,成本非常高。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_222.jpeg
SNG有许多现场直播服务,这些服务根据每种产品的不同特性进行了优化。
空间直播是一种熟人社交,房间内的人数一般很少,不到10人,小房间的OC回报率很高,浪费了CDN分发资源,所以采用IP直连。
NOW直播的房间稍大(通常是几十到几百人),但DC带宽和音频OC带宽的单价是DC带宽的1/2,所以DC到OC被提升。
以前有一种观点认为,视频点播通过使用H.265编码和解码标准节省了40%的带宽和存储空间。由于实时性要求较高,结合图形处理器可以提高转码性能。GI1(2卡)的转码性能是普通24核处理器的9倍,但购买价格仅为普通处理器的1.6倍。
根据企鹅电子竞技的房间大小分析,61%的用户是300强主播。考虑到转码资源的性价比,H.265只对300强锚进行了优化,购买几万元的GI1设备可以节省600万元/年的带宽,也为非WiFi环境下的用户节省了流量。
与点播不同,大型锚的设备和网络更好。一般来说,两个流被锚向上推,一个是H.264(考虑到低端手机的硬件解码能力),另一个是H.265..考虑到锚的上行带宽限制和转码计算成本,只有一个H.264。
现在,直播应答室主持人同时推送264和265流,可以节省30%的整体带宽,并且可以进行极大的优化。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_333.jpeg
7.优化码率
仍然有许多带宽优化的例子,所以我们不会结合不同的产品特性逐一列出。现在让我们看看视频优化的方向。
动态码率:
有三种类型的速率控制:恒定速率、平均速率、动态速率(VBR)和常用的平均速率。但是平均比特率有许多缺点。
根据用户网络质量的预测变化:
不同的用户有不同的网络质量,同一用户的网络质量也会发生变化。因此,可以预测用户网络的质量变化。如果用户网络将变得更差,下一帧将切换到低比特率流。
按内容分类:
不同的视频内容需要不同的码率。例如,体育NBA类需要比肥皂剧更高的代码率。上传视频时可以对标签进行分类,然后给出不同的编码参数。使用这一策略后,腾讯视频节省了10%的整体码率。
根据不同的场景:
然而,不同的场景会出现在同一段视频中。例如,战斗所需的代码率高于场景所需的代码率。深度学习可用于场景分类,转码时可给出不同的编码参数。
根据感兴趣区域特征提取,重点对人眼感兴趣的区域进行编码:
人眼通常比其他区域更关注人,尤其是面部区域。例如,下图是斗鱼的妹妹蒂莫·冯的现场照片,可以通过编码面部强调、增强人的身体和衣服的次强调以及适当弱化其他区域的策略进行转码。
自适应分辨率:
动态比特率是在用户的网络条件允许的情况下,寻找编码比特率的最优解,如果用户的网络速度有限,但想提高用户的清晰度,可以采用自适应分辨率的方法。在相同的播放窗口(相同的显示分辨率)下,相同码率下不同编码分辨率的PSNR是不同的,所以在固定码率和显示窗口下,有最佳的编码分辨率。例如,当用户选择高清时,用户的带宽限制为1.2M。在此基础上,可以找到适合用户网络速度的最佳编码分辨率进行编码。
8.总结
结合这些实际情况,带宽优化可以概括为一个小、两个小和三个不变。文件压缩较小,下载次数较少,冗余下载较少,质量不变。
有许多常见的管理和技术手段如下:
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)
在优化过程中,可以使用五部曲:
1)明确资源消耗的构成,在哪些场景中,有多少入口,以及资源使用的模型;
2)关注资源消耗的顶层模块,首先解决主要矛盾;
3)了解体系结构和算法的技能,理解产品策略,理解技术选择和行业趋势背后的原因;
4)产品战略和技术是双管齐下的;
5)产品形式和行业技术可能每月都有新的变化,因此动态运行是持续的。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)
在业务运营和维护中也有一个非常痛苦的场景,那就是运用精细化的成本管理思想,对产品进行预算、带宽预测和优化模型。因为数据会发生变化,所以可以收集数据,系统会自动计算带宽预算和合理性分析。
腾讯技术共享:腾讯如何显著降低带宽和网络流量(音频和视频技术)_333.jpeg
----------------------------------------------------------------------------------
哇谷im_im即时通讯_私有云_公有云-哇谷云科技官网-JM沟通
IM下载体验 - 哇谷IM-企业云办公IM即时聊天社交系统-JM 沟通下载
IM功能与价格 - 哇谷IM-提供即时通讯IM开发-APP搭建私有化-公有云-私有化云-海外云搭建
新闻动态 - 哇谷IM-即时通讯热门动态博客聊天JM沟通APP
关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建
联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务
公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?