一种视频同步方法和系统与流程

文档序号:12789963阅读:295来源:国知局
一种视频同步方法和系统与流程

本发明涉及视频同步播放领域,尤其涉及一种视频同步方法和系统。



背景技术:

要在两台或多台硬件设备上同步播放同一个视频,多采用硬件复制或同时播放同一个视频来解决,其中硬件复制一种是直接一分二输出相同画面内容,在需要时切换显示源,不仅仅是视频内容,连其上的overlay都一样;另一种是通过芯片实时采集并输出在另外一个屏幕上;两者均有各自的缺陷,例如无法在各自的屏幕上叠加不同需求的overlay,增加了硬件成本等。采用同时播放一个视频的方法,两个屏幕的驱动硬件(例如机顶盒)独立播放同一个节目源,在硬件负载较低的时候可能可以达到同步的效果,一旦某个硬件的负载上升,播放出现卡顿,两边的播放进度将不再同步;并且当中如果有较多的暂停、恢复操作,也很容易导致两边播放不同步。



技术实现要素:

为此,需要提供一种视频同步方法和系统,解决现有两设备或者多设备间视频不同步的问题。

为实现上述目的,发明人提供了一种视频同步方法,应用于主机和从机间,包括如下步骤:

主机与从机建立起通信连接;

主机发送视频或视频地址给从机;

从机接收视频或视频地址并播放视频;

主机播放视频并发送当前视频播放的主机时间标签给从机;

从机接收主机时间标签并根据主机时间标签调整从机视频播放进度。

进一步地,步骤“从机根据主机时间标签调整从机视频播放进度”包括如下步骤:

从机判断主机时间标签与当前从机视频播放的从机时间标签的差值是否大于预设值;

如果是,则从机调整从机视频播放进度到主机时间标签,并继续播放视频;

否则,从机继续播放视频。

进一步地,还包括如下步骤:

主机接收播控命令;

主机根据播控命令改变主机播放状态并发送播控命令到从机;

从机接收播控命令并根据播控命令改变从机播放状态。

进一步地,步骤“从机调整从机视频播放进度”包括如下步骤:

从机设置主机时间标签到从机的视频解码库。

以及本发明还提供一种视频同步系统,包括主机和从机,主机与从机建立起通信连接,

主机包括视频发送模块、主机视频播放模块、时间标签发送模块;

从机包括视频接收模块、从机视频播放模块、时间标签接收模块、播放进度调整模块;

其中:

视频发送模块用于发送视频或视频地址给从机;

视频接收模块用于接收视频或视频地址;

从机视频播放模块用于根据视频或视频地址并播放视频;

主机视频播放模块用于主机播放视频;

时间标签发送模块用于发送当前视频播放的主机时间标签给从机;

时间标签接收模块用于接收主机时间标签;

播放进度调整模块用于根据主机时间标签调整从机视频播放进度。

进一步地,播放进度调整模块还用于判断主机时间标签与当前从机视频播放的从机时间标签的差值是否大于预设值;

如果是,则调整从机视频播放进度到主机时间标签,并继续播放视频;

否则,继续播放视频。

进一步地,主机包括主机命令接收模块、主机命令响应模块、主机命令转发模块;

从机包括从机命令接收模块、从机命令响应模块;

主机命令接收模块用于主机接收播控命令;

主机命令响应模块用于根据播控命令改变主机播放状态;

主机命令转发模块用于发送播控命令到从机;

从机命令接收模块用于从机接收播控命令;

从机命令响应模块用于根据播控命令改变从机播放状态。

进一步地,播放进度调整模块还用于设置主机时间标签到从机的视频解码库。

区别于现有技术,上述技术方案通过主机向从机发送视频或者视频地址,可以使得从机播放的内容与主机是相同的。同时主机向从机发送时间标签,从机通过比较时间标签,即可以根据时间标签调整从机播放进度,达到从机播放进度与主机播放进度的同步,同时由于主从机播放的内容是相同的,则达到主从机视频同步的目的。本发明的从机进一步可以通过判断时间标签是否大于预设值,从而判断到当前播放进度与主机播放进度是否差异过大,在差异过大时才进行进一步调整,这样在视频同步的基础上,又可以避免过频繁地调整从机播放进度而影响用户观看感受,同时也避免过多消耗从机处理资源。

附图说明

图1为本发明一实施方式的方法流程图;

