电脑QQ开视频显示不出来怎么办(看下图)?

导读 | 腾讯会议系统中,视频质量是影响用户体验的主要因素,对视频质量进行评估和优化是吸引和留住用户的关键。在开发腾讯会议质量评估系统的过程中,有哪些技术难点和相应的解决方案?在【腾讯技术开放日· 云视频会议专场】中,腾讯多媒体实验室高级研究员王海强进行了分享。

本次分享共包括四部分,第一部分是视频质量评估的背景介绍;第二部分,介绍在视频会议这种实时通信系统中,与质量损伤相关的环节及对应的优化策略;第三部分,介绍针对腾讯会议场景所开发的基于深度学习的全参考视频质量评估算法;第四部分是围绕腾讯会议搭建的一个端到端的质量评估系统,它能够对会议进行自动化评估和监测

点击视频,查看直播回放

一、什么是视频质量评估

    视频质量评估致力于评估视频的人眼感知质量,总的来说有两种评估方式

  • 主观质量评估,依赖人眼观看并打分,这种得到的分数比较精确,但是很耗时间,而且不方便大规模部署。
  • 客观质量评估,主要是计算损伤视频的质量分数。评价一个算法的好坏就是衡量主观分数和客观分数的相关系数,一般来说系数越高越好。

    客观质量评估算法大概分三类,主要取决于是否使用无损的源视频作为参考。

  • 全参考,比如PSNR就是典型的全参考算法,通过与源视频进行各种层面比对,来衡量损伤视频的质量。
  • 无参考,有的算法不使用源视频,只使用接收端的视频,来衡量它自己本身的质量。
  • 比如从源视频中提取一个特征向量,特征向量随着损伤视频一块发送到用户端用来计算质量。视频会议这种场景要做全参考本来是不现实的,因为不可能把本地无损的源视频送到用户端或者其他地方计算质量,我们这次所做的工作就是把会议这种典型的实时场景转化成一个可以使用全参考算法离线优化的场景

    根据视频内容,视频质量评估可以分为PGC质量评估和UGC质量评估。PGC,就是专业制作内容,比如传统的电影、电视剧,它的内容,设备、光照、演员各种指标都是接近完美的状态。UGC是用户原创内容,像短视频、直播、实时视频通话都属于这一类。

UGC对视频质量优化提出了更多挑战。下面的图表给出了原因,右上角这个代表着传统的PGC,而UGC可能属于四种情况中的任意一个。对于传统的PGC,大家基本默认很难增强它的质量,像素改变越多它的质量会越低。而UGC情况就比较复杂,有的视频可以通过算法,渐渐增强质量,但是如果做的过的话反而又会降低质量;有些视频的特性是,在小范围内调整它的质量几乎是不变的;还有些视频,这种比较少,质量改变和像素改变几乎成线性关系。会议这种场景就属于典型的UGC场景

    考虑到拍摄、构图、色彩、相机的稳定度等,相比PGC,UGC都更难优化。而且,PGC优化可以参考源视频,运用全参考算法,而UGC并不是传统意义的无损源,所以UGC对视频质量评估领域提出很多挑战。

二、实时音视频通信系统中质量相关模块

    下面结合会议这种实时通信系统来介绍和质量损伤有关的模块。总体来说,实时通信包括发送端采集“源视频”,这里加了个引号,来说明并不是传统意义上的无损源。采集环节之后,是预处理环节,比如背景虚化、各种增强,然后是编码、上行码流经过网络传输,接收端接收下行码流,然后解码再经过后处理,再渲染得到损伤视频。质量评估在于哪儿呢?在接收端,质量评估去评估损伤视频的质量,后面的所有模块对质量评估来说都是一个黑盒。

    在会议实时通信过程中,网络可用带宽是限制整个系统的瓶颈。可以通过二阶统计量来描述带宽,一个是平均可用带宽,它决定了视频编码出来的平均码率,另外一个是网络实时抖动决定了最高码率。因为如果网络在某一段时间带宽比较低,而码率持续的比较高,就会引起卡顿、丢帧甚至掉线等等,当然也可以通过在某些部位加一些缓冲区增强它的稳定性,但是缓冲期一般会增大时延。

