一种同步播放视频的方法及系统与流程

文档序号:14725961发布日期:2018-06-19 07:23阅读:344来源:国知局

本发明涉及视频播放技术领域,特别涉及一种同步播放视频的方法及系统。



背景技术:

现有的视频播放器普遍采用如下两种方式进行同步播放,一种为基于工业通讯设备来实现同步,其是基于工业通讯卡将多个终端设备通过电缆分别于服务器进行连接,以为多个终端设备提供专用数椐通道,再利用PCI工控卡的瞬间中断等开关量来即时触发实时同步,但该方法对于硬件配置要求较高,并且能够实现同步的终端设备数量有限。另一种方式为基于全局时间同步来实现同步,其是使用硬件时钟系统的全局时间同步,但其需要经常查询系统时间,这样会增加终端的软件实现的负载和复杂度,从而影响同步播放的效果。

因而现有技术还有待改进和提高。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的不足,提供一种同步播放视频的方法及系统,以解决现有多个终端设备同时播放同一视频文件存在的同步性差的问题。

为了解决上述技术问题,本发明所采用的技术方案如下:

一种同步播放视频的方法,其包括:

主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的第一渲染请求;

根据所述第一渲染请求生成同步请求,并向至少一从播放设备发送所述同步请求,其中,同步请求携带待播放文件的文件标识;

各从播放设备对所述同步请求进行验证,并将验证结果反馈至主播放设备;

主播放设备在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧。

所述同步播放视频的方法,其中,所述主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的渲染请求之前包括:

主播放设备与各从播放设备分别连接服务器,并接收服务器发送的播放指令,其中,播放指令携带待播放文件的文件标识。

所述同步播放视频的方法,其中,所述主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的第一渲染请求具体包括:

主播放设备接收所述播放指令,读取所述播放指令携带的文件标识;

根据所述文件标识获取待播放文件的当前视频帧,并根据所述当前视频帧生成第一渲染请求。

所述同步播放视频的方法,其中,所述各从播放设备对所述同步请求进行验证,并将验证结果反馈至主播放设备具体包括:

各从播放设备接收所述同步请求,并提取所述同步请求携带文件标识;

根据所述文件标识判断是否存在所述待播放文件,以对所述同步请求进行验证;

当存在所述待播放文件时,向主播放设备发送验证成功的反馈信息,并渲染所述待播放文件的待渲染视频帧;

当未存在所述待播放文件时,向主播放设备发送验证失败的反馈信息。

所述同步播放视频的方法,其中,所述当存在所述待播放文件时,向主播放设备发送验证成功的反馈信息,并渲染所述待播放文件的待渲染视频帧具体包括:

当存在所述待播放文件时,向主播放设备发送验证成功的反馈信息;

获取待渲染视频帧的第一帧序号,并将所述第一帧序号与主播放设备待渲染的当前视频帧的第二帧序号进行比较;

若第一帧序号与第二帧序号相同,则渲染待渲染视频帧;

若第一帧序号与第二帧序号不相同,则根据第二帧序号查找相应的视频帧,并渲染查找到视频帧。

所述同步播放视频的方法,其中,所述主播放设备在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧具体包括:

主播放设备接收各从播放设备发送的反馈信息,并读取各反馈信息携带的验证结果;

当存在验证结果为验证成功时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧。

所述同步播放视频的方法,其中,所述主播放设备在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧还包括:

当未存在验证结果为验证成功时,间隔预设时间后将当前视频帧对应的同步请求发送至各从播放设备。

一种同步播放视频的系统,其包括一主播放设备以及至少一从播放设备,所述主播放设备分别与各从播放设备连接,所述主播放设备接收播放指令,根据所述播放指令生成第一渲染请求以及同步请求,并将所述同步请求发送至各从播放设备;各从播放设备接收所述同步请求,对所述同步请求进行验证并将验证结果反馈至主播放设备;主播放设备接收各从播放设备发送的反馈信息,并在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,以及生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧。

所述同步播放视频的系统,其还包括服务器,所述服务器分别与主播放设备及各从播放设备连接,并分别向主播放设备及各从播放设备发送待播放文件以播放指令。

所述同步播放视频的系统,其还包括路由器;所述服务器通过路由器分别与主播放设备及各从播放设备相连接,所述主播放设备与各从播放设备通过网口直连。

有益效果:与现有技术相比,本发明提供了一种同步播放视频的方法及系统,所述方法包括:主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的第一渲染请求;根据所述第一渲染请求生成同步请求,并向至少一从播放设备发送所述同步请求;各从播放设备对所述同步请求进行验证,并将验证结果反馈至主播放设备;主播放设备在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧。本发明通过主播放设备控制从播放设备同步渲染同一视频帧,保证不同播放设备同一时刻播放的相同视频的一致,提高了视频播放的同步性。

