一种视频同步显示的方法、装置及系统与流程

文档序号:21362386发布日期:2020-07-04 04:36阅读:402来源:国知局
一种视频同步显示的方法、装置及系统与流程

本申请涉及视频技术领域,尤其涉及一种视频同步显示技术。



背景技术:

随着当前多媒体技术与网络技术的快速发展,数字视频迅速增长。vr(virtualreality,虚拟现实)技术越来越成熟,其具体内涵是综合利用计算机图形系统,各种控制手段和接口设备,在计算机中给用户提供沉浸感觉的技术。随着技术的快速普及,vr技术越来越被普通消费者所接受和体验。

当前市面上的主要vr体验设备为虚拟现实头戴显示器设备(headmountdisplay,hmd),简称vr头显或vr眼镜,是利用仿真技术、计算机图形学人机接口技术、多媒体技术、传感技术、网络技术等多种技术集合的产品,是借助计算机及最新传感器技术创造的一种崭新的人机交互手段。

vr眼镜和目标设备的视频画面同屏技术,可以将用户使用vr眼镜体验到的vr视频画面同步显示到目标设备的显示屏上,让其看到的画面与他人分享。

采用视频连接线可以将vr设备与目标设备进行有线连接,从而达到将vr设备的画面在目标设备上输出,是当前大多数vr设备采取的画面同屏方案。该方案需要在vr设备上增加一个视频输出端口,采用有线的方式,将视频画面输出至目标设备,这种方式需要有线连接,采用该方案无法摆脱的有线的束缚,而且需要增加vr设备硬件成本。

miracast是wi-fialliance于2012年9月19日宣布启动的wi-ficertifiedmiracasttm认证项目。vr设备和目标设备经过miracast认证之后,且两端设备的系统支持miracast功能,可以基于此方案实现vr设备与目标设备的屏幕镜像,以无线的方式将vr设备的画面同屏至目标设备上。该方案需要vr设备及被同屏设备均需经过miracast认证,需要设备系统级的功能支持,局限性较高。



技术实现要素:

本申请提供一种视频同步显示的方法、设备及系统,用以通过信令的方式实现视频同屏显示,降低同屏设备之间的传输带宽需求和实现难度,提升用户体验。

第一方面,提供一种视频同步显示的方法,该方法应用于播放同屏视频内容的用户设备侧。该方法包括:用户设备播放第一视频;所述用户设备接收与目标设备开始进行同步显示的指示;响应于所述同步显示的指示,所述用户设备获取所述第一视频的状态信息,所述视频状态信息用于所述目标设备与所述用户设备同步播放所述第一视频的画面;所述用户设备向所述目标设备发送所述视频状态信息,以便于所述目标设备根据所述视频状态信息,同步播放所述第一视频的画面。

在一种可能的设计中,所述视频状态信息包括视频标识信息和视频播放进度信息。

在一种可能的设计中,所述视频状态信息还包括用户姿态数据,该设计能够使得用户姿态数据也能够同步传输给目标设备,实现更好的虚拟现实同步效果。

在一种可能的设计中,用户设备对所述用户姿态数据进行抑制计算,根据抑制计算的结果发送所述用户姿态数据。该设计能够节省发送出去的用户姿态数据,节约网络流量,避免轻微动作生成的姿态数据传输造成的扰动。

在一种可能的设计中,所述用户设备根据与所述目标设备的网络连接方式,选取近场或者远场方式向所述目标设备发送所述视频状态信息,从而更加智能和灵活的实现视频同步信息的传输。

在一种可能的设计中,所述用户设备对所述视频状态信息进行封装后发送给所述目标设备,从而使得同步信息的传输更有保障和兼容性。

在一种可能的设计中,所述用户设备检测到视频播放状态发生变化,重新获取所述第一视频的视频状态信息并发送给所述目标设备。

在一种可能的设计中,所述用户设备检测到播放进度同步或纠正指令,所述用户设备采集视频播放进度和速度信息并发送给所述目标设备。

第二方面,提供一种视频同步显示的方法,该方法应用于同屏显示的目标设备端,该方法包括:目标设备接收用户设备发送的第一视频的状态信息;所述第一视频的状态信息是所述用户设备采集的正在所述用户设备上播放的所述第一视频的状态信息;所述目标设备根据所述视频状态信息,同步播放所述第一视频的画面。

在一种可能的设计中,所述视频状态信息包括视频标识信息和视频播放进度信息,所述目标设备根据所述视频标识信息找到对应的第一视频文件,根据所述视频播放进度信息定位到对应的播放位置。