对于编码器来说,就是给定一个恒定码率,编码器要调整编码策略,一般通过调节QP,也可以通过调分辨率、或者调帧率来把编码码流对齐到目标码流

先说一下帧率,因为帧率对视频质量的影响远远大于分辨率和QP。对比下面两个视频,左边是24 fps其实它压的比较厉害,QP是36;右边的经过两次时域SVC,只有6fps,QP18。本来右边画面质量更好,但是它帧率更低,跳帧对质量的影响很大,所以有些人会觉得右边视频质量反而没有左边的好。

    接下来看QP和分辨率。视频压缩失真引起主要的质量损伤,也就是说给定一个目标码率,要通过适配一定的QP和分辨率策略,来达到给到的码率目标。

    下面以传统的PGC优化分辨率和压缩比的组合作为例子,讲一下优化编码策略,这两个材料都来自VMAF。

    左边这个图给出了一些码率和视频质量的组合,这里面有三条黑色的线,代表着同一个视频不同分辨率的版本,红色的线 Convex Hull是结合这三个分辨率找出最优曲线,在码率确定的时候,只要找到和ConvexHull接近的点就是在当前场景下应该采用的分辨率。

    右边是传统的基于反复测试得到的关于PGC视频的码率表,可能现在业界也有些人用固定的码率表,但是那个码率表要么是基于经验,要么是基于自己的反复测量的结果,没有经过太多优化。对于会议这样一个场景,腾讯会议也想要一个它的convex  Hull和码率表。

三、腾讯会议自研全参考视频质量评估算法

    基于前面讲到的内容,腾讯会议开发了一个实时视频全参考质量评估算法。因为视频编解码是整个系统中的核心模块,所以我们希望这个视频质量准则有足够的精确度和区分度来衡量编解码器细微的差异。

    我们测试了已有的图像质量评估算法,包括PSNR、VMAF等等,发现他们有的对于网络波动区分度不够,有的对时域上的运动信息或质量波动把控不够,测试完后觉得这些算法并不满足需求。

于是腾讯会议使用深度学习设计了一个新的网络,来自动学习视频质量的相关特征,然后在PGC数据集上训练得到一个通用的网络。而对于UGC的网络,我们构建了一个新的主观质量数据库来调优模型。

这是腾讯会议开发的视频质量评估算法,名字是Video Quality Assessment with 3D Convolutional Neural Network。这里面一个大的创新点是使用三维卷积核来提取时空联合特征,使得视频质量和时域运动大小更相关。

这个模型是用PyTorch开发的,也在VideoSet这个PGC主观数据库上进行了预训练,用额外收集的会议视频质量数据库进行微调。对应的算法开源在腾讯的官方Github上,算法名字叫做DVQA,感兴趣的话可以看一下。

    下图给出我们所设计的神经网络结构图,它的输入包含两部分,损伤的视频帧 (distorted frames)和residual frames,这两部分相加就是源视频帧。前面黄色框是两层二维卷积网络,然后经过四层三维卷积得到失帧可感知度的阈值,再把阈值和residual

    下面的例子更直观一些,图(b)中小女孩的头发区域,头发比较黑而且纹理复杂,在人眼视觉下,如果头发区域有一些压缩失帧是很难看出来的,图(g)是神经网络学习的结果,这片是黑色,也就是说可感知失真很小,那么这个神经网络学习到的特征和人眼视觉感知特征是一致的。图(i)中砖块是相对平滑的区域,如果在这里有损伤应该是比较容易被看出来,那么在神经网络学习的图(n)中也是同样的结果。

    前面讲的都是基于PGC数据库的例子,我们的UGC的数据库还没有公开出来。我们在LIVE和CSIQ两个公开数据集上把我们的算法同其它算法进行比较。从下面的表格可以看出,我们算法的性能在大部分情况下是领先的。

    大家知道,要训练一个深度学习算法,需要很大的数据库来支持。可能会有人问,你们这个算法用的数据库是什么?左边这个表给出了现在业界常规的主观质量数据库的大小,总共的视频包括源和损伤视频大概在100、200左右甚至几十个,这里面还包含着一个源和一个源对应的五个或者几个损伤视频。其实真正的源算下来也就十个左右。用这样的数据量去训练网络还是是比较困难的。

