范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Shopee视频处理技术后台应用

  东南亚各市场的网络环境复杂多变、差异极大,如何在有限网络条件下提供稳定、高清的视频体验是我们面临的一大挑战。基于此,本次分享将介绍 Shopee 在东南亚视频业务落地上的方案,在画质提升上做出的努力,以及一些性能提升成本控制方面的优化。
  在 8 月 6 日举办的 LiveVideoStack 2022 上海站中,Shopee 视频技术团队负责人 Zhixing 分享了 Shopee 视频处理技术的后台应用,本文根据演讲内容整理而成。   1. 背景
  随着 Shopee 电商业务在东南亚等市场展开,视频和电商结合的应用迅速落地。然而,当地许多用户使用的手机配置有限,这些手机在视频编解码、图像处理方面存在不小的性能瓶颈。
  并且,当地网络基础设施建设还不太完善,在这样的网络条件下,如何稳定且高质量地传输媒体数据成为一大挑战。
  另外,海量的视频文件和直播视频处理也给 Shopee 后台带来了巨大的压力。那么 Shopee 是如何通过技术手段来解决这一系列问题的呢?
  本次分享的内容大致分为四个部分:第一部分是 Shopee 视频相关的产品介绍;第二部分是 Shopee 视频业务后台的技术方案;第三部分是 Shopee 高清低码转码技术,以及 RTC 场景视频编码技术;第四部分是我们在性能提升和节省算力成本上做的一些优化。
  2. Shopee 视频技术落地产品
  先来看看 Shopee 有哪些与视频相关的产品。
  作为电商平台,Shopee App 是我们的主要业务,涵盖了 feeds 流、直播带货、点播等视频类服务。其中,短视频服务 Shopee Video 目前也已经在东南亚个别市场上线。
  Shopee 的数字银行业务 SeaBank 在部分场景下也用到了视频服务,例如在线开户环节。用户发起开户请求,客服接听,通过视频画面在线认证身份信息。
  此外,公司内部的通讯工具 SeaTalk 也计划在语音通信功能的基础上,新增视频会议能力。  3. Shopee 视频相关后台服务
  针对上述应用,我们开发了哪些视频相关的后台服务呢?  3.1 直播/点播转码
  首先是 Shopee App 的转码服务,涉及点播和直播转码两个转码平台。有一些 AI 增强类的前置处理,一帧耗时比较长,对于点播业务来说,这不是什么问题,只是转码耗时增长。而对于直播业务来说,就需要考虑效率问题了,比如帧率 30,最多一帧只能耗时 33ms,如果串行进行所有前置处理,就会使得出帧帧率小于输入帧率,导致视频帧堆积的问题。
  于是,我们设计了流水线的视频处理架构,将耗时较短、不影响主流程的处理节点放在同一个 region 中,串行处理,耗时长的节点单独一个 region,region 与 region 之间并行执行,中间通过队列通信。这样,只需要任意一个处理节点耗时保证在帧 duration 范围内,就能满足业务要求。
  我们可以看到中间这张彩色的示意图,如果是串行处理,每一帧的耗时就等于每一个节点耗时相加。然而流水线处理的话,每一帧的耗时取决于耗时最大的处理节点。
  上图为 Shopee 的直播/点播转码服务架构图。点播转码集群分为内部 Prado 容器集群和云主机集群,MMS 点播平台是我们的上游服务,该平台可以根据负载自由调度,选择使用 Prado 转码或是云主机转码。
  说个题外话,为什么这里会有两种集群?近两年因为疫情,服务器采购比较困难,于是公司的 SRE 建议我们,这类对数据安全性要求没有特别高的服务可以切到云主机,以加快业务落地。
  对于转码后的视频画面质量,我们也有内部的画质数据平台 AWCY,提供编码画质监控能力。  3.2 直播连麦
  上图是 Shopee App 的直播连麦服务架构。连麦双方通过 RTC-SFU 服务通信,观众通过 HTTP-FLV 观看直播。
  这里值得注意的是,通常云厂商为了后台的稳定性,将连麦服务的逻辑简单化了,不管房间是否有连麦主播,都采用转码的方式处理视频流。而既然有转码,就涉及到视频编码环节,若只有一路主播的时候也转码,会浪费大量算力资源。
  为了节省计算资源,Shopee 主播视频采用了 H.264 编码。在单个主播的时候,我们采用直接转封装的方式处理主播的视频;当有连麦者接入的时候,采用混流转码的方式处理视频;连麦者离开后,再次返回到转封模式。
  而 MCU 后台处理了这种模式之间交替切换的问题,通过缓存 GOP 的方式解决从单主播切换到连麦模式的场景,通过等待新的 GOP 的方式解决从连麦模式切换到单人模式的场景。
  线上大部分时候,在房间只有单个主播的场景下,CPU 的平均负载较低,大大提高了集群的并发能力。单台机器如果进行转码,最多支持 20 路主播;如果不进行转码,目前通过压测数据来看,至少支持 200 路主播转发。
  这一套方案也用于 SeaBank 在线开户系统,对开户通话过程进行录制。区别在于 SeaBank 系统只有混流模式。  3.3 多人会议混流
  对于 Shopee 内部通讯软件 SeaTalk,我们提供了多人会议混流服务作为技术能力储备(目前该功能还未上线),混流模块中嵌入了开源软件 OWT 和 mediasoupclient 的核心模块,并且在 OWT 模块上增加了 3 帧的缓存队列,以平滑混流视频帧。会议混流系统支持 RTMP 和 WebRTC 接入。  3.4 视频后台编辑
  针对 Shopee 的短视频产品 Shopee Video,我们开发了一套后台编辑服务,用于完成一些 2D 特效,例如图片序列转视频、添加背景音乐、画面切割、文字动画、视频转场、背景模糊等。目前通过 CPU 执行 Xvfb 虚拟显存的方式完成 gltransition 的转场效果。  4. 高清低码
  随着 Shopee App 中带货直播业务量逐渐增长,提升直播用户画质体验的需求也日益强烈。另一方面,在东南亚的网络条件下,直播分辨率很多还是 360p 或 270p,码率 300-500k。
  起初,大部分 Shopee 带货主播流没有转码,为了适配直播观众下行参差不同的网络情况,主播甚至用更低的分辨率和码率开播,来提高观众侧的流畅度,当然这种做法以牺牲清晰度为代价。
  在考虑用户观看体验,并综合视频转码成本等多种因素后,Shopee 决定投入自研视频转码业务。与业界常见做法类似,Shopee 的直播转码也分为普通转码和高清低码转码。
  普通直播转码集群用 NVIDIA T4 显卡硬编码,来支持更多直播转码。测试数据显示,直播带货场景下,一张 NVIDIA T4 显卡能编码 30 路,相较于 CPU 成本有一定优势。另外一部分是高清低码转码,使用 CPU 转码,编码器是基于 x264 优化后的版本。
  上图是 Shopee 直播高清低码和云厂商高清低码的画质对比,左边可以看出来 Shopee 转码画质明显优于云厂商 A,和右边的云厂商 B 相比,在块效应的处理上也有细微优势。那么 Shopee 的高清低码转码是如何做到的呢?  4.1 视频处理的一般流程
  先来大概了解一下视频转码需要经过哪些环节:  第一步解码得到 YUV 画面数据; 然后经过前置处理,包含了 ROI 背景 gblur 滤波、锐化、AI 增强; 接着将 YUV 数据送进编码器,进入预编码环节,主要步骤是下采样、Scenecut 关键帧判断,帧类型决策、AC 能量值计算、MBTree 等; 下一步进入编码环节,包括帧内/帧间预测编码、RDO、Deblocking、参考帧管理等步骤; 最后就是进入量化和熵编码环节,最终输出 NALU 单元。
  上面步骤中蓝色部分是 Shopee 在 x264 基础上做过优化的节点,接下来会一一讲解。  4.2 Shopee 高清低码优化方案4.2.1 前置处理1)CDEF 算法
  在前置处理时,参考 AV1 中实现的 CDEF 算法,抽出来作为一个 FFmpeg 滤镜,该算法主要用于解决由于过度压缩导致的物体边缘振铃效应。通过该滤波算法之后,画面中的物体边缘会更加平滑。
  CDEF 大致可以理解为首先计算当前 8x8 的块在预设的八个方向块上的残差,选择残差最小的作为确定的角度方向,然后找到对应的角度方向矩阵进行滤波。图中最右边是滤波后的效果,可以看到树枝的边缘更加平滑了。  2)3D 降噪
  常见的传统降噪算法 FFmpeg 中也有一些滤镜实现,比如 hqdn3d、bm3d 等。hqdn3d 参考的点较少,运动剧烈时效果不佳。bm3d 需要额外计算运动向量,速度极慢。
  我们在编码器内置的 3D 降噪算法通过复用运动向量的方法规避了效果差和速度慢的缺点。利用前后帧的预测信息,在预编码中得到的运动向量作为依据,找到被参考帧对应的块,作为滤波的参考块,然后通过双边滤波算法,对当前块进行滤波。
  这样一来,因为复用了运动向量,从而能够较好地对当前的块进行降噪滤波,也减少了计算复杂度。我们在 x265 也实现了同样的算法。  4.2.2 分类参数
  常见的分类编码参数往往通过人为主观分类,例如游戏、UGC 视频、影视剧等。而考虑到主观分类对于编码器提高 BD-rate 不一定是最佳的,Shopee 采用了一种逆向的思维方法,先抽出来几个不增加编码复杂度,主要影响画质的参数:B 帧个数、B 帧决策算法、B-pyramid、B 帧层次结构、QComp 等。
  首先将这些参数分成性价比最高的八组(当然这八组是通过我们线上的视频跑出来的结论),然后分别得出图中几组参数的最佳 SSIM BD-rate 收益——这里的收益是相对于我们线上统一的编码参数而言,把最佳 BD-rate 视频,相同参数的作为一组,然后针对这一组视频提取特征,进行训练,使用训练完的模型对线上视频进行分类。
  手动参数分类测试 BD-rate 收益最大 2.6%,模型分类 BD-rate 提升取决于模型分类的准确性,目前通过模型分类收益 1.4% 左右,模型还在进一步改进中,预期是接近手动分类 BD-rate 收益最大 2.6% 的目标。  4.2.3 编码器优化1)VBV - Adapt CRF
  在编码器码控方面,我们也做出了一些优化。如图,这是 VBV + CRF 码控模型示意图,一边注水,注水速度为  maxrate*帧duration  ;一边放水,放水速度为实际编码码率。
  当水位过低时,发生下溢,增大 QP 值,降低编码码率。当水位过高,发生上溢,减小 QP 值,增大编码码率。实际编码档位的 maxrate、bufsize 参数限制了水池的大小,使得复杂视频画面为了达到目标 CRF 画质,经常发生下溢,当码率不足时,大幅度降低了高复杂度画面的画质,比如出现严重块效应。
  我们通过动态调整 CRF 值的方式,让平均画质始终处于 VBV 限制范围内。当发生下溢时,增大 CRF 值,降低目标画质;当发生上溢时,减小 CRF 值,提高目标画质,以此达到提升视频平均质量的目的。通过线上大量视频测试,BD-rate 提升了 1.2%。  2)Hierarchy B + 时域滤波
  Shopee 编码器对 BD-rate 提升最多的优化是分层 B 帧结构。
  如图所示,左边是社区版本 x264 编码出来的 B 帧结构,右边是优化后的 B 帧结构。由于右边的 B 帧分了更多层,从图上可以很直观地看出来,参考帧和被参考帧的距离更近,参考关系更优。
  另外,分层 B 帧使用先确定 miniGOP,然后二分的方式决策参考关系和层次,相较于社区版的 Adapt B 和 Viterbi B 帧决策,速度更快。以下是我们测试的 BD-rate 提升和帧率提升收益。
  另外,决策完参考关系之后,还可以通过对编码帧进行时域滤波,让编码帧更接近参考帧,减小残差,以提高 BD-rate,收益大概在 2% 左右。  3)ROI(GBlur 背景)
  为了适配东南亚的网络质量,Shopee 转码服务提出了一种 ROI 转码档位。以往常见的 ROI 编码,单纯通过增大非 ROI 区域的 QP 值来降低非 ROI 区域的画质,然后把 bits 节省下来,减小 ROI 区域 QP 值来提高画质。
  但是这样带来一个问题,非 ROI 区域看起来块效应非常明显,和 ROI 区域有明显割裂感。于是,我们对非 ROI 区域进行高斯模糊滤波之后再 ROI 编码,效果看起来比原来的 ROI 编码好很多。
  如图所示,左边是原图,中间是扣下来的 ROI 区域,右图是高斯模糊之后 ROI 编码的效果。  4)长期参考帧
  为了支持后台视频编辑的服务,我们在编辑服务编码器中增加了长期参考帧。
  在剪辑视频的时候,可能会出现一段节目中间要植入广告的场景,如果按照原生的 x264 帧类型决策策略,会发生 scenecut,决策为 IDR 帧,然而我们可以看到,这里中间植入的广告的前后画面很有关联性。
  于是我们把发生 scenecut 前额视频帧缓存在编码器参考帧队列中,并标记为长期参考帧,当后面的视频帧出现 scenecut 的时候,再和队列中的长期参考帧 scenecut 决策一次,如果决策结果均为发生 scenecut,则标记为 IDR,反之编码为 P 帧。如此优化后,BD-rate 提升 6% 左右,不过该策略仅适用于视频剪辑的场景。  5)分级 RDO
  另外,我们还在 RDO 方面做了一些优化。
  RDO 是编码器进行二次编码,把重建块和原画之间的残差作为失真,为了尽量减小失真,对帧内/帧间预测模式、运动向量、QP 值重新决策的过程。它们的决策强度都是依次递增的,意思是如果要打开 QP RD,就一定要开运动向量,模式决策 refine。  /* mbrd == 1 -> RD mode decision */ /* mbrd == 2 -> RD refinement satd cost */ /* mbrd == 3 -> QPRD */
  于是我们把 QP RD 单独拿出来,通过新增的参数控制开关,在牺牲了一定速度的条件下,达到了 BD-rate 3% 的收益。  6)时域 SVC
  针对 RTC 场景,我们也做了一些编码侧的优化。
  RTC 一般是没有 B 帧的,为了解决群组会议用户网络质量参差不齐的问题。我们将 P 帧也进行了分层。层级之间的参考关系如图所示,上层的 P 帧永远参考下层的帧。
  这样一来,我们在传输过程中可以任意丢弃上一层的 P 帧,而不影响解码播放。下行带宽不足的时候, 在一个 miniGOP 内部,上层的 P 帧可以根据实际网络情况丢弃,以降低带宽,从而保证视频的流畅性。  5. 性能优化5.1 编码器端上优化
  在线上视频业务中,我们曾遇到过一些问题。有一些配置较低的手机,在光线不是很好的情况下,拍出来的画面无法看清画面中必要的的文字信息。于是我们对手机上采集到的画面进行了锐化,让文字看起来更清晰一些。
  然而测试发现,对于东南亚的手机配置,这样的算法发热太严重,即便锐化算法是参考了 FFmpeg 的 USM,已经是通过横纵向状态机复用和多线程优化过的版本,锐化一帧 720p 普遍耗时还是有 15-20ms,而且手机发热严重。
  于是我们针对 3x3 的 USM 模版,用 NEON 汇编指令优化了锐化函数,把一些点积、累加运算通过 SIMD 指令并行处理,锐化处理的帧率提高了 7 倍,手机也不再发热。  5.2 一入多出编码
  东南亚的机房机器成本同样很高,为了节省服务器机器资源,在点播后台转码服务中,我们也做了一些成本优化。
  Shopee App 需要将一个点播视频转码 6 个档位,不同的分辨率和码率。我们通过对一些转码中间数据复用的方式很大程度上降低了转码服务集群的成本,首先我们复用了前置处理,包括 AI 增强,把同一个视频文件转码多个档位的请求调度到同一台主机上,以复用前置处理结果。
  其次,我们通过复用编码器 lookahead 帧决策、MBTree 等信息。针对同一个视频文件的转码,我们通常只需要对其中一个档位的视频做帧决策,其他的档位直接复用帧类型信息。在编码环节中复用运动向量,skip 块等信息来减少运算量。
  经过测试,有参考信息的转码档位能节省 50% 的运算量。复用的转码档位越多,节省的 CPU 算力也越多。
  以上就是本次分享的主要内容。接下来我们还会发布在 x265 编码器上的一些优化,在一些视频业务上支持 H.265 编码能力,进一步提高视频用户体验。  本文作者
  Zhixing,来自 Shopee Multimedia Center 团队。
  来源:微信公众号:Shopee技术团队
  出处:https://mp.weixin.qq.com/s/fYPfx4qOP2k2qlVkhzInmA