在一种可能的设计中,所述视频状态信息还包括用户姿态数据,所述目标设备根据所述用户姿态数据,对相应位置的所述第一视频的播放画面进行还原。

在一种可能的设计中,目标设备还可以根据接收到的视频播放进度和速度信息,发起播放进度纠正操作。例如,目标设备判断当前播放进度与所述收到的用户设备的视频播放进度是否存在偏差,例如可以是判断偏差是否大于某个预设的阈值(如2秒);如果判断进度存在偏差,则目标设备对当前播放的视频的进度进行纠正,即纠正为所述收到的用户设备的视频播放进度值;目标设备将播放速度调整为接收到的所述用户设备的播放速度;当然,如果目标设备判断和用户设备的播放速度相同,则可以不需要进行播放速度调整。该设计可以在用户设备或者目标设备上配置定期进行纠偏操作机制,从而保证用户设备和目标设备显示同步的准确性。

第三方面,提供一种用于视频同步显示的用户设备,所述用户设备包括:视频播放模块,视频状态信息获取模块,视频状态信息发送模块,所述视频播放模块,用于播放第一视频;所述视频状态信息获取模块,用于收到与目标设备开始进行同步显示的指示后,获取所述第一视频的状态信息,所述视频状态信息用于所述目标设备与所述用户设备同步播放所述第一视频的画面;所述视频状态信息发送模块,用于向所述目标设备发送所述获取的视频状态信息,以便于所述目标设备根据所述视频状态信息,同步播放所述第一视频的画面。

第四方面,提供一种用于视频同步显示的目标设备,所述目标设备包括:视频状态信息接收模块和同步视频播放模块;所述视频状态信息接收模块,用于接收用户设备发送的第一视频的状态信息;所述第一视频的状态信息是所述用户设备采集的,正在所述用户设备上播放的所述第一视频的状态信息;同步视频播放模块,用于根据所述视频状态信息,在所述是目标设备上同步播放所述第一视频的画面。

第五方面,本申请实施例提供一种芯片,包括处理器和存储器;该存储器用于存储计算机执行指令,处理器与该存储器连接,当该芯片运行时,处理器执行该存储器存储的该计算机执行指令,以使该芯片执行上述任一视频同步显示的方法。

第六方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述任一视频同步显示方法。

第七方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包含有指令,当所述指令在计算机上运行时,使得所述计算机执行上述任一视频同步显示方法。

另外,第二方面至第七方面中任一种设计方式所带来的技术效果可参见上述第一方面中不同设计方法所带来的技术效果,此处不再赘述。

本申请还提供了一种用于视频同步显示的系统,包括上述用户设备以及目标设备,这些系统组成分别实现上述各方面所述的对应方法。

可以理解地,上述提供的任一种设备、计算机存储介质、计算机程序产品、芯片、用于终端定位的系统均用于实现上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单的介绍。

图1是本申请提供的一种视频同步显示系统架构示意图;

图2是本申请提供的一种用户设备发起视频同步显示的一个实施例的流程图;

图2a是本申请提供的一种利用球面线性方向公式计算用户转头动作示意图;

图3是本申请提供的一种用户设备和目标设备通过注册和绑定机制实现通信示意图;

图4是本申请提供的一种视频播放状态的变化触发视频同步显示的方法流程图;

图5是本申请提供的一种视频同步显示过程中的播放进度纠正方法流程图;

图6是本申请提供的一种用户设备可能的结构示意图;

图7是本申请提供的一种目标设备可能的结构示意图;

图8是本申请提供的一种用户设备或者目标设备可能的结构示意图。

具体实施方式

为使本申请解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将以实施例的形式结合附图对本申请的技术方案作进一步详细的描述。所述详细的描述通过使用方框图、流程图和/或示例提出了设备和/或过程的各种实施例。由于这些方框图、流程图和/或示例包含一个或多个功能和/或操作,所以本领域技术人员将理解可以通过许多硬件、软件、固件或它们的任意组合单独和/或共同实施这些方框图、流程图或示例内的每个功能和/或操作。

本发明实施例提供的一种视频同步显示的系统示意图,如图1所示,所述系统包括用户设备101,目标设备102,视频服务器103(可选),以及同步信息传输网络104。用户设备101和目标设备102通过同步信息传输网络104连接,同步信息传输网络104可能包含有注册服务器(近场场景)和指令转发服务器(远场场景)。用户设备101和/或目标设备102上可以保存有可播放的视频内容,也可以是用户设备101和/或目标设备102从视频服务器103上获取视频内容来播放;下面对本发明实施例涉及的网络实体进行进一步的说明:

用户设备101:具备视频播放功能和网络连接功能的视频播放设备,用户设备101是当前用户正在观看并可以操作的设备,用户设备101可以播放自身存储的视频内容,也可以通过连接视频服务器103获取视频内容来播放;用户设备101可以采集其当前播放的视频的状态信息并发送给目标设备102;所述视频状态信息,是指目标设备102可以据此同步播放和当前用户设备101相同视频画面的信息,例如视频内容的标识信息以及视频播放进度信息,还可以进一步包括用户姿态数据(如hmd姿态数据),视频的其他属性等信息;用户设备101还可以判断与目标设备102的网络关系,并选择合适的网络通路来传输视频状态信息;用户设备101可以是一种虚拟现实(vr)设备,例如头戴式显示器(hdm),通过各种头戴式显示设备,向眼睛发送光学信号,甚至双目立体视觉信号,实现虚拟现实的效果。

目标设备102:作为被同屏(或者说视频显示同步)的设备端,通过同步信息传输网络104接收用户设备101发送的视频状态信息,根据视频状态信息,找到对应的视频内容对视频画面进行还原;目标设备102可以是一个或多个,多个目标设备102可以根据同样的视频状态信息,同步显示与用户设备101同样的画面。

视频服务器103:为用户设备101和/或目标设备102提供视频服务,根据用户设备101或者目标设备102请求的视频id或者地址提供视频内容或视频播放服务。

同步信息传输网络104:是用户设备101向目标设备102传输媒体状态信息的网络通路。

在近场场景下(位于同一网段),注册服务器为用户设备101和目标设备102开展视频同屏业务提供注册机制,让用户设备可以发现进行同屏的目标设备,便于双方建立连接并实现同屏功能,此时用户设备101和目标设备102通过同步信息传输网络104直接传输媒体状态信息数据。基于内部网络的通信方式包括不限于dlna、webservice、javasocket、websocket;

在远场场景下,用户设备和目标设备可以通过指令转发服务器转发传输媒体状态信息,指令转发服务器的部署方式包括不限于imserver、xmppserver、socketserver、webservice等协议方式。

本发明实施例提供的视频同步显示的系统不需要通过对视频内容进行镜像的方式实现用户设备和目标设备的同屏显示,即不需要用户设备将正在播放的视频画面本身的图像信息传输给目标设备,降低了用户设备和目标设备之间在同屏过程中的数据带宽需求;由于用户设备和目标设备只要具备网络通信功能即可实现同屏,不需要增加额外的硬件成本,故具备很好的设备兼容性;另外,对于可以播放vr视频内容的用户设备来说,由于本发明实施例的系统中用户设备与被同屏设备之间没有画面镜像关系,一方面,用户设备可以基于自身的设备能力给使用用户设备的用户提供双目输出的vr效果(例如vr眼镜),另一方面,可以在目标设备上可以实现正常的单目输出,使得观看目标设备的用户可以有更好的体验。

图2为根据图1所示的系统,用户设备发起与目标设备进行视频同步显示的一个实施例的流程图。

s201.用户设备播放视频;

用户设备播放视频,可以是对视频内容的播放,例如打开各种视频文件;也可以是用户开始玩游戏,进入游戏画面,即播放实时渲染出来的游戏视频,视频画面可以根据用户(游戏玩家)的动作生成或者变化;

用户设备播放的视频内容,可以是自身存储的视频内容,也可以是从视频服务器(或者游戏服务器)中获取并播放的视频,例如视频服务器是一种流媒体服务器。

s202.用户设备接收与目标设备进行同步显示的指示;

进行同步显示的指示可以是用户在用户设备(即视频播放设备)上操作触发生成,例如,用户在某个视频播放界面或者vr应用的界面上点击触发与目标设备进行同屏显示,也可以是目标设备请求与用户设备进行同步显示而发送给用户设备的指示,还有可能是用户设备的默认配置。

s203.响应于所述同步显示的指示,所述用户设备获取正在播放的视频的状态信息,即视频状态信息;

在用户设备确定需要与目标设备进行同步显示(同屏)后,对当前播放视频的视频状态信息进行采集,所述视频状态信息,是指可以发送给目标设备,所述目标设备可以据此同步播放和当前用户设备相同视频画面的信息,但不包括视频画面或者视频内容本身(例如视频画面图像的编解码数据);