所以,腾讯会议搭建了一个在线视频质量打分平台来收集视频的主观数据,这个打分平台既有PGC也有UGC。网址是,大家可以体验,右边是看完视频展示之后的打分界面。

    这里的例子是采用AB tst模式,每次播放两个视频,一个源,另外一个是处理过的。两个是随机模式,看完之后会问志愿者,觉得第一个视频质量效果好还是第二个好,还是觉得两个都一样,选完之后可以进入下一个比较。腾讯会议收集了超过100多万次打分,对上百个源视频进行了打分。

    我所在的质量平台组负责腾讯会议的专项测试工作,包含性能、码率、抗性、时延、音画同步,其实这也是网络组需要的参数,还包括最终的视频质量。根据实践,前面这些像性能、码率、抗性、时延、音画同步都可以借助专门的硬件和软件测出来,而对于视频的主观质量,我们更多时候是通过人工看来判断。

另外,视频会议一直在快速迭代,有很多版本,其中比较头疼的是需要对齐电脑当前的本地环境和网络环境,如果这两个对不齐的话,版本比较结果不容易让人信服。

四、腾讯会议自研端到端质量评估系统

    腾讯视频也开发了端到端自动的质量评测系统,这是整体的框架图。其实它的策略相对来说没那么复杂,就是在发送端播放源视频,经过可控的损伤网络之后,另一边是接收端,在接收端捕获会议呈现的画面,把这个画面拿出来再结合发送端的源视频去计算它的质量分数。前面提到的性能、码率这些绝对的指标都可以得到,抗性更多取决于什么样的网络情况下体验特别糟糕,时延、卡顿、音画同步、包括帧率都可以通过比对这两个视频得到结果。经过几个月的努力,这个系统已经实现完全自动化。

这是端到端质量评估系统的外部交互界面,叫RTQoE-Real  Time  Quality of  Experience。在这个系统中,可以选定源视频,可以选定上行和下行的网络状况,提交任务之后就是发送端、接收端各自完成之后去算对应的指标,然后在这里展示出来。

下一步的计划,是在RTQoE系统中引入temporal纬度。上面的模型目前只能做调QP和调分辨率这两个组合的方式,引入temporal纬度后就变成QP、分辨率、帧三个组合,一起衡量网络波动对视频质量的影响。

 Q:能介绍一些公开的PGC数据库吗?

A:腾讯会议的PGC数据库是公开的,搜索Videoset应该能搜到,如果找不到的话可以查一下代码库,里面提到了数据库在那里可以下载。

Q:网络如何影响视频质量评估?

A:这里面包含丢帧的情况。因为网络决定了分辨率和编码器的编码策略,调QP、调分辨率、调帧率可能取决于不同的厂商。实时的网络波动也会影响丢帧的情况。腾讯会议计划引入temporal纬度衡量网络波动,这里有两个目的:一个是网络波动对丢帧的影响,另外一个是网络可用情况对编码策略的影响,怎么调QP的、怎么调分辨率、怎么调帧率的,是这样一个问题。

腾讯多媒体实验室高级研究员

    王海强,腾讯多媒体实验室高级研究员,2018年博士毕业于美国南加利福尼亚大学。从博士阶段起一直从事主客观视频质量评估相关课题研究。已发表学术论文19篇,曾获得2017 DCC最佳论文奖。2018年加入腾讯后,专注视频全参考质量评估算法研究与应用。作为主要完成人,已开源基于深度学习的全参考视频质量评估算法DVQA。

本文分享自微信公众号 - 腾讯音视频实验室(TencentAVLab) ,作者:王海强

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_ 删除。