39岁安妮海瑟薇最新杂志写真黑丝高马尾摩登时尚据新浪电影报道,近日安妮海瑟薇登上11月刊杂志写真,高马尾摩登复古造型,性感又时尚。今年39岁的安妮海瑟薇是1982年出生的美国女演员。2000年主演爱情喜剧电影公主日记,凭该片入美国时尚太辣眼睛,还是看看中国汉服姑娘吧看看美国的时尚圈吧,这都是些什么奇装异服。美国的时尚,我们真搞不懂啊!这完全是把另类当时尚,以丑为美啊!如果时尚会说话,肯会说老铁,我们伤不起啊这不禁让人想起清华美院的,眯眯眼毕业肖战新造型,穿一身黑色亮钻西装,绅士又帅气头条创作挑战赛肖战在娱乐圈中的人气比较高,长得帅气又多才多艺,深受大家喜爱。183厘米的身高,简直就是行走中的衣服架子,可盐可甜的穿搭造型,能够演绎各种风格。看过他的新造型吗?穿着最值得尝试的三种男士发型,精神时尚很出彩,越看越帅气既然你我相遇,那就是缘分,关注时尚,关注发型,关注刘丽丽哈喽,大家好,最新一期的男士发型来了,今天主要为大家带来的是最值得尝试的三种男士发型,精神时尚很出彩,让你越看越帅气。第一种独家视频丨习近平谈二十大后首次来访充分体现对发展中越两国两党关系的高度重视视频加载中10月31日,中共中央总书记国家主席习近平在人民大会堂同越共中央总书记阮富仲举行会谈。习近平说总书记同志是我在中共二十大后会见的首位外国领导人,此行也是你在越共十三大后首断联的人,突然又回来找你,一般是这个原因秋日生活打卡季文荔子言图来源于网络,侵权联系删除每一对情侣在选择了对方时,都一定是因为深爱,他们不会想到以后两个人会分开,因为那些甜蜜和美好,足以让他们深信彼此是可以相互依偎到老的精选26条万圣节文案(超甜版)1。像女巫骑着扫把,从夜晚到白天,享受星辰月亮和阳光。2。胆小鬼已上线。3。今天是万圣节,自我介绍一下,我是喜欢你的胆小鬼。4。万圣节想扮成精灵,飞到你的怀里找你要糖吃。5。想和你最美的遇见秋来了,到处充满了收获的喜悦找份秋,拥抱自然,遇见美好。携一身轻松,如风疾驰,奔向诗和远方大山深处,曲径通幽。隔着云烟,倾慕的灵秀,只惊鸿瞥,便醉了最美的遇见秋色。那,那,那美,那女生如果长期没有穿bra,会对身体有影响吗?对于很多女生来说,内衣是一种非常奇妙的存在,因为不少女生都是通过穿内衣来显出自己的美丽苗条身材,穿衣服更加有气质和感觉,并且女生在选择内衣时,察觉自己可以挑选样式的真的是越来越多了韩国梨泰院发生严重踩踏事故,很多女生在无名小巷中死去韩国发生了一件令人十分痛心地踩踏事故2022年10月29日周六晚上,正是万圣节的前两天,有一大群人在首尔的梨泰院附近举行庆祝活动,原本是一件令人开心的事,没想到却发生了十分严重的踩塑颜工匠丨35女生保养重点,保持好习惯好的习惯可以使我们越来越健康,皮肤越来越好。不好的习惯会伤害皮肤,影响身体健康,今天分享几个变美小技巧,让你越来越年轻(建议收藏哦)1充足的午睡据悉充足的午睡可以预防衰老,但需要注
愚人众十二执行官介绍愚人众十二执行官介绍最近原神放出了至冬国的消息,我们可以看到至冬国愚人众的全貌了,我知道大家在看的过程中会觉得自己多了一群新的老公老婆,且对冰神的xp非常满意,所以下面给大家就现有古装丧尸动作游戏李尸朝鲜血脉首个玩法演示公布韩国游戏公司ActionSquare发布了旗下丧尸题材动作游戏李尸朝鲜血脉(KINGDOMTheBlood)的首个玩法预告,距离上次公布(2021年8月23号)宣传片,已经过去了近王牌竞速新手入坑指南嗨大家好我是金谷,相信大家都知道一些赛车游戏吧。今天我就要给大家介绍一下由网易公司打造的游戏王牌竞速,现在我给大家讲一下入坑指南。1。登陆之后,游戏NPC会让我们三选一辆车,他们的一到秋天手就脱皮健康真探社秋季养生正当时手脱皮是咱们日常生活中非常常见的问题,手脱皮到底是怎么回事?手脱皮的几大主要原因一正常脱皮现象有的人的手一到秋天尤其是初秋,手指就出现脱皮现象,特别是手一旦舌上有痕,小心是肝堵了!快对着镜子检查一下舌头不仅是帮助我们品尝酸甜苦辣的重要器官,更是反映我们身体健康状态的一扇窗。正常人的舌象是淡红舌薄白苔,舌体大小适中,边缘圆润光滑。不过,生活中有不少人的舌头边缘并不光滑,反而有很中年老人做好这五个注意平安度过整个冬天,快来看一看吧今天冬至,我们来说说冬至的健康注意事项。冬至是一年中白昼最短黑夜最长的时候,也是殷琦极盛极衰杨琪开始萌芽的时候。这个季节也是最冷的数九寒天。这么冷的天,如何合理正确的养生,养生?无饿着肚子睡觉,比睡前吃宵夜危害还大?劝告这两种宵夜别吃在饮食上,经常有人走极端,比如很多人认为晚上要吃少,干脆就什么都不吃了,饿着肚子睡觉,结果呢?一晚上饥肠辘辘的,甚至有人被饿醒,大半夜地爬起来到处找东西吃。也有人晚饭是按时吃了,但这树是刺,果实又酸又苦,价值却很高,泡水喝用处很大,消食养肝在农村地区,有很多的野生植物,其中有一部分很不招人待见,因为这些植物要么身上长满刺,要么就有毒,又或者常在农田里泛滥成灾,为祸农作物,所以很多农民朋友都十分讨厌它们。但实际上这些不一碗隔夜饭,5天ICU?隔夜饭菜究竟能不能吃?告诉你真相一顿隔夜饭,竟然吃进了ICU?55岁的杨先生为人节俭,经常一顿饭吃不完就留着下一顿吃,这么多年也没有啥事。然而就在上个月中旬,杨先生中午午饭没吃完,还剩了许多,他就把剩饭剩菜先放厨惜命最好的方式,不是养生,而是这一点有一位医学心理专家认为世上所有的病,都是免疫系统打了败仗。为什么呢?来看看他的感悟吧。偶闻身边又多了一位患癌症的朋友,对于她生病我没有感到意外。她的家庭关系一直很糟,人啊,在家庭里火箭3换1拿下班巴!三方交易用小马丁换约翰逊,太阳得到克拉克森休斯顿火箭队今年休赛期还想要继续补强,进一步完成自己的重建计划。近期美媒就曝光了两笔关于他们的交易,一笔是和魔术的3换1交易,一笔是和爵士太阳的三方交易。我们一起来看一下具体情况吧