附图说明

图1为本发明提供的同步播放视频的方法较佳实施例的流程图。

图2为本发明提供的同步播放视频的方法较佳实施例的时序图。

图3为本发明提供的一种同步播放视频的系统较佳实施例的结构原理图。

图4为本发明提供的一种同步播放视频的系统较佳实施例的示意图。

具体实施方式

本发明提供一种同步播放视频的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

如图1和图2所示,本发明提供了一种同步播放视频的方法,其包括:

S10、主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的第一渲染请求。

具体地,所述待播放文件为所述播放指令指示所述主播放设备进行播放的播放文件。所述主播放设备可以获取所述待播放文件,同时从播放设备也可以获取所述待播放文件。所述播放指令可以为服务器发送至主播放设备,同时所述从播放设备也可同步接收到所述播放指令。也就是说,所述主播放设备与从播放设备同时连接同一服务器,通过所述服务器向主从播放设备发送播放指令以及为主从播放设备提供待播放视频文件。相应的,所述主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的渲染请求之前包括:

主播放设备与各从播放设备分别连接服务器,并接收服务器发送的播放指令,其中,播放指令携带待播放文件的文件标识。

具体地,所述服务器分别与所述主播放设备和各从播放设备通过网络连接,并向主播放设备和各从播放设备发送播放指令,并且主播放设备和各从播放设备可以从服务器获取到待播放文件。此外,为了保证主播放设备和各从播放设备获取到的待播放文件相同,所述播放指令可以携带待播放文件的文件标识,这样根据所述文件标识可以确定所述待播放文件,并且保证主播放设备与各从播放设备获取的待播放文件相同。

同时在本实施例中,主播放设备接收到播放指令后,会获取待播放文件当前需要播放的视频帧,记为当前视频帧;并生成当前视频帧的渲染请求,以通过执行所述渲染请求来将所述当前视频帧渲染至视频窗口,以播放所述当前视频帧。相应的,所述主播放设备接收到播放指令时,根据所述播放指令生成待播放文件的当前视频帧的第一渲染请求具体包括:

主播放设备接收所述播放指令,读取所述播放指令携带的文件标识;

根据所述文件标识获取待播放文件的当前视频帧,并根据所述当前视频帧生成第一渲染请求。

S20、根据所述第一渲染请求生成同步请求,并向至少一从播放设备发送所述同步请求,其中,同步请求携带待播放文件的文件标识。

具体地,所述同步请求为所述主播放设备生成,并将发送至各从播放设备以请求各从终端设备同步播放当前视频帧。所述同步请求携带文件标识,以便于从播放设备确定其是否有所述文件标识对应的视频文件需要渲染,也就是说,根据所述文件标识来确定所述从播放设备是否被用于同步播放所述待播放文件。其中,所述主播放设备与各从播放设备均采用网口直接连接,主播放设备通过网口直连将同步请求发送至各从播放设备。

S30、各从播放设备对所述同步请求进行验证,并将验证结果反馈至主播放设备。

具体地,所述各从播放设备对同步请求进行验证指的是各从播放设备判断其是否有所述文件标识对应的待播放文件,并根据判断结果来生成验证结果。所述验证结果包括验证成功和验证失败,所述验证成功为从播放设备存储或者可以获取到所述待播放文件,验证失败为从播放设备未存储以及不可以获取到所述待播放文件。相应的,所述各从播放设备对所述同步请求进行验证,并将验证结果反馈至主播放设备具体包括:

各从播放设备接收所述同步请求,并提取所述同步请求携带文件标识;

根据所述文件标识判断是否存在所述待播放文件,以对所述同步请求进行验证;

当存在所述待播放文件时,向主播放设备发送验证成功的反馈信息,并渲染所述待播放文件的待渲染视频帧;

当未存在所述待播放文件时,向主播放设备发送验证失败的反馈信息。

具体地,所述渲染所述待播放文件的待渲染视频帧指的是对当前需要渲染的视频帧进行渲染。所述待渲染视频帧需要与主播放设备的当前视频帧相同,也就是说,所述待渲染视频帧的帧序号需要与主播放设备的当前视频帧的帧序号相同。其中,所述主播放设备的当前视频帧的帧序号可以是在主设备向从设备发送同步请求时携带,即同步请求携带用于验证待播放文件一致性的文件标识以及主播放设备的当前视频帧的第一帧序号,这样各从设备可以获取到所述第一帧序号,并以所述第一帧序号为基准对其自身待渲染视频帧的帧序号进行验证。相应的,所述当存在所述待播放文件时,向主播放设备发送验证成功的反馈信息,并渲染所述待播放文件的待渲染视频帧具体包括:

当存在所述待播放文件时,向主播放设备发送验证成功的反馈信息;

获取待渲染视频帧的第一帧序号,并将所述第一帧序号与主播放设备待渲染的当前视频帧的第二帧序号进行比较;

若第一帧序号与第二帧序号相同,则渲染待渲染视频帧;

若第一帧序号与第二帧序号不相同,则根据第二帧序号查找相应的视频帧,并渲染查找到视频帧。

具体地,所述第一帧序号与第二帧序号不同说明主播放设备的当前视频帧与从播放设备的待渲染视频帧为所述文件标识对应的播放文件的不同视频帧。而为了使得视频同步,以所述主播放设备的播放进度为基础,对与主播放设备播放进度不同的从播放设备进行调整,以使得各从播放设备的待渲染视频帧均为主播放设备的当前视频帧。

S40、主播放设备在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧。

具体地,所述主播放设备接收到验证成功的反馈信息指的是存在从播放设备向主播放设备发送验证成功的反馈信息。主播放设备在接收到验证成功的反馈信息时,可以直接将当前视频帧渲染至视频窗口。此外,所述主播放设备也可以预先配置渲染策略,并根据所述渲染策略渲染当前视频帧。当然,所述主播放设备也会将所述渲染策略同步值各从播放设备,以使得各从播放设备与主播放设备所采用的渲染策略均相同。

所述播放渲染策略可以是主播放器向各从播放设备以及主播放设备发送渲染确认指令,各从播放设备以及主播放设备均在接收到所述渲染确认指令时,根据所述渲染确认指令进行渲染。其中,所述渲染确认指令仅发送给验证结果为验证成功的从播放设备。此外,所述渲染策略可以为延迟预设时间执行渲染操作,以避免主播放设备与从播放设备传输时间差而造成的播放不同步的问题。其中,所述预设时间可以预先设置的,如,0.01s等。

同时在本实施例中,可以所有从播放设备发送反馈信息携带的验证结果均为验证成功,也可以部分从播放设备发送的反馈信息携带的验证结果为验证成功,还可以没有从播放设备发送反馈信息携带的验证结果均为验证成。相应的,所述主播放设备在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧具体包括:

主播放设备接收各从播放设备发送的反馈信息,并读取各反馈信息携带的验证结果;

当存在验证结果为验证成功时,将当前视频帧渲染至视频窗口,并生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧;

当未存在验证结果为验证成功时,间隔预设时间后将当前视频帧对应的同步请求发送至各从播放设备。

具体地,当未存在验证成功为验证成功时,主播放设备间隔预设时间后重复发送所述同步请求至各从播放设备,并监听各从播放设备的验证结果。若连续预设次数未接收到存在验证结果为验证成功的反馈信息,则提示用户多设备同步播放失败。此外,当部分验证结果为验证成功时,对于验证失败的从播放设备记录其连续同步失败的次数以及同步失败的总次数,当连续同步失败的次数达到第一预设阈值时,提示用户所述从播放设备同步播放失败;当同步失败的总次数达到第二预设阈值时,提示用户所述从播放设备存在故障。这里所述预设次数、第一预设阈值和第二预设阈值均为预设设置的,三者可以相同,如三者均为3。当然,所述三者也可以不同,如预设次数为3,第一预设阈值为4,第二预设阈值为5等。

基于上述同步播放视频的方法,如图3和图4所示,本发明还提供了一种同步播放视频的系统,其包括一主播放设备100以及至少一从播放设备200,所述主播放设备100分别与各从播放设备200连接,所述主播放设备100接收播放指令,根据所述播放指令生成第一渲染请求以及同步请求,并将所述同步请求发送至各从播放设备200;各从播放设备200接收所述同步请求,对所述同步请求进行验证并将验证结果反馈至主播放设备100;主播放设备100接收各从播放设备发送的反馈信息,并在接收到验证成功的反馈信息时,将当前视频帧渲染至视频窗口,以及生成下一视频帧的第二渲染请求以循环同步待播放文件的各视频帧。

所述同步播放视频的系统,其还包括服务器300,所述服务器300分别与主播放设备100及各从播放设备200连接,并分别向主播放设备100及各从播放设备200发送待播放文件以播放指令。

所述同步播放视频的系统,其还包括路由器400;所述服务器300通过路由器400分别与主播放设备100及各从播放设备200相连接,所述主播放设备100与各从播放设备200通过网口直连。

此外,上述系统中各组成部分的具体工作过程在上述方法中已经详细说明,在这里就不再一一陈述。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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