图2为本发明一实时方式的系统结构示意图。

附图标记说明:

200、主机,

201、主机包括视频发送模块, 202、主机视频播放模块,

203、时间标签发送模块, 204、主机命令接收模块,

205、主机命令响应模块, 206、主机命令转发模块,

210、从机,

211、从机包括视频接收模块, 212、从机视频播放模块,

213、时间标签接收模块, 214、播放进度调整模块;

215、从机命令接收模块, 216、从机命令响应模块。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1到图2,本实施例首先提供一种视频同步方法,应用于主机和从机间,本发明中的主机和从机可以为两个电子设备,如机顶盒。主机和从机都包含有用于建立起通信连接的通信模块,可以是有线通信模块或者无线通信模块,以及主从机可以播放视频。具体地,本方法包括如下步骤:步骤S101主机与从机建立起通信连接,主从机根据通信连接可以直接通信。而后在步骤S102主机发送视频或视频地址给从机。视频即视频文件,如存储在主机存储器上的视频文件。视频地址可以是视频网络地址或者视频共享地址等,视频网络地址的视频源可以是互联网上的,视频共享地址的视频源可以是局域网服务器内的,主机或者从机根据视频地址可以获取到相应的视频。

在步骤S112中,从机接收视频或视频地址并播放视频。如果从机接收到的是视频,从机可以将视频数据包放到视频解码器中解码并播放,如果从机 接收到的是视频地址,从机可以从视频地址上获取视频并放到视频解码器中解码并播放。此时在步骤S103中主机也要播放视频。特别要说明的是,主机播放视频的时机可以是任意的,可以在步骤S102前面或者在步骤S103中,只要在发送主机时间标签之前即可。在步骤S103中主机发送当前视频播放的主机时间标签给从机。其中,时间标签为pts(为Presentation time-stamp的简称,表示显示时间标签),时间标签对应当前视频播放的进度时间,时间标签可以通过上述的通信连接进行发送。

主机发送主机时间标签后,进入步骤S113从机接收主机时间标签。而后进入步骤S114并根据主机时间标签调整从机视频播放进度。步骤S114调整的目的是使得从机视频播放的时间标签与主机时间标签能一致,从而实现主机播放进度与从机播放进度同步。

步骤S114中,从机根据主机时间标签调整从机视频播放进度具有多种具体的实施方式,如在从机每次接收到主机时间标签后,就用主机时间标签更新从机的播放进度,这样能达到同步的目的,但存在需要较多地消耗从机处理资源的问题。而在某些实施例中,步骤S114可以包括如下步骤:从机判断主机时间标签与当前从机视频播放的从机时间标签的差值是否大于预设值;如果是,则从机调整从机视频播放进度到主机时间标签,并继续播放视频;否则,从机继续播放视频。即在更新播放进度之前先进行判断,如果时间差距较小,小于预设值(如1ms或10ms等),则认为是同步的,则不进行播放进度更新的动作,继续播放视频即可。而如果差距较大,则认为不同步,则进行播放进度更新进度,使得播放进度同步。这样在比较差距时,允许有一定的微小差距,但不用非常频繁的设置pts,则可以达到主从机同步的效果,又不会因为多频繁地更新播放进度而出现卡顿现象。当然,主机可以每间隔一个固定的时间后,就发送一次主机时间标签,以保证整个播放过程中的主从机播放进度同步。

在某些实施例中,用户可以对主机的视频播放过程进行播放控制,从而 可以改变播放状态,如进行暂停、播放、停止等播放控制。为了实现从机与主机相同的播放状态,则还包括如下步骤:步骤S104主机接收播控命令。播控命令即播放控制命令,用户通过点击播放控制按钮可以触发播控命令,则主机可以接收到播控命令。而后步骤S105主机根据播控命令改变主机播放状态并发送播控命令到从机,播控命令同样可以通过通信连接进行发送。而后步骤S115从机接收播控命令并在步骤S116根据播控命令改变从机播放状态。这样,用户在主机处点击暂停后,主机的播放进度会暂停,同时,从机也会接收到播放控制后暂停播放进度,实现了播放进度的同步。

本发明中从机调整播放进度的方式可以有多种,如可以直接快进或者快退到主机时间标签处,这样用户看起来不至于卡顿。或者在某些实施例中,步骤“从机调整从机视频播放进度”包括如下步骤:从机设置主机时间标签到从机的视频解码库,这样从机的播放进度即可以快速调整到与主机的一致。