本文参与,欢迎正在阅读的你也加入,一起分享。

  相信有很多用户在生活中都是经常使用到手机QQ这个应用的,我们可以通过它和家人朋友聊天、开视频等。时间久了之后就会产生一些聊天记录,而这些聊天记录中往往会存在比较重要的内容,所以很多用户都习惯将自己的聊天记录备份下来,以备不时之需。不过也有很多用户还不知道在手机QQ中要怎么进行聊天记录的备份。所以小编今天就来跟大家分享一下在手机QQ中要怎么备份聊天记录吧。有需要的朋友不妨一起来看看下面这篇教程,希望能够帮助到大家。

  1.首先第一步我们打开手机之后在手机界面中找到QQ图标点击进去。进入到QQ聊天消息列表之后,下一步需要在界面中找到自己要备份聊天记录的好友点击进去。

  2.进入到与该好友的聊天消息界面之后,下一步操作就是在界面中找到聊天消息,并且长按聊天消息,然后在出现的选项中点击多选。

  3.点击多选之后在手机界面的下方会出现一些操作按钮,然后我们点击其中的这个分享按钮,如下图中所示。

  4.最后点击分享按钮就会出现下图所示的界面了,然后我们可以点击上传到微云,或者是发送到电脑,都是可以备份聊天数据的。

  使用上述教程中的方法我们就可以在手机QQ中备份与好友之间的聊天记录了,这些聊天记录对我们来说是非常重要的,所以用户还不知道要如何备份的话赶紧试一试小编分享的方法步骤吧,希望能够对大家有所帮助。

一、app三个基础的技术框架

不知道大家有没有遇到过这种情景,当你做好一个设计方案,满心欢喜地给开发讲解方案的思路和创意时,开发突然说一句:“这个方案实现不了”,这时你整个人都不好了,心里开始嘀咕“这么简单的设计都实现不了,你是搞技术的吗?”然并卵,在产品和开发的催促下,作为设计师的你只能加班加点地改方案。

到底问题出现在哪呢?这其实是由于我们设计师对App技术框架的知识匮乏所导致的,虽然我们不必做到会写代码,但掌握必要的App技术框架原理,能更有效地帮助我们预判哪些方案可行和实现效果较好,来让设计方案更接地气,让我们一起来了解一下App技术框架都有哪些。

框架,你装个.Net就好了”。

其实解决依赖环境的办法很简单,那就是所有机器都用同一套环境。但是对于一些web服务,它所依赖的软件及关联软件可能有上百个,让你去配一台机器已经要吐血了,如果让你把这个服务发布到100台不同的机器上,那么你就应该会阵亡了。同时,很有可能因为不同的机器已有的环境不同,你安装这些依赖的同时还要保证不能影响其它已有应用。

说了这么多,其实就是三个大问题,如何解决环境依赖?如何解决大规模部署?如何解决应用与应用的互相影响?Docker就是这些问题的一种解决方案,它是一个容器,也可以说是一个软件集装箱,这个箱子里面可以塞入特定版本的操作系统、数据库、服务器程序和web应用,这样一套完整的web服务就集成在这个箱子里面了,当要发布服务的时候,直接将这个集装箱放在我们的服务器船上。如果你想发布到100台机器上,没问题,只需要ctrl-c、ctrl-v,将这些集装箱复制到100台机器上,它不会在乎船的配置高低,只要能放得下就行。

如果你想发布10个不同的服务,还是没问题,你只需将这10个不同的集装箱依次排列在服务器船上,它们之间完全不会互相影响,因为各自被锁在不同的箱子里。

有的同学可能会说了,这不就是虚拟机嘛…是的,Docker算是一种轻量级的虚拟机,它比起传统的虚拟机更快,更节省资源。打个比方,虚拟机就是轮船上的豪华包间,即使它用不了这么多资源,它也霸占着不让别人使用,而Docker容器就是一个简单的集装箱,它只占据它需要的资源。

他就打开了百度的页面)来展示一个网页的,同时WebView为网页和原生App建立一个桥梁,让网页和原生App能够看到彼此暴露的一些方法,从而达到互相操作的目的。

当然,这些操作是需要前端页面和终端程序互相协商的。虽然很多App遵守了一些相同的原则,使网页在不同的APP中都能具备相同的能力,但是如果你看到同一个网页在一个App中能够调用一些安卓系统的能力,而在另一个APP中却没有对应的能力也不要觉得奇怪(找对应App的开发勾兑一下就好了)。