如果用户设备即时播放的视频显示画面与用户姿态、动作或者视角无关(即用户的即时姿态、动作或观看角度,移动速度等,对视频的即时显示内容不存在影响),则视频状态信息包括视频内容的标识信息以及视频播放进度信息。视频内容的标识信息用于让目标设备找到同样的视频文件,视频播放进度信息用于让目标设备将对所述视频文件的播放进度定位到和用户设备一样的播放位置,以确保二者对外呈现相同的视频画面(包括视频开始);进一步的,如果用户设备和目标设备对视频的播放速度不一致或者可能不一致,所述视频状态信息还包括视频的播放速度信息;具体的,视频状态信息可以包括:正在播放视频的媒体id、视频的名称、正在播放视频的地址、正在播放视频的时间点位置、视频的播放速率、亮度,分辨率,音量大小,字幕信息等,具体的视频状态信息的参数类型,个数或名称还可以有其他表现形式,本发明实施例不做限定;

进一步的,如果用户设备播放的视频内容或画面,可以受到用户即时的姿态、动作或者视角的影响,例如vr眼镜播放的视频内容或者画面角度,会随用户头部视角(一般可以对应为用户的的hmd姿态数据)的不同而呈现不同的内容或者画面,则所述正在播放的视频状态信息中,还可以进一步包括用户的即时姿态信息,例如用户的hmd姿态数据;

用户设备对视频状态信息的采集,可以是只在发起同步的时候采集一次,这样可以节约处理资源和网络带宽,因为双方设备的很多默认配置是一样的,例如默认的视频播放速度;也可以是发起同步后持续周期性进行采集直到同屏结束;可以是在发起同步的时候采集所有视频状态信息,后续只采集某些特定的视频状态信息,例如发起同屏的时候采集了所有视频状态信息发送给目标设备,后续则只是周期性的采集用户姿态信息或者播放进度进行发送;对于用户的即时姿态信息,可以在视频的每一帧渲染时采集,也可以根据需要,设置成其他采集周期。

s204.用户设备向目标设备发送所述视频状态信息;

用户设备和目标设备可能位于同一个ip网关内的子网,即同一个网段(可称为近场场景),在近场场景下,用户设备和目标设备通过内部网络直接传输视频状态信息;基于内部网络的通信方式所采用的通信协议,包括不限于dlna、webservice、javasocket、websocket等;

用户设备和目标设备可能位于不同的网段甚至不同的网络(可称为远场场景),在远场场景下,用户设备设备和目标设备可以通过转发服务器转发视频状态信息。转发服务器的部署方式包括不限于imserver、xmppserver、socketserver、webservice等。

用户设备获取到视频状态信息以后,可以根据目标设备的情况,预先注册的信息,或者用户的选择,来选择向目标设备发送视频状态信息的方式,例如:如果为近场,则通过内部网络直接向目标设备发送指令;如果为远场,则通过转发服务器向目标设备转发指令。

用户设备对采集到的视频状态信息的发送,可以是和视频状态信息的采集同步,即采集到视频状态信息后立刻或者说尽最大努力马上发送出去,也可以是根据网络情况进行配置,例如视频状态信息的采集周期是每毫秒采集一次,但如果网络状况不好,则对视频状态信息的发送调整为每10毫秒发送一次最新采集到的视频状态信息,待网络传输情况好转或者切换到更好的网络时,可以再重新对视频状态信息进行每毫秒的刷新;

类似的,目标设备也可以根据网络状况或者自身设备能力,对视频状态信息的接收和处理周期进行灵活的配置或适配,本实施例在此不做赘述。通过这种灵活的配置,可以在保证一定的同步效果的情况下,降低网络传输的数据量。

对于用户设备采集用户姿态信息的情形,为保证用户设备与目标设备之间的网络数据传递的流畅度,用户设备在将采集到的姿态数据发送出去之前可以进行抑制计算,计算方法可以是计算用户在两个连续时间点上的姿态形成的三维空间夹角,只有夹角大于某个阈值,才将用户姿态数据(例如hdm姿态数据)发送给目标设备,通过这种方式可以避免用户姿态发生微小抖动时对数据造成的扰动,以达到性能和效果的平衡。

示例性的,对于hmd姿态数据的情形,可以采用hmd姿态同步抑制算法来处理:

计算方法为取hmd传感器检测到的描述当前用户观看的方向的两个连续姿态数据(x1,y1,z1,w1)和(x2,y2,z2,w2),计算两个姿态数据的三维空间夹角,空间夹角的一种计算方法为:

如果空间夹角小于阈值,则进行视角计算公式抑制,不需要发送hmd姿态数据,只有夹角大于阈值,才将hdm姿态数据发送给目标设备。

用户设备还可以对获取到的视频状态信息进行封装后再发送,以便于网络传输或者目标设备的接收或解析,用户设备可以在封装信息中添加指示或标识信息,指示目标设备根据视频状态信息进行同屏操作,当然,目标设备也可以被配置为检测到某些视频状态信息即发起同屏操作,此时所述指示或者标识信息则没有必要了。具体的封装形式可以参考后续实施例的描述。

s205.目标设备根据所述视频状态信息,播放所述视频。

具体的,目标设备可以进行如下动作:

目标设备对收到的视频状态信息进行合法性判断(可选);例如判断是合法用户设备或者合法视频内容后,才允许进行同步显示;目标设备根据设置,可以根据部分或者所有视频状态信息进行处理;

目标设备根据视频的标识(或地址),请求相应的视频服务器(例如cdn服务器)获取相应的视频内容;或目标设备根据所述视频的标识或者地址,在自身存储的视频内容中找到相应的视频内容;

目标设备根据所述视频状态信息中的播放进度信息,还原所述视频的播放进度;

目标设备根据所述视频状态信息中的播放速度信息,还原所述视频的播放速度;(可选,例如用户设备和目标设备也可以都以默认速度播放);

可选的,目标设备还可以根据所述视频状态信息中的其他信息,例如亮度,分辨率,音量大小,字幕信息等参数,还原所述视频在用户设备上的播放画面或播放状态;

进一步的,如果所述视频状态信息中还包含有用户的即时姿态信息,则目标设备进一步根据所述姿态信息,对所述播放的视频进行还原,例如,在目标设备收到hmd传感器姿态数据后,根据姿态数据对相应的视频画面进行渲染,还原用户在用户设备(如vr眼镜)中看到的视频画面。具体的还原方式,可以是对姿态数据进行插值计算,以计算出中间状态,对用户转头动作进行还原;以hmd姿态数据为例,在被同屏设备收到hmd传感器姿态数据后,根据姿态数据对视频画面进行渲染,以还原用户设备用户看到的视频画面。本发明实施例为了更逼真的还原用户观看画面的转头动作,在相临的两个传感器数据之间采取球面线性插值的方法,对用户转头动作进行还原。如附图2a所示:假定由用户转头动作产生的两个相临的四元数数据为p=(x1,y1,z1,w1),q=(x2,y2,z2,w2)。目标设备获取中间t点,根据中间t点的值对用户的姿态进行还原,球面线性方向的公式为:

其中t时间点的空间方向p(t)=slerp(p,q,t)。注:sphericallinearinterpolation(球面线性插值简称为slerp)。

本发明实施例的视频同步显示的方法不需要通过镜像的方式实现同屏显示,即不需要将正在播放的视频画面本身的信息传输给目标设备,降低了同屏过程中的数据带宽需求;由于用户设备和目标设备只要具备网络通信功能即可实现同屏,不需要增加额外的硬件成本,故具备很好的设备兼容性;另外,对于可以播放vr视频内容的用户设备来说,由于本发明实施例方法中用户设备与被同屏设备之间没有画面镜像关系,一方面,用户设备可以基于自身设备能力给用户设备的用户提供双目输出的vr效果(例如vr眼镜),另一方面,可以在目标设备上实现正常的单目输出,使得观看目标设备的用户可以有更好的体验;本发明实施例还通过抑制算法来处理用户姿态数据,避免了用户姿态发生微小抖动时对数据传输造成的扰动,以达到性能和效果的平衡。

为了让用户设备可以发现进行同屏的目标设备,便于双方建立连接并实现同屏功能,可以采用下面的方式来实现:

一种实施方式是用户设备上预先配置好目标设备信息,例如目标设备的ip地址,目标设备上也配置成可接受特定用户设备的同屏请求并根据特定用户设备的指令完成同屏显示的功能,这样用户设备和目标设备启动之后,用户设备可以直接向预设的目标设备发起同屏功能;这种方式适用于比较固定的同屏和被同屏设备之间的搭配,可以较快的实现同屏连接。

还可以通过注册或绑定机制来实现,参考附图3所示:如果用户设备和目标设备位于同一网段(内部网络,近场场景),双方预先在内部网络上进行注册。以基于dlna协议实现用户设备和目标设备之间的通信为例,一种注册机制可以如下:

s301.用户设备作为控制端(dmc)在内部网络进行注册。

s302.目标设备作为播放端(dmp)在内部网络进行注册。

s303.用户设备在使用同屏功能之前,在内部网络上查询可用的目标设备。以基于dlna网络协议为例,用户设备为dlna协议栈中定义的dmc端,检测网络中是否存在可应用于同屏播放的dmp端。

s304.用户设备在内部网络中发现可用的目标设备后,则选择网络传输方式为近场场景;

如果近场场景不可用,用户设备可以切换至远场场景传输播放状态信息,但是用户设备和被同屏设备(目标设备)在使用远场场景的同屏功能之前,需要先建立起绑定关系,以对双方设备进行配对,以指令转发服务器基于xmppserver部署为例:

s305.用户设备和目标设备需要设置自身的设备id,并分别通过xmppserver建立起用户设备和目标设备间的绑定关系,以使用户设备和目标设备之间可以相互识别,绑定关系可以提前建立,也可以即时发起建立;

s306.用户设备和目标设备分别和指令转发服务器建立连接;以指令转发服务器基于xmppserver部署为例,用户设备和目标设备分别基于自身的设备id和xmppserver建立xmpp起连接,以保证xmpp同屏服务处于可用状态;

s307.用户设备选择网络传输方式为远场场景实现与目标设备的同屏。

用户设备可以同时支持近场场景连接和远场场景连接方式,方便基于网络状况灵活选择;通过注册或者绑定机制,可以实现用户设备和目标设备在近场或者远场场景下的发现和连接,并且用户设备和目标设备可以对同屏关系进行灵活的配置。

图4为本申请提供的一种视频同步显示的方法。本实施例与图2所展示的实施例的主要区别在于,本实施例中,是视频播放状态的变化触发用户设备重新对部分或全部视频播放状态信息进行重新采集并发送给目标设备,步骤如下:

s401.用户设备检测到视频播放状态发生变化;

触发视频播放状态发生变化的方式,可以是用户在用户设备上操作触发视频播放状态变化,该操作的触发方式根据视频播放界面(例如vr应用的界面)设计的不同而有所不同,例如可以是按压,拖动,点击,甚至是声控等;视频播放状态的变化可以为:暂停、进度的变化,速率的变化(用户调整播放速率),重播等;还可以是非人为方式引发的视频播放状态变化,例如视频忽然中断,或者被插入(视频内容本身以外)广告等;

s402.用户设备对当前播放的视频状态信息进行采集和传输;

这里重新采集的视频状态信息,可以和步骤s203中采集的视频状态信息相同,也可以不同,例如重新采集的视频状态信息,可以只包含变化了的播放状态信息,例如只包含播放进度信息;视频状态信息的采集和传输方法,可以参考前述步骤s203-s204,在此不再赘述。

s403.目标设备根据所述用户设备发送的视频状态信息,播放所述视频。

参考前述步骤s205,在此不再赘述,需要说明的是,目标设备可以判断本次收到的视频状态信息与前一次收到的视频状态信息的异同(目标设备缓存了上一次的视频状态信息),只根据产生变化的参数进行处理。

本实施方式能够对用户设备上各种播放状态变化,做出适当的同屏响应,从而可以实现更加准确的同屏效果。

图5为本申请提供的一种视频同步显示过程中的播放进度纠正方法。本实施例与图2或者图4所展示的实施例的区别在于,本实施例中,目标设备可能因为各种原因,其播放进度和用户设备当前的播放进度产生了偏差,原因可能是用户设备触发与目标设备同步后却并没有将播放速度信息发送给目标设备,或者目标设备即使收到了播放速度信息,但并没有按照所述播放速度信息执行播放操作,导致后续由于播放速度不同产生的播放进度偏差;也可能是用户设备上的视频播放状态发生变化,但没有被目标设备感知到等,因此需要有一种机制来保证用户设备和目标设备之间对播放进度不一致的情况进行纠正:

s501.用户设备采集视频播放进度和视频播放速度信息;

可以在用户设备或者目标设备上配置定期进行纠偏操作的机制,例如,在发起视频同步后,每隔一分钟触发纠正操作,触发采集所述进度和速度信息(或者只采集进度信息);也可以在界面上设置专门的按钮,由用户触发进行同步纠正。

s502.用户设备向目标设备发送所述视频播放进度和视频播放速度信息;

用户设备采集播放进度和速度信息以后,还可以给目标设备发送指示或标识信息,指示所述目标设备根据所述播放进度和速度信息进行播放进度纠正;

