一种视频推荐方法、服务器及客户端
技术领域
本申请涉及互联网技术领域,特别涉及一种视频推荐方法、服务器及客户端。
背景技术
随着互联网技术的不断发展以及网络传输速度的不断攀升,人们越来越习惯于通过视频网站(以及视频网站对应的视频应用)在线观看视频。目前,由于网络中视频的数量十分巨大,视频网站通常会为用户提供视频搜索和视频推荐功能,以使得用户能够从众多的视频中寻找到自己感兴趣的视频。
目前,在进行视频推荐时,视频网站通常会预先为各个视频打上多个标签,这些标签可以用于表明视频的内容。例如,这些标签中可以包括表明视频题材的“惊悚”、“言情”等标签,还可以包括表明视频演员的“张三”、“王二”等标签。当用户观看了一部分视频之后,视频网站的业务服务器可以统计这些视频的标签,从而得出用户感兴趣的视频类型。这样,便可以根据统计的结果,向不同的用户推荐不同的视频。
然而,随着全景视频的普及,上述的视频推荐方法会存在以下问题:
相比于传统的平面视频,全景视频中展示的信息量更加丰富。例如,在一个展示足球比赛的全景视频中,正对用户的可以是足球比赛的视频,而在用户视线左侧可以是拉拉队表演的视频。当用户在观看全景视频时,其可能只对拉拉队表演感兴趣,而对足球比赛不感兴趣。如果按照现有技术中视频推荐的方式,视频网站通常会在用户观看完该全景视频后,向该用户推荐一系列的足球比赛视频,这就会造成推荐的视频无法满足用户真实需求的问题。由上可见,在应用到全景视频的场景中时,现有技术中视频推荐的方法可能会存在无法准确地向用户推荐其感兴趣的视频的问题。
发明内容
本申请实施方式的目的是提供一种视频推荐方法、服务器及客户端,能够向用户提供满足其真实需求的视频,从而提高视频推荐的有效性。
为实现上述目的,本申请实施方式提供一种视频推荐方法,所述方法包括:接收客户端发来的视频加载请求,所述视频加载请求指向全景视频数据;其中,所述全景视频数据表征的全景视频中,包括至少两块展示不同内容的视频区域;向所述客户端反馈所述全景视频数据,以使得所述客户端根据所述全景视频数据渲染得到所述全景视频;接收所述客户端发来的观看区域信息,所述观看区域信息用于表征用户当前观看的目标视频区域;基于所述观看区域信息,向所述客户端反馈推荐视频数据;其中,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
为实现上述目的,本申请实施方式还提供一种服务器,所述服务器包括网络通信端口、存储器以及处理器,其中:所述网络通信端口,用于接收客户端发来的视频加载请求和观看区域信息,并向所述客户端反馈全景视频数据和推荐视频数据;所述存储器,用于存储全景视频数据;所述处理器,用于通过所述网络通信端口接收所述客户端发来的视频加载请求,所述视频加载请求指向所述存储器中的全景视频数据;其中,所述全景视频数据表征的全景视频中,包括至少两块展示不同内容的视频区域;控制所述网络通信端口向所述客户端反馈所述全景视频数据,以使得所述客户端根据所述全景视频数据渲染得到所述全景视频;通过所述网络通信端口接收所述客户端发来的观看区域信息,所述观看区域信息用于表征用户当前观看的目标视频区域;基于所述观看区域信息,控制所述网络通信端口向所述客户端反馈推荐视频数据;其中,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
为实现上述目的,本申请实施方式还提供一种视频推荐方法,所述方法包括:向服务器发送视频加载请求,所述视频加载请求指向所述服务器中的全景视频数据;接收所述服务器反馈的所述全景视频数据,并根据所述全景视频数据渲染得到全景视频;所述全景视频中包括至少两块展示不同内容的视频区域;获取用户当前的观看区域信息,并向所述服务器发送所述观看区域信息;所述观看区域信息用于表征用户当前观看的目标视频区域;接收所述服务器反馈的推荐视频数据;所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
为实现上述目的,本申请实施方式还提供一种客户端,所述客户端包括网络通信端口、显示器及处理器,其中:所述网络通信端口,用于向服务器发送视频加载请求和观看区域信息,并接收所述服务器反馈的全景视频数据和推荐视频数据;所述显示器,用于显示所述全景视频数据表征的全景视频并显示所述推荐视频数据表征的视频;所述处理器,用于控制所述网络通信端口向服务器发送视频加载请求,所述视频加载请求指向所述服务器中的全景视频数据;通过所述网络通信端口接收所述服务器反馈的所述全景视频数据,并根据所述全景视频数据渲染得到全景视频;所述全景视频中包括至少两块展示不同内容的视频区域;获取用户当前的观看区域信息,并控制所述网络通信端口向所述服务器发送所述观看区域信息;所述观看区域信息用于表征用户当前观看的目标视频区域;通过所述网络通信端口接收所述服务器反馈的推荐视频数据;所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
由上可见,本申请可以接收客户端发来的观看区域信息,所述观看区域信息可以用于表征用户在观看全景视频时,当前所观看的目标视频区域。那么在向用户推荐视频时,可以根据所述目标视频区域中展示的内容,将与该展示的内容相适配的视频推荐给用户。这样,尽管全景视频中包含的信息较多,本申请的技术方案还是能够根据用户实际观看的视频区域,向用户推荐其真正感兴趣的视频,从而提高了视频推荐的有效性。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施方式中服务器与客户端的交互示意图;
图2为本申请实施方式中视频区域的示意图;
图3为本申请实施方式中视频标签与视频区域的关联示意图;
图4为本申请实施方式中基于视频标签进行视频推荐的方法流程图;
图5为本申请实施方式中服务器的结构示意图;
图6为本申请实施方式中客户端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
本申请实施方式提供一种视频推荐方法,所述视频推荐方法可以应用于服务器和客户端的系统架构中。所述服务器可以是存储全景视频数据的设备。具体地,所述服务器可以是能够提供视频服务的网站的后台业务服务器。所述网站例如可以是爱奇艺、搜狐视频、Acfun等。在本实施方式中,所述服务器可以为一个具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件。在本实施方式中并不具体限定所述服务器的数量。所述服务器可以为一个服务器,还可以为几个服务器,或者,若干服务器形成的服务器集群。
在本实施方式中,所述客户端可以是用于渲染全景视频数据的电子设备。具体地,所述客户端例如可以是台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、具有网络访问功能的电视机等。或者,所述客户端也可以为能够运行于上述电子设备中的软件。具体的,所述客户端可以为电子设备中的浏览器,所述浏览器中可以加载视频网站平台提供的访问入口。所述视频网站平台例如可以是爱奇艺、搜狐视频、Acfun等,所述访问入口可以是上述网站平台的首页。所述客户端还可以是视频网站平台提供的在智能终端中运行的应用。
本申请实施方式提供一种视频推荐方法,所述视频推荐方法可以应用于服务器中。请参阅图1,所述方法可以包括以下步骤。
S1:接收客户端发来的视频加载请求,所述视频加载请求指向全景视频数据;其中,所述全景视频数据表征的全景视频中,包括至少两块展示不同内容的视频区域。
在本实施方式中,所述服务器中可以提供有全景视频数据库。所述全景视频数据库可以是存储全景视频数据的数据集。所述全景视频数据库可以采用MySQL、Oracle、DB2、Sybase等数据库格式中的任意一种。所述全景视频数据库可以部署在服务器中的存储介质上。
在本实施方式中,所述全景视频数据库中可以存储各种全景视频数据。所述全景视频数据库中的每个全景视频数据可以具备各自的数据标识。所述数据标识与全景视频数据之间可以通过key-value(键值对)的形式进行存储,这样,通过提供的数据标识,便可以从所述全景视频数据库中获取到对应的全景视频数据。
在本实施方式中,所述全景视频数据可以通过绘图标准绘制为全景视频。所述绘图标准例如可以是Open GL标准、WebGL标准等。所述全景视频可以是以指定观测点为中心的球体视频。所述指定观测点可以是观测所述全景视频的中心点,所述指定观测点观测到的图像可以展示于显示器上,以供用户观看。一方面,用户可以通过与显示器或者显示器的输入设备进行交互,从而改变所述指定观测点的视线。例如,用户在显示器上施加向右滑动的手势时,所述指定观测点的视线可以相应地向左偏转,从而可以在显示器上显示全景视频中左侧的视频信息。另一方面,还可以通过带有显示器的电子设备渲染所述全景视频数据,以得到所述全景视频数据表征的全景视频。所述带有显示器的电子设备中可以具备陀螺仪,当所述电子设备发生翻转时,在所述陀螺仪的作用下,所述指定观测点的视线可以随着电子设备的翻转而进行同步的偏转。例如,用户在通过头戴式VR眼镜观看全景视频时,用户可以向下低头,那么受到VR眼镜中陀螺仪的影响,所述指定观测点便可以相应地向下偏转,在所述VR眼镜中可以展示之前视频画面下方的视频画面。
在本实施方式中,所述客户端中可以展示全景视频的链接。所述链接可以是文字链接、图片链接或者视频链接。用户通过点击该链接,从而可以向所述服务器发送视频加载请求。此外,用户还可以在所述客户端中输入指向所述全景视频数据的统一资源定位符(Uniform Resource Locator,URL),从而根据所述URL向所述服务器发送视频加载请求。
在本实施方式中,所述视频加载请求可以是按照预设规则进行编写的字符串。其中,所述预设规则可以是所述客户端与所述服务器之间遵循的网络通信协议。例如,所述视频加载请求可以是按照HTTP协议进行编写的字符串。所述预设规则可以限定视频加载请求中的各个组成部分以及各个组成部分之间的排列顺序。例如,所述视频加载请求中可以包括请求标识字段、源IP地址字段以及目的IP地址字段。所述请求标识字段可以填充所述全景视频数据的标识。所述源IP地址字段可以填写所述客户端的IP地址,所述目标IP地址字段可以填写所述服务器的IP地址。这样,所述视频加载请求便可以从所述客户端发送至所述服务器处。
在本实施方式中,所述视频加载请求指向全景视频数据可以指所述视频加载请求中携带所述全景视频数据的标识。这样,服务器接收到所述视频加载请求后,可以从所述视频加载请求中提取所述全景视频数据的标识。在提取出所述全景视频数据的标识后,所述服务器可以从所述全景视频数据库中读取具备所述标识的全景视频数据。
在本实施方式中,所述全景视频数据表征全景视频可以指通过对所述全景视频数据进行渲染,可以得到所述全景视频。具体地,所述全景视频中通常具备较多的信息,在所述全景视频的不同区域,可以显示不同的视频内容。例如,在一个展示沙滩排球比赛的全景视频中,用户正前方是沙滩排球的比赛,用户左侧是场边啦啦队的表演,用户后方是大海和沙滩的风景。那么在一个全景视频中,可以包括至少两块展示不同内容的视频区域。例如,上述的沙滩排球比赛的全景视频中,可以包括至少三块视频区域,这三块视频区域分别展示沙滩排球的比赛、啦啦队的表演以及大海和沙滩的风景。
在本实施方式中,所述全景视频中包含的视频区域,可以是该全景视频的上传者预先指定的。例如,某个上传者在上传所述沙滩排球比赛的全景视频时,可以预先指定在该全景视频中,共可以划分出三块视频区域,并且该上传者还可以限定每块视频区域展示的视频内容的主题。例如,该全景视频的三块视频区域展示的视频内容的主题可以分别为“排球比赛”、“表演”以及“海景”。
在本实施方式中,所述全景视频中包含的视频区域,还可以是在全景视频上传之后,通过图像识别的技术识别得到的。具体地,在进行图像识别时,通常可以具备图像素材库。在所述图像素材库中可以存储视频中可能出现的各种场景的素材,以及与各个素材相对应的主题。这些场景的素材可以通过特征向量的形式进行存储。当两个素材的内容比较接近时,其对应的特征向量之间的距离也会较近。因此,在进行图像识别时,可以实时分析所述全景视频中各个区域的特征向量,并可以计算分析得到的特征向量与图像素材库中的特征向量之间的距离。当计算得到的距离小于指定阈值时,则表明该区域中展示的内容与图像素材库中的某个素材相似。那么便可以将该区域作为一个视频区域,并且该视频区域中展示的内容的主题可以是相似的素材的主题。例如,在对某个全景视频进行图像识别时,分析得到某一区域中展示的内容为歌舞表演,那么该区域可以作为一个视频区域,并且该视频区域对应的主题可以为“歌舞表演”。这样,通过图像识别的方法,可以确定所述全景视频中包含的视频区域的数量,以及每个视频区域对应的主题。
S2:向所述客户端反馈所述全景视频数据,以使得所述客户端根据所述全景视频数据渲染得到所述全景视频。
在本实施方式中,当服务器从所述全景视频数据库中获取到所述视频加载请求指向的全景视频数据后,可以向所述客户端反馈所述全景视频数据。
在本实施方式中,所述客户端在接收到所述全景视频数据后,便可以基于绘图标准将所述全景视频数据渲染为相应的全景视频。具体地,可以在空间坐标系中渲染所述全景视频数据,从而得到所述全景视频数据表征的球体视频。该球体视频的球心处可以具备指定观测点。通过调整所述指定观测点通的观测角度,从而可以在客户端的显示器上显示所述球体视频的不同部分。
需要说明的是,尽管所述全景视频数据在经过绘图标准渲染之后在空间中呈现的是球体视频,但是用户在通过显示器观看所述球体视频时,由于该球体视频的曲率半径较大,并且所述显示器实际显示的区域相对于整个球体视频而言较小,因此用户从显示器中观看到的球体视频中的一部分可以近似作为平面视频。
在本实施方式中,为了提高视频的加载速度并降低客户端的负载,还可以仅渲染全景视频中的一部分视频,其中,渲染的这部分视频可以是用户当前视域内能够观看到的视频。这样,处于用户当前视域内的视频数据可以被正常渲染,而处于用户当前视域外的视频数据则可以不进行渲染,从而能够减少客户端需要渲染的数据量,以降低客户端的负载。此外,由于渲染的数据量减少,客户端可以较快地向用户展示渲染得到的视频,从而提高视频的加载速度。
S3:接收所述客户端发来的观看区域信息,所述观看区域信息用于表征用户当前观看的目标视频区域。
在本实施方式中,当所述客户端渲染得到所述全景视频后,用户便可以通过客户端的显示器观看所述全景视频。具体地,用户可以通过翻转所述客户端或者与所述客户端的显示器进行交互,改变所述全景视频的指定观测点的视线,从而可以改变在所述显示器上展示的视频内容。
在本实施方式中,所述客户端的显示器上当前展示的视频画面可以是用户感兴趣的内容。这样,可以将所述显示器上当前展示的视频区域作为用户当前观看的目标视频区域。在实际应用中,当所述显示器上仅展示一个视频区域时,可以将该视频区域作为所述目标视频区域。而当所述显示器上展示至少两个视频区域时,则需要对用户真正感兴趣的视频区域进行判定。具体地,在进行判定时,可以确定在所述显示器中展示面积最大的视频区域,并将所述展示面积最大的视频区域作为所述目标视频区域。例如,所述显示器上展示的视频画面中,一部分为排球比赛,另一部分为啦啦队表演。而啦啦队表演的面积占据了整个显示器画面的90%,因此可以判定用户真正感兴趣的是展示啦啦队表演的视频区域。此外,当用户在使用VR眼镜时,还可以通过对用户的瞳孔进行识别,以确定用户当前的视线所对准的视频区域,从而可以将用户的视线所对准的视频区域作为所述目标视频区域。
在本实施方式中,所述全景视频中的视频区域还可以通过角度信息来表征,这样,每块所述视频区域可以与角度信息相关联。具体地,由于所述全景视频为球体视频,那么与所述全景视频中的视频区域相关联的角度信息可以通过方位角和/或俯仰角来表示,还可以通过经度和/或纬度来表示。在本实施方式中,所述角度信息中可以包括起始角度信息和终止角度信息,从而可以通过所述起始角度信息和所述终止角度信息共同限定所述视频区域的角度区间。请参阅图2,假设所述起始角度信息为东经30度和北纬20度,所述终止角度信息为东经60度和南纬20度,那么根据两条经线和两条纬线在所述球体视频上限定的区域便可以是所述视频区域。
需要说明的是,在某些应用场景中,所述起始角度信息或者终止角度信息可以是预先默认的角度,从而可以被缺省。这样,在与所述全景视频中的视频区域相关联的角度信息中,可以仅包含起始角度信息或者仅包含终止角度信息。例如,对于极坐标的情况而言,其起始角度信息可以默认为(0,0),那么仅需要终止角度信息便可以限定视频区域的范围,因此在与所述全景视频中的视频区域相关联的角度信息中,可以仅包含终止角度信息。
在本实施方式中,全景视频的指定观测点通常可以具备一个初始观测视线,该初始观测视线可以是在全景视频数据中预先指定的。所述初始观测视线可以作为基准视线,当用户在观看全景视频时,可以通过翻转客户端或者与客户端的显示器进行交互来改变所述全景视频的指定观测点的视线,那么在本实施方式中,可以利用改变后的视线与所述初始观测视线之间的偏差来表征用户当前的视线。例如,所述初始观测视线对应的方位角可以为0度,那么当用户左右调节所述指定观测点的视线后,当前的视线与所述初始观测视线之间便可以存在夹角,该夹角的大小可以表征用户当前视线的位置。例如,所述夹角为30度时,可以表明所述指定观测点从初始观测视线的位置向右偏转了30度;又例如,所述夹角为-30度时,可以表明所述指定观测点从初始观测视线的位置向左偏转了30度。需要说明的是,全景视频中各个视频区域对应的角度区间以及用于表征用户当前视线的夹角均可以采用同一个基准视线,从而可以保证角度的统一性。这样,可以根据用户当前的视线对应的夹角所处的角度区间,从而可以确定用户当前正在观看的目标视频区域。例如,用户当前视线对应的夹角为45度,而某个视频区域对应的角度区间为-50度至50度,那么可以确定用户当前正在观看该视频区域。
在本实施方式中,在客户端确定了用户当前观看的目标视频区域后,可以向服务器发送观看区域信息,所述观看区域信息可以用于表征用户当前观看的目标视频区域。具体地,所述观看区域信息可以具备多种形式。例如,所述观看区域信息可以包含用户当前的视频对应的夹角。那么当服务器接收到客户端发来的观看区域信息后,可以提取其中的夹角,然后可以通过将该夹角与各个视频区域的角度区间进行匹配,从而可以确定用户当前观看的目标视频区域。
此外,所述观看区域信息中还可以包含视频区域的标识。所述视频区域的标识可以是能够唯一表征视频区域的字符串。例如,在一个全景视频中共包括三块视频区域,那么这三块视频区域的标识可以分别为“A001”、“A002”以及“A003”。在本实施方式中,服务器在向客户端反馈全景视频数据时,所述全景视频数据中可以包含各个视频区域的标识。那么在客户端确定了用户当前观看的目标视频区域后,可以将该目标视频区域的标识添加至观看区域信息中。这样,所述服务器可以提取所述观看区域信息中携带的视频区域的标识,根据所述标识从而可以确定用户当前观看的目标视频区域。
S4:基于所述观看区域信息,向所述客户端反馈推荐视频数据;其中,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
在本实施方式中,在确定了用户当前观看的目标视频区域之后,服务器可以根据所述目标视频区域中展示的内容,向客户端反馈相适配的推荐视频数据。具体地,所述目标视频区域中展示的视频通常可以具备较多的标签,每个标签均可以体现视频的一个方面。例如,在一个中国对阵韩国的足球比赛的视频中,可以具备“足球”、“国足”、“世界杯”、“韩国”、“东方体育馆”等这些标签。又例如,在一个电影的视频中,可以具备“昆丁塔伦蒂诺”、“奥斯卡最佳影片”、“莱昂纳多迪卡普雷奥”、“剧情”、“英文原声”等标签。在本实施方式中,所述服务器中存储的各种视频数据,均可以与一系列的标签相关联。这样,具备相同标签的多个视频可以被视为相关联的视频。相同标签的数量越多,则表明两个视频的相似程度越高。这样,在向客户端反馈推荐视频数据时,可以将与所述目标视频区域中展示的视频具备至少一个相同标签的视频反馈给所述客户端。例如,用户在全景视频中的一个视频区域中观看了昆丁塔伦蒂诺导演的影片之后,服务器可以向客户端推荐昆丁塔伦蒂诺导演的其他影片。
此外,在本实施方式中,与所述全景视频中各个视频区域相对应的推荐视频数据可以是在预先指定的。在全景视频上传时,可以确定其中包含视频区域的数量以及各个视频区域中展示的内容。具体地,可以采用步骤S1中所述的图像识别的技术确定全景视频中包含的视频区域的数量以及各个视频区域对应的主题。这样,服务器可以为每个视频区域分配相关联的推荐视频数据。在进行推荐视频数据分配时,可以将为每个视频区域分别分配具备相同主题的推荐视频数据。例如,全景视频中包括三块视频区域,这三块视频区域中展示的内容的主题可以分别为“排球比赛”、“表演”以及“海景”。这样,在分配推荐视频数据时,可以向视频区域分配相同主题的推荐视频数据。在本实施方式中,服务器中可以存储视频区域的标识与推荐视频数据的关联关系。这样,当服务器接收到观看区域信息后,可以从所述观看区域信息中提取目标视频区域的标识,然后可以根据本地存储的关联关系,查询到与所述目标视频区域的标识相关联的推荐视频数据,从而可以向所述客户端反馈所述推荐视频数据。
由上可见,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配可以指所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容至少在一个方面相同或者相似。例如两个视频均具备相同的演员、相同的风景、相同的导演、题材相同、年份相同等等。
需要说明的是,所述推荐视频数据表征的视频所展示的整体内容可以与所述目标视频区域中展示的内容相适配。例如,所述目标视频区域中展示的内容为某个导演执导的电影,那么所述推荐视频数据表征的视频展示的整体内容便可以是该导演执导的另一部电影。
此外,所述推荐视频数据表征的视频还可以是全景视频,该全景视频中一个区域内展示的内容与所述目标视频区域中展示的内容相适配。例如,所述目标视频区域中展示的内容为拉拉队的表演,那么服务器向客户端反馈的可以是关于篮球比赛的全景视频,只不过在该全景视频的一个区域中也会展示拉拉队的表演。在这种场景下,当客户端接收到所述推荐视频数据后,可以直接在用户的当前视线中展示与所述目标视频区域中展示的内容相适配的视频内容。例如,客户端在接收到有关篮球比赛的全景视频后,可以直接向用户展示拉拉队表演的视频区域,而不是向用户展示篮球比赛的视频区域。
在一个具体应用场景中,用户通过头戴式VR眼镜观看视频网站中关于在迪拜旅游实拍的全景视频。在该全景视频中,可以包括三块视频区域,这三块视频区域分别位于用户的正前方、左侧以及上方。这三块视频区域的标识可以分别为“A001”、“A002”以及“A003”。其中,展现在用户正前方的是酒店中的音乐歌舞表演,用户左侧展现的是酒店中精美的喷泉,用户上方展现的是著名艺术家的名画。用户在观看该全景视频时,对上方展现的名画十分感兴趣,用户便可以仰着头观看上方的名画。此时,VR眼镜中的陀螺仪可以根据VR眼镜的翻转程度,反馈出用户当前的视线与基准视线之间的夹角为俯仰角80度,方位角10度。而在该全景视频中,上方名画所在的视频区域的角度区间为:方位角从-40度到40度,俯仰角从50度到90度。那么VR眼镜此时可以判定,用户当前在观看上方名画所处的视频区域,从而可以将该视频区域的标识“A003”反馈给视频网站的服务器。视频网站的服务器中可以存储视频区域的标识与视频标签的关联关系。那么根据“A003”,可以查询到相关联的标签为“壁画”、“米开朗琪罗”、“文艺复兴”这些标签。此时,服务器可以在本地存储的视频数据中查询包含上述三个标签中任意一个标签的视频数据,并将查询到的视频数据反馈给VR眼镜。这样,VR眼镜便可以在用户观看完全景视频之后,将服务器反馈的视频数据渲染于当前页面中,以供用户选择观看。
在本申请一个实施方式中,所述全景视频中的每块所述视频区域可以与至少一个视频标签相绑定。所述视频标签可以根据视频区域中展示的视频来确定。具体地,每个视频标签均可以体现视频区域展示的视频的一个方面。请参阅图3,在某个视频区域中展示的是中国对阵韩国的足球比赛的视频,那么该视频区域可以具备“足球”、“国足”、“世界杯,”、“鸟巢”等这些视频标签。又例如,在另一个视频区域中,可以具备“美女”、“拉拉队”、“比赛表演”等视频标签。
在本实施方式中,所述视频区域相绑定的视频标签可以是全景视频的上传者预先指定的。例如,某个上传者在上传沙滩排球比赛的全景视频时,可以预先指定在该全景视频中,共可以划分出三块视频区域,并且这三块视频区域展示的视频内容的标签可以分别为“排球比赛”、“表演”以及“海景”。
在本实施方式中,所述视频区域相绑定的视频标签还可以通过图像识别的技术识别得到的。具体地,在进行图像识别时,通常可以具备图像素材库。在所述图像素材库中可以存储视频中可能出现的各种场景的素材,以及与各个素材相对应的视频标签。这些场景的素材可以通过特征向量的形式进行存储。当两个素材的内容比较接近时,其对应的特征向量之间的距离也会较近。因此,在进行图像识别时,可以实时分析所述全景视频中各个视频区域的特征向量,并可以计算分析得到的特征向量与图像素材库中的特征向量之间的距离。当计算得到的距离小于指定阈值时,则表明该视频区域中展示的内容与图像素材库中的某个素材相似。那么便可以将相似的素材对应的标签作为该视频区域相绑定的视频标签。
在本实施方式中,当服务器接收到客户端发来的观看区域信息后,可以确定与所述观看区域信息表征的目标视频区域相绑定的至少一个目标视频标签,并基于所述至少一个目标视频标签向所述客户端反馈推荐视频数据。具体地,所述服务器中存储的各种视频数据,均可以与一系列的标签相关联。这样,具备相同标签的多个视频可以被视为相关联的视频。相同标签的数量越多,则表明两个视频的相似程度越高。这样,在向客户端反馈推荐视频数据时,首先可以确定与所述目标视频区域相绑定的至少一个目标视频标签。确定所述至少一个目标视频标签的方法可以包括从所述目标视频区域绑定的视频标签中,随机抽取指定数量个不重复的视频标签,并将抽取的视频标签作为所述目标视频标签。此外,确定所述至少一个目标视频标签的方法还可以包括统计每个视频标签作为搜索词的次数,并将统计的次数较高的指定数量个视频标签作为所述目标视频标签。
在本实施方式中,确定了所述目标视频区域绑定的至少一个目标视频标签后,便可以基于所述至少一个目标视频标签向所述客户端反馈推荐视频数据。具体地,所述推荐视频数据表征的视频中展示的内容可以与所述目标视频区域中展示的内容相适配。其中,所述相适配可以指所述推荐视频数据表征的视频具备至少一个所述目标视频标签。例如,用户在全景视频中的一个视频区域中观看了昆丁塔伦蒂诺导演的影片之后,服务器可以确定出所述目标视频区域绑定的目标视频标签可以为“昆丁塔伦蒂诺”、“剧情”、“黑人解放”等。此时,服务器根据确定出的上述视频标签,可以向客户端推荐昆丁塔伦蒂诺导演的其他影片,这些影片均具备“昆丁塔伦蒂诺”的视频标签。
在本申请一个实施方式中,所述全景视频中的视频区域可以与角度信息相关联,所述角度信息可以用于表征所述视频区域在所述全景视频中所处的位置。具体地,由于所述全景视频为球体视频,那么与所述全景视频中的视频区域相关联的角度信息可以通过方位角和/或俯仰角来表示,还可以通过经度和/或纬度来表示。在本实施方式中,所述角度信息中可以包括起始角度信息和终止角度信息,从而可以通过所述起始角度信息和所述终止角度信息共同限定所述视频区域的角度区间。例如,假设所述起始角度信息为东经30度和北纬20度,所述终止角度信息为东经60度和南纬20度,那么根据两条经线和两条纬线在所述球体视频上限定的区域便可以是所述视频区域。
在本实施方式中,全景视频的指定观测点通常可以具备一个初始观测视线,该初始观测视线可以是在全景视频数据中预先指定的。所述初始观测视线可以作为基准视线,当用户在观看全景视频时,可以通过翻转客户端或者与客户端的显示器进行交互来改变所述全景视频的指定观测点的视线。那么在本实施方式中,可以利用改变后的视线与所述初始观测视线之间的偏差来表征用户当前的视线。例如,所述初始观测视线对应的方位角可以为0度,那么当用户左右调节所述指定观测点的视线后,当前的视线与所述初始观测视线之间便可以存在夹角,该夹角的大小可以表征用户当前视线的位置。例如,所述夹角为30度时,可以表明所述指定观测点从初始观测视线的位置向右偏转了30度;又例如,所述夹角为-30度时,可以表明所述指定观测点从初始观测视线的位置向左偏转了30度。需要说明的是,全景视频中各个视频区域对应的角度区间以及用于表征用户当前视线的夹角均可以采用同一个基准视线,从而可以保证角度的统一性。
在本实施方式中,所述服务器接收到的观看区域信息中可以包括用户的当前视线与基准视线之间的夹角。这样,在服务器接收到所述观看区域信息后,可以确定所述观看区域信息中的夹角所处的角度区间,从而可以确定用户当前正在观看的目标视频区域。具体地,可以将确定的所述角度区间对应的视频区域确定为所述用户当前观看的目标视频区域。例如,用户当前视线对应的夹角为45度,而某个视频区域对应的角度区间为-50度至50度,那么可以确定用户当前正在观看该视频区域。
在本申请一个实施方式中,所述服务器在向所述客户端反馈全景视频数据时,所述全景视频数据中可以包括视频标签数据,其中,所述视频标签数据用于表征每块所述视频区域绑定的至少一个视频标签。在所述视频标签数据中,可以包括视频区域的标识与视频标签之间的关联关系。这样,客户端在接收到全景视频数据后,可以将全景视频数据中的视频标签数据存储于本地缓存中,并可以根据视频区域的标识,查询得到相应的视频标签。
请参阅图4,在本实施方式中,所述方法还可以包括以下步骤。
S31:接收所述客户端发来的至少一个目标视频标签,所述目标视频标签根据用户观看的目标视频区域确定。
在本实施方式中,所述客户端在接收到全景视频数据后,可以将所述全景视频数据渲染为全景视频,并可以在本地缓存中存储所述全景视频数据中的视频标签数据。所述客户端可以通过步骤S3中描述的方案确定出用户当前观看的目标视频区域。在确定出所述目标视频区域之后,所述客户端可以根据本地缓存中的视频标签数据,查询到所述目标视频区域对应的视频标签。在查询到所述目标视频区域对应的视频标签后,所述客户端可以将查询到的视频标签的整体或者其中的一部分作为目标视频标签向所述服务器发送。具体地,在从查询到的视频标签中抽取一部分标签时,可以随机抽取指定数量个不重复的视频标签,并将抽取的视频标签作为所述目标视频标签。此外,还可以统计每个视频标签作为搜索词的次数,并将统计的次数较高的指定数量个视频标签作为所述目标视频标签。由此可见,客户端发送至服务器处的目标视频标签可以是根据用户观看的目标视频区域确定的。
S41:基于所述至少一个目标视频标签向所述客户端反馈推荐视频数据;其中,根据所述推荐视频数据渲染得到的视频具备至少一个所述目标视频标签。
在本实施方式中,所述服务器中存储的各种视频数据,均可以具备一系列的视频标签。这样,具备相同标签的多个视频可以被视为相关联的视频。相同标签的数量越多,则表明两个视频的相似程度越高。这样,服务器可以基于所述至少一个目标视频标签,向所述客户端反馈推荐视频数据。具体地,服务器向客户端反馈的推荐视频数据可以满足:根据所述推荐视频数据渲染得到的视频具备至少一个所述目标视频标签。例如,用户在全景视频中的一个视频区域中观看了昆丁塔伦蒂诺导演的影片之后,服务器可以确定出所述目标视频区域绑定的目标视频标签可以为“昆丁塔伦蒂诺”、“剧情”、“黑人解放”等。此时,服务器根据确定出的上述视频标签,可以向客户端推荐昆丁塔伦蒂诺导演的其他影片,这些影片均具备“昆丁塔伦蒂诺”的视频标签。
在本申请一个实施方式中,考虑到用户在观看全景视频时,通常会将各个视频区域中的内容均浏览一遍,然后再挑选自己感兴趣的内容观看。因此,为了保证视频推荐的准确性,所述观看区域信息中还可以包括用户观看所述目标视频区域的时长。具体地,所述时长可以通过统计用户的视线在目标视频区域中停留的总时长得到。这样,在向所述客户端反馈推荐视频数据时,可以判断用户观看所述目标视频区域的时长是否足够长。具体地,当用户观看所述目标视频区域的时长达到指定时长时,才向所述客户端反馈推荐视频数据。例如,所述指定时长可以为1分钟,那么当用户观看所述目标视频区域的时长达到1分钟时,便可以向用户使用的客户端反馈与所述目标视频区域中展示的内容相适配的推荐视频数据。如果用户观看所述目标视频区域的时长没有达到1分钟,则不基于所述目标视频区域向客户端反馈推荐视频数据。
由上可见,在本申请中,视频区域可以与角度信息相关联,还可以与视频标签相关联,那么所述角度信息也可以与视频标签相关联。这样,所述角度信息表征的角度区间可以与至少一个视频标签相关联,这种关联关系可以存储于服务器中。那么当客户端获取到用户当前的视线对应的夹角时,可以将该夹角发送至服务器处。服务器可以根据该夹角所处的角度区间,从而确定用户当前的视线所对应的视频标签。此外,这种关联关系还可以由服务器发送至所述客户端,这样,所述客户端可以在确定出所述夹角后,可以在本地查询到该夹角所处的角度区间,从而可以获取用户当前的视线对应的视频标签,从而可以直接向服务器反馈获取到的所述视频标签。
请参阅图5,本申请还提供一种服务器,所述服务器包括网络通信端口100、存储器200以及处理器300。
其中,所述网络通信端口100,用于接收客户端发来的视频加载请求和观看区域信息,并向所述客户端反馈全景视频数据和推荐视频数据。
所述存储器200,用于存储全景视频数据。
所述处理器300,用于通过所述网络通信端口接收所述客户端发来的视频加载请求,所述视频加载请求指向所述存储器中的全景视频数据;其中,所述全景视频数据表征的全景视频中,包括至少两块展示不同内容的视频区域;控制所述网络通信端口向所述客户端反馈所述全景视频数据,以使得所述客户端根据所述全景视频数据渲染得到所述全景视频;通过所述网络通信端口接收所述客户端发来的观看区域信息,所述观看区域信息用于表征用户当前观看的目标视频区域;基于所述观看区域信息,控制所述网络通信端口向所述客户端反馈推荐视频数据;其中,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
在本实施方式中,所述网络通信端口100可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施方式中,所述存储器200可以是用于保存信息的记忆设备。在数字系统中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也可以叫存储器,如内存条、TF卡等。
所述处理器300可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不作限定。
上述实施方式公开的服务器,其网络通信端口100、存储器200以及处理器300实现的具体功能,可以与本申请中服务器一侧的视频推荐方法的实施方式相对照解释,可以实现本申请的视频推荐方法的实施方式并达到方法实施方式的技术效果。
本申请还提供一种视频推荐方法,所述方法可以应用于所述客户端中。请参阅图1,所述方法可以包括以下步骤。
S10:向服务器发送视频加载请求,所述视频加载请求指向所述服务器中的全景视频数据。
在本实施方式中,所述客户端中可以展示全景视频的链接。所述链接可以是文字链接、图片链接或者视频链接。用户通过点击该链接,从而可以向所述服务器发送视频加载请求。此外,用户还可以在所述客户端中输入指向所述全景视频数据的统一资源定位符(Uniform Resource Locator,URL),从而根据所述URL向所述服务器发送视频加载请求。
在本实施方式中,所述视频加载请求可以是按照预设规则进行编写的字符串。其中,所述预设规则可以是所述客户端与所述服务器之间遵循的网络通信协议。例如,所述视频加载请求可以是按照HTTP协议进行编写的字符串。所述预设规则可以限定视频加载请求中的各个组成部分以及各个组成部分之间的排列顺序。例如,所述视频加载请求中可以包括请求标识字段、源IP地址字段以及目的IP地址字段。所述请求标识字段可以填充所述全景视频数据的标识。所述源IP地址字段可以填写所述客户端的IP地址,所述目标IP地址字段可以填写所述服务器的IP地址。这样,所述视频加载请求便可以从所述客户端发送至所述服务器处。
在本实施方式中,所述服务器中可以提供有全景视频数据库。所述全景视频数据库可以是存储全景视频数据的数据集。所述全景视频数据库可以采用MySQL、Oracle、DB2、Sybase等数据库格式中的任意一种。所述全景视频数据库可以部署在服务器中的存储介质上。
在本实施方式中,所述全景视频数据库中可以存储各种全景视频数据。所述全景视频数据库中的每个全景视频数据可以具备各自的数据标识。所述数据标识与全景视频数据之间可以通过key-value(键值对)的形式进行存储,这样,通过提供的数据标识,便可以从所述全景视频数据库中获取到对应的全景视频数据。
在本实施方式中,所述视频加载请求指向所述服务器中的全景视频数据可以指所述视频加载请求中携带所述全景视频数据的标识。这样,服务器接收到所述视频加载请求后,可以从所述视频加载请求中提取所述全景视频数据的标识。在提取出所述全景视频数据的标识后,所述服务器可以从所述全景视频数据库中读取具备所述标识的全景视频数据。
S20:接收所述服务器反馈的所述全景视频数据,并根据所述全景视频数据渲染得到全景视频;所述全景视频中包括至少两块展示不同内容的视频区域。
在本实施方式中,当服务器从所述全景视频数据库中获取到所述视频加载请求指向的全景视频数据后,可以向所述客户端反馈所述全景视频数据。
在本实施方式中,所述客户端在接收到所述全景视频数据后,便可以基于绘图标准将所述全景视频数据渲染为相应的全景视频。具体地,可以在空间坐标系中渲染所述全景视频数据,从而得到所述全景视频数据表征的球体视频。该球体视频的球心处可以具备指定观测点。通过调整所述指定观测点通的观测角度,从而可以在客户端的显示器上显示所述球体视频的不同部分。
在本实施方式中,所述全景视频中通常具备较多的信息,在所述全景视频的不同区域,可以显示不同的视频内容。例如,在一个展示沙滩排球比赛的全景视频中,用户正前方是沙滩排球的比赛,用户左侧是场边啦啦队的表演,用户后方是大海和沙滩的风景。那么在一个全景视频中,可以包括至少两块展示不同内容的视频区域。例如,上述的沙滩排球比赛的全景视频中,可以包括至少三块视频区域,这三块视频区域分别展示沙滩排球的比赛、啦啦队的表演以及大海和沙滩的风景。
S30:获取用户当前的观看区域信息,并向所述服务器发送所述观看区域信息;所述观看区域信息用于表征用户当前观看的目标视频区域。
在本实施方式中,当所述客户端渲染得到所述全景视频后,用户便可以通过客户端的显示器观看所述全景视频。具体地,用户可以通过翻转所述客户端或者与所述客户端的显示器进行交互,改变所述全景视频的指定观测点的视线,从而可以改变在所述显示器上展示的视频内容。
在本实施方式中,所述客户端的显示器上当前展示的视频画面可以是用户感兴趣的内容。这样,可以将所述显示器上当前展示的视频区域作为用户当前观看的目标视频区域。在实际应用中,当所述显示器上仅展示一个视频区域时,可以将该视频区域作为所述目标视频区域。而当所述显示器上展示至少两个视频区域时,则需要对用户真正感兴趣的视频区域进行判定。具体地,在进行判定时,可以确定在所述显示器中展示面积最大的视频区域,并将所述展示面积最大的视频区域作为所述目标视频区域。例如,所述显示器上展示的视频画面中,一部分为排球比赛,另一部分为啦啦队表演。而啦啦队表演的面积占据了整个显示器画面的90%,因此可以判定用户真正感兴趣的是展示啦啦队表演的视频区域。此外,当用户在使用VR眼镜时,还可以通过对用户的瞳孔进行识别,以确定用户当前的视线所对准的视频区域,从而可以将用户的视线所对准的视频区域作为所述目标视频区域。
在本实施方式中,所述全景视频中的视频区域还可以通过角度信息来表征,这样,每块所述视频区域可以与角度信息相关联。具体地,由于所述全景视频为球体视频,那么与所述全景视频中的视频区域相关联的角度信息可以通过方位角和/或俯仰角来表示,还可以通过经度和/或纬度来表示。在本实施方式中,所述角度信息中可以包括起始角度信息和终止角度信息,从而可以通过所述起始角度信息和所述终止角度信息共同限定所述视频区域的角度区间。假设所述起始角度信息为东经30度和北纬20度,所述终止角度信息为东经60度和南纬20度,那么根据两条经线和两条纬线在所述球体视频上限定的区域便可以是所述视频区域。
在本实施方式中,全景视频的指定观测点通常可以具备一个初始观测视线,该初始观测视线可以是在全景视频数据中预先指定的。所述初始观测视线可以作为基准视线,当用户在观看全景视频时,可以通过翻转客户端或者与客户端的显示器进行交互来改变所述全景视频的指定观测点的视线,那么在本实施方式中,可以利用改变后的视线与所述初始观测视线之间的偏差来表征用户当前的视线。例如,所述初始观测视线对应的方位角可以为0度,那么当用户左右调节所述指定观测点的视线后,当前的视线与所述初始观测视线之间便可以存在夹角,该夹角的大小可以表征用户当前视线的位置。例如,所述夹角为30度时,可以表明所述指定观测点从初始观测视线的位置向右偏转了30度;又例如,所述夹角为-30度时,可以表明所述指定观测点从初始观测视线的位置向左偏转了30度。需要说明的是,全景视频中各个视频区域对应的角度区间以及用于表征用户当前视线的夹角均可以采用同一个基准视线,从而可以保证角度的统一性。这样,可以根据用户当前的视线对应的夹角所处的角度区间,从而可以确定用户当前正在观看的目标视频区域。例如,用户当前视线对应的夹角为45度,而某个视频区域对应的角度区间为-50度至50度,那么可以确定用户当前正在观看该视频区域。
在本实施方式中,在客户端确定了用户当前观看的目标视频区域后,可以向服务器发送观看区域信息,所述观看区域信息可以用于表征用户当前观看的目标视频区域。具体地,所述观看区域信息可以具备多种形式。例如,所述观看区域信息可以包含用户当前的视频对应的夹角。那么当服务器接收到客户端发来的观看区域信息后,可以提取其中的夹角,然后可以通过将该夹角与各个视频区域的角度区间进行匹配,从而可以确定用户当前观看的目标视频区域。
此外,所述观看区域信息中还可以包含视频区域的标识。所述视频区域的标识可以是能够唯一表征视频区域的字符串。例如,在一个全景视频中共包括三块视频区域,那么这三块视频区域的标识可以分别为“A001”、“A002”以及“A003”。在本实施方式中,服务器在向客户端反馈全景视频数据时,所述全景视频数据中可以包含各个视频区域的标识。那么在客户端确定了用户当前观看的目标视频区域后,可以将该目标视频区域的标识添加至观看区域信息中。这样,所述服务器可以提取所述观看区域信息中携带的视频区域的标识,根据所述标识从而可以确定用户当前观看的目标视频区域。
S40:接收所述服务器反馈的推荐视频数据;所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
在本实施方式中,在确定了用户当前观看的目标视频区域之后,服务器可以根据所述目标视频区域中展示的内容,向客户端反馈相适配的推荐视频数据。具体地,所述目标视频区域中展示的视频通常可以具备较多的标签,每个标签均可以体现视频的一个方面。例如,在一个中国对阵韩国的足球比赛的视频中,可以具备“足球”、“国足”、“世界杯预选赛”、“韩国”、“东方体育馆”等这些标签。又例如,在一个电影的视频中,可以具备“昆丁塔伦蒂诺”、“奥斯卡最佳影片”、“莱昂纳多迪卡普雷奥”、“剧情”、“英文原声”等标签。在本实施方式中,所述服务器中存储的各种视频数据,均可以与一系列的标签相关联。这样,具备相同标签的多个视频可以被视为相关联的视频。相同标签的数量越多,则表明两个视频的相似程度越高。这样,在向客户端反馈推荐视频数据时,可以将与所述目标视频区域中展示的视频具备至少一个相同标签的视频反馈给所述客户端。例如,用户在全景视频中的一个视频区域中观看了昆丁塔伦蒂诺导演的影片之后,服务器可以向客户端推荐昆丁塔伦蒂诺导演的其他影片。
此外,在本实施方式中,与所述全景视频中各个视频区域相对应的推荐视频数据可以是在预先指定的。在全景视频上传时,可以确定其中包含视频区域的数量以及各个视频区域中展示的内容。具体地,可以采用步骤S1中所述的图像识别的技术确定全景视频中包含的视频区域的数量以及各个视频区域对应的主题。这样,服务器可以为每个视频区域分配相关联的推荐视频数据。在进行推荐视频数据分配时,可以将为每个视频区域分别分配具备相同主题的推荐视频数据。例如,全景视频中包括三块视频区域,这三块视频区域中展示的内容的主题可以分别为“排球比赛”、“表演”以及“海景”。这样,在分配推荐视频数据时,可以向视频区域分配相同主题的推荐视频数据。在本实施方式中,服务器中可以存储视频区域的标识与推荐视频数据的关联关系。这样,当服务器接收到观看区域信息后,可以从所述观看区域信息中提取目标视频区域的标识,然后可以根据本地存储的关联关系,查询到与所述目标视频区域的标识相关联的推荐视频数据,从而可以向所述客户端反馈所述推荐视频数据。
由上可见,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配可以指所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容至少在一个方面相同或者相似。例如两个视频均具备相同的演员、相同的风景、相同的导演、题材相同、年份相同等等。
在本申请一个实施方式中,在获取用户当前的观看区域信息时,可以确定用户当前的视线与基准视线之间的夹角,并将所述夹角作为所述用户当前的观看区域信息。具体地,全景视频的指定观测点通常可以具备一个初始观测视线,该初始观测视线可以是在全景视频数据中预先指定的。所述初始观测视线可以作为基准视线,当用户在观看全景视频时,可以通过翻转客户端或者与客户端的显示器进行交互来改变所述全景视频的指定观测点的视线,那么在本实施方式中,可以利用改变后的视线与所述初始观测视线之间的夹角来表征用户当前的视线。例如,所述初始观测视线对应的方位角可以为0度,那么当用户左右调节所述指定观测点的视线后,当前的视线与所述初始观测视线之间便可以存在夹角,该夹角的大小可以表征用户当前视线的位置。例如,所述夹角为30度时,可以表明所述指定观测点从初始观测视线的位置向右偏转了30度;又例如,所述夹角为-30度时,可以表明所述指定观测点从初始观测视线的位置向左偏转了30度。这样,在确定出用户当前的视线与基准视线之间的夹角后,可以将所述夹角作为所述用户当前的观看区域信息。
此外,在本申请一个实施方式中,所述全景视频数据中可以包括各块视频区域的标识。那么在获取用户当前的观看区域信息时,可以确定在用户当前的视域中展示面积最大的视频区域,并将所述展示面积最大的视频区域的标识作为所述用户当前的观看区域信息。所述用户当前的视域可以指客户端的显示器展示给用户观看的区域。具体地,当所述显示器上仅展示一个视频区域时,可以将该视频区域作为所述目标视频区域。而当所述显示器上展示至少两个视频区域时,则需要对用户真正感兴趣的视频区域进行判定。具体地,在进行判定时,可以确定在所述显示器中展示面积最大的视频区域,并将所述展示面积最大的视频区域作为所述目标视频区域。例如,所述显示器上展示的视频画面中,一部分为排球比赛,另一部分为啦啦队表演。而啦啦队表演的面积占据了整个显示器画面的90%,因此可以判定用户真正感兴趣的是展示啦啦队表演的视频区域。在本实施方式中,服务器在向客户端反馈全景视频数据时,所述全景视频数据中可以包含各个视频区域的标识。所述视频区域的标识可以是能够唯一表征视频区域的字符串。例如,在一个全景视频中共包括三块视频区域,那么这三块视频区域的标识可以分别为“A001”、“A002”以及“A003”。那么在客户端确定了用户当前观看的目标视频区域后,可以将该目标视频区域的标识作为所述用户当前的观看区域信息。
在本实施方式中,当所述展示面积最大的视频区域的数量为至少两个时,可以对用户的视线进行判断,并将用户的视线对准的视频区域的标识作为所述用户当前的观看区域信息,具体地,当用户在使用VR眼镜时,可以通过对用户的瞳孔进行识别,以确定用户当前的视线所对准的视频区域,从而可以将用户的视线所对准的视频区域作为所述目标视频区域。
在本申请一个实施方式中,所述全景视频数据中还可以包括各块视频区域的角度区间。具体地,所述全景视频中的视频区域可以通过角度信息来表征,这样,每块所述视频区域可以与角度信息相关联。具体地,由于所述全景视频为球体视频,那么与所述全景视频中的视频区域相关联的角度信息可以通过方位角和/或俯仰角来表示,还可以通过经度和/或纬度来表示。在本实施方式中,所述角度信息中可以包括起始角度信息和终止角度信息,从而可以通过所述起始角度信息和所述终止角度信息共同限定所述视频区域的角度区间。假设所述起始角度信息为东经30度和北纬20度,所述终止角度信息为东经60度和南纬20度,那么根据两条经线和两条纬线在所述球体视频上限定的区域便可以是所述视频区域。这样,在获取用户当前的观看区域信息时,可以确定用户当前的视线与基准视线之间的夹角,并确定所述夹角所处的角度区间,从而可以将确定的所述角度区间作为所述用户当前的观看区域信息。例如,用户当前视线对应的夹角为45度,而某个视频区域对应的角度区间为-50度至50度,那么可以确定用户当前正在观看该视频区域。这样,客户端便可以将-50度至50度的角度区间作为所述观看区域信息反馈给服务器。
在本申请一个实施方式中,所述全景视频数据中还可以包括视频标签数据,所述视频标签数据可以用于表征每块所述视频区域绑定的至少一个视频标签。具体地,在所述视频标签数据中,可以包括视频区域的标识与视频标签之间的关联关系。这样,客户端在接收到全景视频数据后,可以将全景视频数据中的视频标签数据存储于本地缓存中,并可以根据视频区域的标识,查询得到相应的视频标签。
在本实施方式中,所述客户端在接收到全景视频数据后,可以将所述全景视频数据渲染为全景视频,并可以在本地缓存中存储所述全景视频数据中的视频标签数据。所述客户端可以通过步骤S30中描述的方案确定出用户当前观看的目标视频区域。在确定出所述目标视频区域之后,所述客户端可以根据本地缓存中的视频标签数据,查询到所述目标视频区域对应的视频标签。在查询到所述目标视频区域对应的视频标签后,所述客户端可以将查询到的视频标签的整体或者其中的一部分作为目标视频标签向所述服务器发送。具体地,在从查询到的视频标签中抽取一部分标签时,可以随机抽取指定数量个不重复的视频标签,并将抽取的视频标签作为所述目标视频标签。此外,还可以统计每个视频标签作为搜索词的次数,并将统计的次数较高的指定数量个视频标签作为所述目标视频标签。这样,所述客户端便可以确定用户当前观看的目标视频区域相绑定的至少一个目标视频标签,并向所述服务器发送所述至少一个目标视频标签。在本实施方式中,所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配可以指所述推荐视频数据表征的视频具备至少一个所述目标视频标签。
请参阅图6,本申请还提供一种客户端,所述客户端包括网络通信端口110、显示器210及处理器310。
其中,所述网络通信端口110,用于向服务器发送视频加载请求和观看区域信息,并接收所述服务器反馈的全景视频数据和推荐视频数据;
所述显示器210,用于显示所述全景视频数据表征的全景视频并显示所述推荐视频数据表征的视频;
所述处理器310,用于控制所述网络通信端口向服务器发送视频加载请求,所述视频加载请求指向所述服务器中的全景视频数据;通过所述网络通信端口接收所述服务器反馈的所述全景视频数据,并根据所述全景视频数据渲染得到全景视频;所述全景视频中包括至少两块展示不同内容的视频区域;获取用户当前的观看区域信息,并控制所述网络通信端口向所述服务器发送所述观看区域信息;所述观看区域信息用于表征用户当前观看的目标视频区域;通过所述网络通信端口接收所述服务器反馈的推荐视频数据;所述推荐视频数据表征的视频中展示的内容与所述目标视频区域中展示的内容相适配。
在本实施方式中,所述网络通信端口110可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施方式中,所述显示器210可以是将一定的电子文件通过特定的传输设备显示到屏幕上再反射到人眼的显示工具。所述显示器可以包括液晶LCD显示屏、阴极射线管CRT显示屏、发光二极管LED显示屏等。
所述处理器310可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不作限定。
上述实施方式公开的客户端,其网络通信端口110、显示器210以及处理器310实现的具体功能,可以与本申请中客户端一侧的视频推荐方法的实施方式相对照解释,可以实现本申请的视频推荐方法的实施方式并达到方法实施方式的技术效果。
由上可见,本申请可以接收客户端发来的观看区域信息,所述观看区域信息可以用于表征用户在观看全景视频时,当前所观看的目标视频区域。那么在向用户推荐视频时,可以根据所述目标视频区域中展示的内容,将与该展示的内容相适配的视频推荐给用户。这样,尽管全景视频中包含的信息较多,本申请的技术方案还是能够根据用户实际观看的视频区域,向用户推荐其真正感兴趣的视频,从而提高了视频推荐的有效性。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端、服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端、服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端、服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对服务器和客户端的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。