阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

无损压缩,解决卡顿,《硅谷》技术正被字节跳动海外团队逐步实现

字节跳动技术范儿

  • 2023-03-04
    北京
  • 本文字数:4301 字

    阅读完需:约 14 分钟

无损压缩,解决卡顿,《硅谷》技术正被字节跳动海外团队逐步实现

短视频,现在已经是无数内容社区型产品都需要的功能了,几乎每家社区 App 公司都希望在自己的产品里增加短视频功能。


但并不是每家公司都有能力招聘大量技术人才,从无到有地开发一套短视频解决方案。


字节跳动旗下 To B 业务「火山引擎」对外开放了视频点播服务。


也就是说,市面上各类带有播放需求的应用,都可以拥有抖音、西瓜视频同款播放器,把卡顿、黑屏等情况出现的概率降到最低,能够实现流畅、稳定的视频播放体验了。一些垂直社区 App 已经用上了抖音同款播放器,实现了丝滑的播放体验。


这些技术都是在抖音、西瓜视频、懂车帝、皮皮虾等多款内部产品上长期使用、多年迭代的成果。今天我们来看看,在火山引擎视频点播服务背后,那些你可能还不知道的字节跳动技术成果。


不卡不崩的 TT Player


首先,来看看提供点播能力的播放器本身。


TT Player 是一个用在安卓和 iOS 端的播放器 SDK ,它可以实现首帧秒开的效果——也就是说,在打开视频的时候不需要加载,只要等 0.2 秒左右,第一帧视频画面就已经显示在你的屏幕上了。


其实,字节跳动系产品的移动端播放器最早用的是安卓系统的 ijk 开源播放器和 iOS 上的苹果系统播放器,但效果并不如意。 2016 年,每天有 100 多名用户反馈出现了黑屏、无法播放的情况,视频打开后,手机就黑屏了,视频内容根本显示不出来。


于是,火山引擎智能视频云团队开始自研移动端播放器,完成了大量播放策略优化,比如预加载策略、播放控制策略、缓冲优化和面向网络的自适应等等,新的播放器 TT Player 面世了。


TT Player 自研完成后陆续用到了今日头条、抖音上。此前,用户打开一个视频要 0.8 秒左右,经过多次测试优化,已经缩短至 0.2 秒。


团队的一位工程师解释,首帧打开时间每缩短 0.05 秒都对用户体验影响巨大,半秒多的速度提升就是非常明显的进步了。


现在,TT Player 播放 15 秒以内的小视频,卡顿率已经降低到了 0.58% ,差不多每打开 172 个视频,才会遇到一次卡顿的情况。


崩溃率也降到百万分之一以下,也就是说平均每 100 万次播放里,最多只出现一次播放器崩溃的情况,假设一名用户每天刷 1000 个短视频,平均也要大约 3 年才能遇到一次播放器崩溃的情况,比此前使用的 ijk 开源播放器和苹果系统播放器低得多。


这是怎么做到的?


比如,为了保证用户看刷短视频的流畅体验,工程师们做了预加载,提前下载用户即将刷到的下一个短视频,还把下一个短视频的第一帧渲染出来,并且让这个视频的声音不播放。这样等用户刷到下一个短视频,它就可以直接播放出来。


火山引擎智能视频云团队工程师介绍,在一般业务场景里,如果视频首帧没有加载出来,系统就会直接使用封面图,采用了这种预加载的方式,就不需要下载封面图了,可以帮用户节省一张封面图的流量和带宽。


再比如,为了在硬件解码器方面适配全世界不同手机的机型,工程师们联系了大量 SoC 厂商、手机厂商进行调优,能解决就适配,不能适配就转用软件解码器。目前 TT Player 的硬件解码器覆盖率在安卓机型达到了 80% 以上, iOS 机型则是近乎 100% 覆盖。


而拿移动端用户切换清晰度来说,有些播放器会遇到清晰度切换时卡顿的问题,为此火山引擎智能视频云解决方案团队的工程师们想到了关键帧对齐的方法,也就是把上一个清晰度的最后一帧和新的清晰度第一帧完全对齐。


在实际的播放中,每个视频按照一定的时长被切成了几个视频片段,比如 1 分钟的视频可能被切成了 6 个 10 秒钟的视频片段,每个片段有 360p 、 480p 、 720p 、 1080p 等几种不同清晰度的版本。


关键帧对齐的方式就是,从 720p 切换到 1080p 的时候,把 720p 的最后一帧和 1080p 的第一帧完全对齐,保证一模一样,这样在播完前面 720p 的 10 秒钟片段之后,就可以流畅切换到之后 1080p 的 10 秒钟片段里,不会出现卡顿问题。


Web 端的西瓜播放器


TT Player 是移动端的播放器,而在 Web 端,火山引擎的点播能力靠西瓜播放器来实现。


这款播放器来自字节跳动的 web 多媒体团队,是团队工程师们从底层开始一步步研发的成果,技术范儿此前也做过详细报道


除了单纯 UI 层面的创造,西瓜播放器拥有更多底层的功能,能够让 mp4 格式的视频实现流式播放,用户看视频的时候就可以实现清晰度无缝切换,还能节省视频流量。