一个原生应用为网页开放的能力越多,网页对原生系统的操作能力就越强,就越能做出逼近原生应用的体验。但是,这却是一把双刃剑,因为原生App开放的能力有可能会被恶意的页面利用,对用户造成伤害,如何控制能力的开放,也是需要产品和开发一起思考的问题。

例如微信是一个终端能力的宿主,拥有支付,登录,分享,获取App信息等能力,并以Js接口的形式提供给前端页面使用,前端开发则需要在微信申请对应的Js接口使用权限,才能够在微信中正常使用对应的能力。

最后总结一下,网页塑造界面的优势在于灵活,随时可以更新,而原生APP塑造的界面则能够提供更流畅的用户体验,但是却无法热更新,只能依靠发布版本来提供新功能。通过上面说的这种技术,就可以利用各自的优势,规避各自的劣势来提供更好用户体验,例如在微信中购物的展示是网页形式的,方便运营快速更新,通过Js接口调用起原生的支付界面,给用户更流畅的支付体验,提高支付成功率。

/weixin/android/”来向DNS服务器获取确认“订单(下载)服务器”的IP地址,IP地址在互联网中相当于日常生活中“电话号码”,有了它,就可以连接到这台“订单(下载)服务器”,而DNS服务器就像一个存贮着大量“姓名”(域名)和“电话号码”(IP地址)的黄页。当客户端获得了“订单(下载)服务器”的“电话号码”(ip地址)后,就会连接“订单(下载)服务器”,并告知“订单(下载)服务器”客户端需要获取服务器上的“微信安卓版”apk文件,一般情况下,服务器在这个阶段确认了“订单”后,就会向客户端“快递”(传输)对应的apk文件,当客户端将文件下载完毕后,这次“网购”也就完成了。

下面,我们引入运营商(电信、联通等)网关的概念。运营商网关可以类比成日常生活中的“总机”,接入运营商的互联网设备想要能够“上网”,都需要经过“总机”(运营商网关)的转接。也就是说,在上图中的第二步,我们并不能直接通过“订单(下载)服务器”的“电话号码”(IP地址)联系到“订单(下载)服务器”,而是需要先连接到“总机”(网关),并且告诉它,我们要向某某某服务器下“订单”,经过“总机”的转接,我们才能真正连接到“订单(下载)服务器”。整个过程如下图:

可以发现,DNS服务器和网关的决策,确定了客户端“订单”(下载请求)的走向。而“下载劫持”也就发生在这两个关键节点上。

假设客户端获取下载服务器“电话号码”的DNS服务器被篡改,那么客户端可能会通过“”查询到一个“骗子服务器”的“电话号码”(IP地址),当我们联系到这个“骗子服务器”时,我们的“订单”(下载请求)可能会换来一些奇奇怪怪的“商品”。

当我们遇到这种情况时,可以手动修改DNS服务器IP(具体方法请问度娘)来解决。然而当运营商的“总机”(网关)“出了问题”(这些“问题”一般是运营商主动造成的)时,就没那么容易解决了。假设当客户端拿着“订单(下载)服务器”的电话号码要求“总机”(网关)转接到我们指定的“订单(下载)服务器”时,“总机”(网关)对客户端说“哎呀,不要去A家下载微信了,你去我给你介绍的B家下载“XX助手”吧,比微信好用”(这个过程在技术上是被一个叫做302跳转的机制完成的,如果你不知道什么是302,出门左转,查询我们星期一的文章)。客户端是个实在人,就这样被“引诱”到B家的服务器上下载了。

“总机”(网关)和服务器B就这样沆瀣一气,来骗客户端的下载量。

①正常情况下,涉及前台和用户行为的业务流程:

②涉及后台的产品数据&订单状态更新(部分简略):

按接口类型和属性可分为三类:数据类、交易类和通知类。有一部分为美团接口,另一部分接口需要商家进行开发。