s503.目标设备根据接收到的所述视频播放进度和速度信息,发起播放进度纠正操作。

目标设备可以被配置为只要收到视频播放进度和速度信息,即发起播放进度纠正操作,也可以根据收到的信息中包含有进行播放进度纠正的指示或标识信息后,再发起播放进度纠正;

播放进度纠正操作,具体可以包括:

s5031.目标设备判断当前播放进度与所述收到的用户设备的视频播放进度是否存在偏差,例如可以是判断偏差是否大于某个预设的阈值(如2秒);

s5032.如果判断进度存在偏差,则目标设备对当前播放的视频的进度进行纠正,即纠正为所述收到的用户设备的视频播放进度值;

s5033.目标设备将播放速度调整为接收到的所述用户设备的播放速度;当然,如果目标设备判断和用户设备的播放速度相同,则可以不需要进行播放速度调整。

本发明实施例可以在用户设备或者目标设备上配置定期进行纠偏操作机制,从而保证用户设备和目标设备显示同步的准确性。

下面介绍视频状态信息的封装方式,本发明实施例中,在近场(dlna网络传输方式)和远场(xmpp网络传输方式)情况下,可以采取同样的封装方法进行视频状态信息的传输。涉及到视频状态信息的封装有如下几个场景。

图2描述的启动视频同屏的实施例中,对视频状态信息可以用如下指令格式封装,如下表1所示:

表1

指令封装示例如下:

{“action”:“functioncall”,“functiontype”:“startplay”,“mediacode”:”2”,“playbybookmark”:”1”,“playbytime”:”180”,playurl,””,isvr:”1”}

该指令封装方式中包含了对目标设备开始进行同屏操作的指示:startplay,如果目标设备被配置为收到媒体状态信息(表1中为mediacode,playbybookmark,playbytime,playurl)后即启动同屏操作,则也可以不需要包含同屏操作指示。从上述封装示例可以看出,用户设备发送的视频状态信息包括了媒体标识信息mediacode为2,播放进度信息:播放时间点为180;还可以看到,如果用户设备为vr设备,例如用户设备可以采集到用户的姿态信息(如hmd姿态信息),则封装的媒体状态信息中还包含指令目标设备进入vr同屏状态的指示:“1:进入vr状态”,表示目标设备要根据视频状态信息中的用户姿态信息,对播放的视频画面进行渲染等处理。

图3描述的视频播放状态的变化触发的同屏操作实施例中,视频状态信息可以用如下指令格式封装,如下表2所示:

表2

指令封装示例:

{“action”:”functioncall”,“functiontype”:“trickplaycontrol”,“trickplaymode”:2,“fastspeed”:8}

从表2的封装示例可以看出,用户设备播放状态发生了变化,发生了“2:快进或快退”;快进的速度是8倍速。

图4描述的视频同步显示过程中的播放进度纠正方法实施例中,对视频状态信息的发送可以用如下指令格式封装,如表3所示:

表3

指令封装示例:

{“action”:”functioncall”,“functiontype”:“trickplaycontrol”,“trickplaymode”:2,3,”seekpostion”:”150”,,“fastspeed”:2}

从表3的封装示例可以看出,用户设备触发了播放进度纠正,当前的播放进度是150,播放速度是2倍速(当然也可以是具体速度值),目标设备收到这些信息后则可以对播放进度进行相应的纠正。

本发明的所有实施例中,用户设备都可以进一步采集用户的姿态数据,例如在vr设备中采集到hmd姿态数据,并将用户姿态数据也发送给目标设备,目标设备根据姿态数据处理相应的视频显示画面,对hmd姿态数据的封装可以如下表4所示:

表4

指令封装示例:

{“action”:”functioncall”,“functiontype”:“trickplaycontrol”,“trickplaymode”:20,isvr,”1”,“quaternion”:”0,0,0,1”}

从表4的封装示例可以看出,用户设备采集到用户的姿态信息(如hmd信息),封装的媒体状态信息中包含指令目标设备进入vr同屏状态的指示(当然如果目标设备默认已经是vr状态,可以不用再专门指示),还包含了具体的hmd姿态数据四元组的值:“0,0,0,1”。

表1-4中从不同的实施例的角度描述了视频状态信息的封装形式或者格式,可以理解的是,在实际封装时,表1-4中的具体参数的含义、名称以及个数,可以根据实际需要进行调整,例如,可以只封装部分参数,也可以将表1-4中所有参数的合集进行封装,也可以封装更多的参数。还可以通过封装将几个参数进行绑定,例如将姿态数据和播放进度绑定,从而保证姿态同步画面的准确性。