另外,西瓜播放器也集成了对 flv 、 hls 、 dash 格式的点播和直播支持,在 GitHub 上已经获得了超过 3600 颗星。


智能高清低码:高清视频不怕卡顿


除了播放器本身,另一个影响用户体验的要点就是网络传输。如今的视频清晰度都变高了,传输它的带宽成本就会提升,如果用户在网络状况不好的地铁、地下室、山区等场景看视频,就容易出现卡顿的情况,或者被迫只能看标清。


为此,火山引擎多媒体实验室还训练了智能高清低码相关的算法,也就是通过智能编码的方式,在提升视频质量的同时,把视频的码率降低,这样就可以用最低的码率传输最清晰的视频。


如何才能实现这样的功能呢?


首先,要去除噪声和失真的部分,压缩效率可以节约 20% 以上,对应的传输带宽需求也只需要不到原来的 4/5 ,还能提升视频的质量。


其次,要对人眼在看视频时的兴趣点进行针对性的优化。比如我们在看讲座时,注意力放在了主讲人的面部;看美食视频时,注意力重点在食物上。这样,只要提高人眼关心部分的画质,弱化人眼不容易注意到的区域,就可以保证在码率降低 10% 的情况下用户体验一样优秀。


最后,要实现内容自适应编码,根据视频的领域、情感、对象特征,自适应地选择视频编码配置,从而在保持视频质量的情况下,节省带宽 10% 以上。


说到视频编码,就不得不提到到字节跳动自主研发的视频编码器 BVC1 。这款视频编码器在同样的清晰度下,带宽降低了 30% 。


BVC1 也可以针对手机、 PC 、平板电脑等不同的设备进行定制化,利用现有的算力,最优化质量提升和带宽节约。


而在视频会议中屏幕共享的场景下,借助独创的视频上采样方案和超分辨率技术,也可以实现更清晰的文字显示。


当然,字节跳动先进视频团队也一直在迭代编码器技术, 2020 年, BVC1 编码器就比前一年实现了 20% 的码率节约。


视频封面选择困难症?让 AI 来帮你挑


上面说的是视频播放和传输,但在视频创作阶段,火山引擎的技术团队也做了不少努力。


比如视频封面的创作。数据分析显示,一个优质的视频封面能够让视频点开率大幅度提升,为了帮助内容创作者轻松选出优质封面,视频平台在创作者上传视频时,会给创作者推荐视频的封面,或提供备选封面。


想要实现这个功能,系统会从视频中选出比较美观的几帧来提供给用户。为此,火山引擎团队的机器学习工程师们训练了一套美学质量评估算法,可以让人工智能按照大部分人类的审美,评价图片或者视频美不美。


比如这张相对专业的湖中岛风景照:



满分 100 分,在 AI 看来, AI 给出的评分是 86.54 分,算法也觉得画面美观。


再看这张非专业摄影师的随手拍:



AI 给出的评分是 71.98 分,虽然还算美观,但整体水平比前面那张差了不少。


如果两帧出现在同一个视频中,系统就更可能会选前面评分高的一张作为封面推荐给创作者。


这是如何做到的呢?


其实, AI 评价美丑的标准来自经过人类打分的图像数据集。


按照类似的评价标准,先由人类为一部分图像进行打分。


比如下图第一行的照片,颜色搭配合理、构图磅礴大气,人们就可以打出 70 、 80 的高分;而第三行的照片图像不够完整、画面元素凌乱,就只有不到 40 分。



这样,把大量图片和对应的分数作为训练数据输入神经网络,成为 AI 的学习资料,它就可以自己从美术风格、画面构图、色彩应用等多个方面来评估一张照片或一段视频在人类眼中够不够美了。


视频质量好不好,VQScore 都知道


除了主观美丑之外,视频好不好的另一个评价指标则是视频的清晰度。


VQScore 是火山引擎团队的工程师们训练的一个评价视频清晰度的算法,它可以在不借助参考视频的情况下,独立地对视频清晰度进行评价打分。


和上面的美学质量评估算法一样,VQScore 也是根据人类对视频清晰度的主观评分数据来训练的深度学习算法



比如上面这样的视频,看起来相当模糊,有大量噪点,算法给的清晰度评分是 40.23 分。



效果好一点的视频,就可以拿到 63.31 分。



视频质量高一些的话,就可以拿到 75.17 分了。


除此之外,对于视频压缩失真、噪声大小、对比度是否过低等情况, VQScore 都可以给出按照人类视觉的判断,来自动分析视频质量。


视频糊了?靠算法实现画质增强


经过上面的算法判断,如果得出的结论是视频质量的确比较低,为了提升用户体验,可以借助超分辨率、视频插帧、降噪算法等多种技术,提升视频的质量。


比如针对几十年前的老电影,可以实现老片修复,解决老电影常有的噪声、划痕、颜色对比度和分辨率的问题。


比如经典电影《刘三姐》,下图右侧修复之后人物面部轮廓、衣着细节都更清晰了:



1994 年的港片《精武英雄》中的场景,同样也可以实现类似的效果。



现在西瓜视频上,像《精武门》、《方世玉》等不少 90 年代老电影都是修复后的高清版本,用户在观看这些经典老片的时候就可以获得更清晰的观看体验。


另外,如果是用户自己拍摄的视频作品,清晰度比较低的话,算法同样可以增强他们的质量。


比如下面的视频,从视频素材到搭配的文字,右侧修复之后的画面看起来比左侧的原始画面清晰多了。



而在更广泛的用户测试中,也有 80% 的人能看出,经过修复的版本清晰度有明显提高。


这项技术来自火山引擎多媒体实验室,目前团队已经为此付出了 1 年多的努力。


2020 年初,在深圳市人民政府主办的首届“全国人工智能大赛” AI+4K HDR 赛项中,这个实验室的工程师们组成的队伍拿下了比赛第三名的成绩,也是工业界所有参赛队伍中的成绩最高的。


可用性超 99.999% 的融合 CDN


除了上面这些与视频创作者和观众直接接触的环节,视频内容本身在网络中的传输也要借助重要的一环——CDN 。


CDN 是指内容分发网络( Content Delivery Network ),在整个互联网上有不同节点上的许多个服务器互联,组成一张分布式的网络,是一项互联网基础设施。当用户想要看某个视频的时候,离他最近节点上的服务器就可以快速响应,降低用户观看视频的延迟。


火山引擎 CDN 借助强大的融合技术、大数据处理、智能预测等算法,实现了客户端对单一故障源的快速容灾和提前规避,从以往的不可播放到用户几乎无感知,可用性超过了 99.999% 。对普通用户来说,App 们就会更少出现崩溃的状况。


此外,在内容的传输环节,火山引擎 CDN 也用到了机器学习模型来预测带宽,对网络带宽精打细算,大幅度降低了成本。


而在分发过程中,它利用大数据、智能分析等一些手段建立了全球网络拓扑性能分析链路,选择最优的分发链路。这样,用户看视频的时候就不容易因为网络问题而发生卡顿,质量性能提升达到 100% 。


从算法到应用,现在我们可以期待这些技术在更广的平台上发挥作用、服务用户了。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-03-04 18:475612
用户头像
鲁冬雪 InfoQ 策划主编

发布了 337 篇内容, 共 195.9 次阅读, 收获喜欢 270 次。

关注

评论

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

基于Scrum框架产研团队运作20问

laofo

DevOps 敏捷 研发效能 敏捷精髓 持续交付

视频回放编辑软件Mitti最新免激活版

胖墩儿不胖y

Mac软件 音频编辑 音频处理工具

聚合电商API接口平台:让数据成为生产力!

Noah

数据api API 安全 电商api接口

开放原子开源基金会九月新增捐赠人

开放原子开源基金会

近年北美地区 IT 岗求职之怪现状

HoneyMoose

Java @Override 注解

HoneyMoose

一种长链换短链的实现思路

golf

golang 后端 短链

GLTF纹理贴图工具让模型更逼真

3D建模设计

材质 纹理 贴图

为什么说代码注释是程序员必备的技能?

小齐写代码

解读非托管流动性协议Hover: 差异化、层次化的全新借贷体系

股市老人

错误排查

极狐GitLab专家团队支招解决 CVE-2023-4998 漏洞问题

极狐GitLab

DevOps gitlab 安全 DevSecOps 漏洞

Java 21新特性-虚拟线程

越长大越悲伤

Java

秒懂算法 | 字符串匹配算法实例分析之潜伏者、最低三元字符串

TiAmo

算法 字符串匹配

模型UV纹理设置工具

3D建模设计

材质 纹理 贴图

轻量云服务器才是跨境电商最终归宿

平平无奇爱好科技

华为云828营销季正式开启,打造中小企业“上云嘉年华”

平平无奇爱好科技

蓝易云:Ubuntu系统添加和删除用户方法。

百度搜索:蓝易云

云计算 Linux ubuntu 云服务器 用户

蓝易云:Mac 安装homebrew Mac安装Git教程。

百度搜索:蓝易云

git Linux Mac homebrew linux云计算

Java List 中存不同的数据类型

HoneyMoose

简洁的Markdown文本编辑器 Typora中文版

mac大玩家j

文本编辑器 Mac软件 markdown编辑

秒验:可以自定义UI的一键登录服务

MobTech袤博科技

大数据 智能推送

Java基础面试题【六】线程(2)

派大星

Java 面试题

2023年被问了100遍的1000道java面试题,终于总结成了485页PDF

程序员万金游

编程 Java 面试 程序员、 java Java 面试题

愤怒的小鸟Angry Birds Reloaded mac(休闲益智类游戏)v2.4中文激活版

mac

windows 游戏 苹果mac 愤怒的小鸟 Angry Birds

简单好用的Mac清理工具 BuhoCleaner

展初云

Mac软件 清理软件

无损压缩,解决卡顿,《硅谷》技术正被字节跳动海外团队逐步实现_语言 & 开发_InfoQ精选文章