数据类:商家数据对接到美团(涉及到商家的4个接口,拉取产品信息、产品变化通知、拉取景点信息、拉取价格日历)

交易类:“用户——美团——商家”的交易行为(涉及到商家的5个接口)

通知类:包括商家开发的已出票、票已使用、已退款3个接口,美团自有的已退款、查余额、编审状态通知的3个接口。

我做过的接口产品不多,但问题类似,主要包括两类:接口问题、产品问题。接口问题就是无响应、响应过慢、重复响应等,产品问题就是存量少、变价快、时间差导致下架更新不及时等。

在做接口相关的产品时,异常与正常流程同等重要,这与核心用户和边缘用户不是一个概念。所以在考虑每一步的流程时,必须兼顾异常问题的发生与解决方法,尽量避免损害用户体验和商家损失。

一般的解决方法是数据监控,通过对每个业务节点的多项指标进行监控,一旦超出阈值,就可以用邮件、短信等形式通知相关人员,及时解决问题。

接下来我们从两个方面具体探讨如何应对这些问题。

1.用户体验——具体场景&数据监控

对用户来说,流程的任一节点不顺畅,都会导致体验不好,故根据用户行为轨迹来进行数据监控。

①页面展示慢——接口响应时长、用户页面停留时长、跳失率

Reason:实时调接口查询景点&产品信息,因数据量大或频率快导致。

Solution:缓存数据,每N分钟更新一次。

②数据展示异常——后台返回接口异常的次数和概率

Reason:接口超时或异常。

Solution:可以设定重复调用,多次重试失败后,通过邮件等形式通知到运营、技术或商家。

针对数据型接口,对产品进行下架或隐藏处理。

针对交易型接口,下单、支付的问题可以提醒用户、为用户推荐同类产品、对产品进行下架或隐藏处理;退票类问题可以建议用户之后重试,如果比较紧急可以联系客服加急处理。

针对通知型接口,不涉及用户,邮件处理即可,可人工介入更新信息。

③产品变动,特别是变价——下单失败率、变价率、出票失败率

Reason:数据更新有时间差。

当某一产品的失败率或变价率超出规定,可隐藏或下架;

针对某些产品库存少的情况进行提示,预告风险;

设定合理的定时更新任务。

④下单/支付/退票失败——失败率、失败原因

Reason:用户可能多次提交,或者订单已使用、已关闭等客观原因,无法成功。

需要加入检验机制,比如在短时间内重复提交不调用接口,直接返回原结果;

善意提醒用户不要重复提交,如“您的手太快了,请休息30s后再试”;

可以提供IM人工或电话咨询、留言等选项。

⑤服务响应时间长——手工操作订单量和占比

Reason:比如用户提交退票后长时间不退款;支付后长时间不出票

定时调用订单查询接口,更新订单状态并短信/推送消息告知用户;

超过服务规范时间前发送预警邮件,人工介入处理。

2.商家体验——数据监控&具体场景

对商家来说,用户体验不重要,转化率和利润才是重点,故数据监控以业务指标为主。

①重复生单、生单不支付占库存——订单量、订单支付转化率、支付失败率、库存占用量和支付量

Reason:用户手速太快;恶意占库存

Solution:制定规则,同一人只能占一个库存;同一订单最多只能订N个人。

②恶意重复调用接口——涉及到的每个接口调用频率

Reason:比如短时间重复调用某一接口

规定同一IP地址不能在短时间内多次调用;

直接返回第一次调用接口的结果,不再重复调用;

每个接口在同一时间最多N次调用,否则返回失败等。

③因数据更新不及时等导致的亏损——(佣金、广告)投入产出比、人为损失

Reason:用户使用后退款完成、用户支付后变价等

Solution:根据时间差、处理规则来明确划定责任方。

④结算问题——财务对账自身支出(退款)和收入(美团给商家的结算金额)

Reason:平台和商家以“T+N”的方式结算

B端订单系统里的财务对账功能,可以用邮件形式每日发送;

监测异常数据,如当日无结算、结算金额与订单金额不一致。

我要回帖

更多关于 qq在别的电脑登录怎么退出 的文章

 

随机推荐