以上主要从用户设备和目标设备之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,用户设备和目标设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据前述方法实施例对用户设备,目标设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。

图6示出了前述实施例中所涉及的用户设备600的一种可能的结构示意图,包括:视频播放模块601,视频状态信息获取模块602和视频状态信息发送模块603。

所述视频播放模块601,用于播放第一视频;所述视频状态信息获取模块602,用于收到与目标设备开始进行同步显示的指示后,获取所述第一视频的状态信息,所述视频状态信息用于所述目标设备与所述用户设备同步播放所述第一视频的画面;所述视频状态信息发送模块603,用于向所述目标设备发送所述获取的视频状态信息,以便于所述目标设备根据所述视频状态信息,同步播放所述第一视频的画面。

可选的,所述视频状态信息包括视频标识信息和视频播放进度信息。

可选的,所述视频状态信息还包括用户姿态数据。

可选的,所述视频状态信息发送模块用于向所述目标设备发送所述视频状态信息,还包括:所述视频状态信息发送模块用于对所述用户姿态数据进行抑制计算,根据抑制计算的结果发送所述用户姿态数据。

可选的,所述视频状态信息发送模块根据与所述目标设备的网络连接方式,选取近场或者远场方式向所述目标设备发送所述视频状态信息。

可选的,所述视频状态信息发送模块进一步用于对所述视频状态信息进行封装后发送给所述目标设备。

可选的,所述视频状态信息获取模块进一步用于检测到视频播放状态发生变化,则重新获取所述第一视频的视频状态信息并发送给所述目标设备。

可选的,所述视频状态信息获取模块进一步用于检测到播放进度同步或纠正指令,采集视频播放进度和速度信息并发送给所述目标设备。

图7示出了前述实施例中所涉及的目标设备700的一种可能的结构示意图,包括:视频状态信息接收模块701和同步视频播放模块702;所述视频状态信息接收模块701,用于接收用户设备发送的第一视频的状态信息;所述第一视频的状态信息是所述用户设备采集的,正在所述用户设备上播放的所述第一视频的状态信息;同步视频播放模块702,用于根据所述视频状态信息,在所述是目标设备上同步播放所述第一视频的画面。

可选的,所述视频状态信息包括视频标识信息和视频播放进度信息,所述同步视频播放模块702进一步用于根据所述视频标识信息找到所述第一视频文件,根据所述视频播放进度信息定位到对应的播放位置并播放。

可选的,所述视频状态信息还包括用户姿态数据,所述同步视频播放模块702进一步用于根据所述用户姿态数据,对相应位置的所述第一视频的播放画面进行还原。

前述所有实施例涉及的所有相关内容均可以援引到用户设备和目标设备对应功能模块的功能描述,在此不再赘述。由于本申请实施例提供的用户设备和目标设备用于执行前述所有实施例中的方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。

图6和图7中的“模块”可以为专用集成电路(applicationspecificintegratedcircuit,asic)、电子线路、执行一个或多个软件或固件程序的处理器和存储器、组合逻辑电路和其他提供上述功能的组件。所述集成的单元或者模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

请参阅图8,是本申请实施例提供的另一种用户设备或者目标设备的结构示意图。该结构包括处理器801、存储器802以及收发器803以及显示器804。处理器801连接到存储器802和收发器803,例如处理器801可以通过总线连接到存储器802和收发器803。

处理器801可以被配置为用户设备执行前述实施例中相应的功能,也可以被配置为支持目标设备执行前述实施例中相应的功能。该处理器801可以是中央处理器(英文:centralprocessingunit,cpu),网络处理器(英文:networkprocessor,np),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,asic),可编程逻辑器件(英文:programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,fpga),通用阵列逻辑(英文:genericarraylogic,gal)或其任意组合。

存储器802存储器用于存储程序代码等。存储器802可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:randomaccessmemory,缩写:ram);存储器502也可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:rom),快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器802还可以包括上述种类的存储器的组合。

收发器803可以是通信模块、收发电路,用于实现前述实施例中用户设备和目标设备之间,或者用户设备和目标设备与视频服务器等其他网络单元之间的数据、信令等信息的传输。

处理器801可以调用所述程序代码以执行如图2-图5所述方法实施例中的操作。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质。例如,可以利用磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))来存储或传输所述计算机指令。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1