以下将以发送的是视频的实施例和发送的是视频地址的实施例对本发明进行进一步的说明。

在发送的是视频的实施例中,主从机可以是机顶盒,有两个相同的可独立运行的SoC硬件,其中一个作为主机,另一个作为从机。具体步骤如下:

1.主从机各自的播放器初始化时除了初始化播放器参数外,主机额外初始化一个与从机通信的链路,即建立起通信连接。

2.播放器播放过程中主机读取视频的节目数据,将节目数据发送到从机,并且送到自己的底层解码库,在主机上实现视频播放。

3.从机收到主机发来的节目数据后,送到自己的底层解码库,进行解码并播放。

4.主机通过另外一个线程获取当前主机的pts信息,将主机的pts信息发送给从机。

5.从机收到主机发来的pts,与自己的pts相比较,如果差距较大则认为从机与主机不同步了,此时将收到的pts设置到自己的解码库,两者即可同步。

6.主机的播放器收到播控命令后,将播控命令发送到从机,并且相应的改变自己的播放状态。

7.从机收到主机的播控命令后,直接跟进播控命令改变自己的播放状态,即可达到与主机相同的状态。

在发送的是视频地址的实施例中,从机的节目源与主机一样,各自向服务器请求同一个节目源,这个节目源即视频地址对应的视频,包括如下步骤:

1.主从机各自的播放器初始化时除了初始化播放器参数外,主机额外初始化一个与从机通信的链路,即建立起通信连接。

2.播放开始时主机根据视频地址向服务器请求节目源,同时发送消息给从机,告诉从机节目源的地址。

3从机收到主机发来的节目源地址,向服务器请求数据。

4.主从机各自收到节目数据后,将数据送到各自的底层解码库,根据视频地址进行视频播放。

5.主机通过另外一个线程获取当前主机的pts信息,将主机的pts信息发送给从机。

6.从机收到主机发来的pts,与自己的pts相比较,如果差距较大则认为从机与主机不同步了,此时将收到的pts设置到自己的解码库,两者即可同步。

7.主机的播放器收到播控命令后,将命令发送到从机,并且相应的改变自己的播放状态。

8.从机收到主机的播控命令后,直接跟进命令改变自己的播放状态,即可达到与主机相同的状态。

以及本发明还提供一种视频同步系统,如图2所示,包括主机200和从机210,主机与从机建立起通信连接,主机包括视频发送模块201、主机视频播放模块202、时间标签发送模块203;从机包括视频接收模块211、从机视频播放模块212、时间标签接收模块213、播放进度调整模块214。

其中:视频发送模块用于发送视频或视频地址给从机;视频接收模块用 于接收视频或视频地址;从机视频播放模块用于根据视频或视频地址并播放视频;主机视频播放模块用于主机播放视频;时间标签发送模块用于发送当前视频播放的主机时间标签给从机;时间标签接收模块用于接收主机时间标签;播放进度调整模块用于根据主机时间标签调整从机视频播放进度,使得从机时间标签与从机时间标签一致,即实现了主机和从机的视频播放进度一致,实现了播放的同步。在某些实施例中,主机的时间标签可以是网络延时时间和视频播放时间标签的和,可以使得主从机的同步更加精准。网络延时时间可以通过得到主从机间ping延时后除于二得到。

在某些实施例中,播放进度调整模块还用于判断主机时间标签与当前从机视频播放的从机时间标签的差值是否大于预设值;如果是,则调整从机视频播放进度到主机时间标签,并继续播放视频;否则,继续播放视频。这样可以不用频繁更新播放进度,节约处理资源。

为了实现播放控制的同步,进一步地,主机包括主机命令接收模块204、主机命令响应模块205、主机命令转发模块206;从机包括从机命令接收模块215、从机命令响应模块216;主机命令接收模块用于主机接收播控命令;主机命令响应模块用于根据播控命令改变主机播放状态;主机命令转发模块用于发送播控命令到从机;从机命令接收模块用于从机接收播控命令;从机命令响应模块用于根据播控命令改变从机播放状态。

作为一种可选实施例,播放进度调整模块还用于设置主机时间标签到从机的视频解码库,主机时间标签设置到视频解码库后视频进度即改变成主机时间标签。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没 有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

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