一种同步组播和视频转发方法、系统与流程

文档序号:18544233发布日期:2019-08-27 21:31阅读:247来源:国知局
一种同步组播和视频转发方法、系统与流程

本发明涉及视频组播技术领域,具体而言涉及一种同步组播和视频转发方法、系统。



背景技术:

视频同步播放目前流行的做法,从硬件来说,可以使用视频分配器,将同一个视频源播放设备通过分配器连接到多个显示设备上,多用于较近距离的同步播放;从软件来说,常用做法为视频源设备将视频通过网络组播方式发出来,再使用组播流接收设备收到组播数据并组合播放,适用于同一网络下不同空间的设备进行同步播放,但是此类用法由于每个视频源设备的视频解析性能存在差异,容易造成网络延迟、同步误差较大(可能会超过3秒)等问题。



技术实现要素:

本发明目的在于提供一种同步组播和视频转发方法、系统,使同一网络下的多个播放器能够同时同步播放视频节目,减小播放延迟和同步误差,达到唇音同步播放的效果;针对异常解析等因素导致的视频播放异步,采用微调策略进行调整,使其重新实现同步播放。

为达成上述目的,结合图1,本发明提出一种同步组播和视频转发方法,所述方法包括:

s1:将即将播放的视频文件分析打包,转换成包含视频流和音频流的数据包,以网络组播的方式发布至每个接收端。

s2:采用接收端接收数据包,解析数据包、执行音视频解码控制,以获取需要播放的视频帧和对应的音频流,记录每一个视频帧的接收时间和设定播放时长。

s3:将接收时间后的设定延迟时间设定为所述视频帧的播放时间,在播放时间播放所述视频帧和对应的音频流,以及

实时监控每个视频帧的实际播放时间和设定播放时间是否一致,如果不一致,采用预设的微调策略以调整该当前视频帧、以及后续m个视频帧的播放时长,以使第m+1个视频帧的播放时间和其设定播放时间相同,所述m为大于等于0的整数。

基于前述同步组播和视频转发方法,本发明还提及一种同步组播和视频转发系统,所述系统包括通过同一网络连接的数据源端和若干个接收端。

所述数据源端用于将即将播放的视频文件分析打包,转换成包含视频流和音频流的数据包,以网络组播的方式发布至每个接收端。

所述接收端包括以下模块:

(1)用于接收数据包,解析数据包、执行音视频解码控制,以获取需要播放的视频帧和对应的音频流,记录每一个视频帧的接收时间和设定播放时长的模块。

(2)用于将接收时间后的设定延迟时间设定为所述视频帧的播放时间,在播放时间播放所述视频帧和对应的音频流的模块。

(3)用于实时监控每个视频帧的实际播放时间和设定播放时间是否一致,如果不一致,采用预设的微调策略以调整该当前视频帧、以及后续m个视频帧的播放时长,以使第m+1个视频帧的播放时间和其设定播放时间相同的模块,所述m为大于等于0的整数。

本发明所提及的方法对数据源端和接收端具体采用的设备类型没有限定,例如可以采用现有技术中常用的硬件终端播放盒,也可以采用特殊定制的硬件终端播放盒。

数据源端将要播放的视频文件分析打包,转换为视频流和音频流,以网络组播的方式发布出去。接收端接收到数据之后,需要经过一定时间的数据包解析、音视频解码控制,然后根据预设的播放控制策略,通知所有的接收端在同一时间开始播放视频画面。

在网络中发送组播包的情况下,在同一个网络下的接收端肯定是在同一时间接收到这些流信息。但是接收端会由于性能的不同,造成解析播放视频所需要的时间可能会不一样,导致不同接收端的视频帧的播放时间不一致,不同接收端的同步误差大。

本发明提及的预设的播放控制策略是指,将接收端接收到某一帧信息为起始时间点,经过一个相同的相对时间后进行播放,这样就可以保证所有的接收端能够完全同步播放视频。

另外,为了避免由于网络波动、解析异常等因素导致其中一个接收端的视频帧播放延迟,出现同步误差、甚至跳帧播放现象,本发明还提供了一种微调策略对前述现象进行调整,使其在若干帧之后重新实现同步组播,具体的,实时监控每个视频帧的实际播放时间和设定播放时间是否一致,如果不一致,采用预设的微调策略以调整该当前视频帧、以及后续m个视频帧的播放时长,以使第m+1个视频帧的播放时间和其设定播放时间相同,所述m为大于等于0的整数。

以上本发明的技术方案,与现有相比,其显著的有益效果在于:

1)根据预设的播放控制策略,通知所有的接收端在同一时间开始播放视频画面,以实现同步组播。

2)采用微调策略调整因异常因素导致的视频播放异步,在人眼不可查的情况下逐一调整当前视频帧、以及后续m个视频帧的播放时长,使第m+1个视频帧的播放时间和其设定播放时间相同,重新实现同步组播。

3)根据实际需求确定设定延迟时间的数值,以实现视频的不同延迟播放效果。

4)根据实际需求确定调整步差时长,以平衡观看效果和调整总时长。

应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。

结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。

附图说明

附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:

图1是本发明的同步组播和视频转发方法的流程图。

具体实施方式

为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。

结合图1,本发明提及一种同步组播和视频转发方法,所述方法包括:

s1:将即将播放的视频文件分析打包,转换成包含视频流和音频流的数据包,以网络组播的方式发布至每个接收端。

s2:采用接收端接收数据包,解析数据包、执行音视频解码控制,以获取需要播放的视频帧和对应的音频流,记录每一个视频帧的接收时间和设定播放时长。优选的,所述设定播放时长根据视频流数据的每秒帧数计算得到。假设某个视频流数据是25帧/秒,那么一帧数据就是播放40毫秒。

s3:将接收时间后的设定延迟时间设定为所述视频帧的播放时间,在播放时间播放所述视频帧和对应的音频流,以及

实时监控每个视频帧的实际播放时间和设定播放时间是否一致,如果不一致,采用预设的微调策略以调整该当前视频帧、以及后续m个视频帧的播放时长,以使第m+1个视频帧的播放时间和其设定播放时间相同,所述m为大于等于0的整数。

在同一个网络下发送组播包,接收端在同一时间接收到这些流信息。虽然接收端会由于性能的不同,造成解析播放视频所需要的时间可能会不一样,针对这一问题,本发明提出,可以将接收端接收到某一帧信息为起始时间点,经过一个相同的相对时间后进行播放,这以保证所有的接收端能够完全同步播放视频了。

例如,接收端收到数据后,需要将收到的数据包拆分解析,寻找到需要播放的视频帧,再进行音视频的解码过程,这个过程会由于接收端性能的不同而可能会有一定的偏差,如果直接解析解码完成就开始播放,肯定是会有一定的不同步情况出现的。但是通过设置了一个设定延迟时间,假设设定延迟时间为1000毫秒,使接收端从收到某一帧画面数据后的1000毫秒开始播放该帧数据。由于所有接收端同时收到数据,又具有同样的设定延迟时间,所有接收端是在统一的时间播放同样的数据信息,保证了视频播放的同步性。

前述设定延迟时间可以根据实际需求调整,如果需要以较短的延迟来同步播放视频,那么可以将1000毫秒改短,优选的,设定延迟时间的数值需要参考接收端解析解码的时间,如果延迟时间过短,数据包还没解析完毕,则无法播放、或者播放错误,因此,所述设定延迟时间大于等于最长视频解析时长,确保每个接收端的视频帧均能解析完成。

如果解析解码时间过长,导致某一帧没法显示,就可能出现跳帧播放(从视频播放的现象来看就有可能出现视频不连贯的情况)。对于这个问题,本发明设置了微调策略。

所述预设的的微调策略包括:

s31:获取所述视频帧的实际播放时间xi,计算实际播放时间xi和设定播放时间si的差值时长δt。

s32:计算得到当前视频帧、以及后续m个视频帧的调整步差时长δhj,其中,

s33:根据下述公式计算得到调整播放时长tj:

tj=tj-δhj

其中,tj是j个视频帧的设定播放时长。

s34:将调整播放时长作为当前视频帧、以及后续m个视频帧的播放时长以播放视频。

所述调整步差时长δhj的设定具有多种方式,本发明以其中两种方式为例说明前述微调策略的工作原理。

第一种方式

调整步差时长δhj为一固定值,例如调整步差时长δhj小于等于5毫秒。

假设某个视频流数据是25帧/秒,那么一帧数据就是播放40毫秒。如果出现了某个视频帧推迟了10毫秒才解析播放完成,那么距离下一个视频帧的播放间隔就只有30毫秒。当检测到这种情况时,采用微调策略进行调整,具体的:

将这个延迟10毫秒的视频帧,在播放35毫秒后,强行切换到下一个视频帧,而下一个视频帧在播放35毫秒后继续切换第三个视频帧,这样在播放第三帧时就又与其他的播放器同步播放了。另外,这两个只播放35毫秒的视频帧,仅有的5毫秒的差别,不论是同步还是延迟,人眼无法分辨。

第二种方式

调整步差时长δhj为一动态数值,可以结合预设的最大调整总时长阈值和当前视频帧、以及后续m个视频帧的设定播放时长以计算得到每一个视频帧的调整步差时长δhj。

针对同一个差值时长δt,调整步差时长δhj越小,每一帧的实际播放时长与设定播放时长的差值越小,对该接收端的用户的画面观看体验影响越小,但相对的,调整总时长越大,会在较长的时间内保持异步播放。相反,调整步差时长δhj越大,调整总时长越小,会在较短的时间内调整至同步播放,但对该接收端的用户的画面观看体验影响越大,每一帧的实际播放时长与设定播放时长的差值越大。

在实际应用中,可以根据实际播放需求选择适当的调整步差时长δhj,例如,某场合下对同步播放要求较高,则调整步差时长δhj的取值会尽可能的偏大一些。

但调整步差时长δhj的取值并非是无限制的偏大或者偏小,在一些例子中,所述δhj满足下述条件:

其中,p为预设的最大调整总时长阈值,δh为最大调整步差时长。

通过设置最大调整总时长阈值和最大调整步差时长对调整步差时长δhj的取值进行限定。

根据上面的微调策略,可以精准的将一个视频在同一个网络下不同空间的播放器上完全同步播放出来,目前测试到最大的同步误差可以控制在200毫秒以内(200毫秒是人眼无法察觉的)。

基于前述同步组播和视频转发方法,本发明还提及一种同步组播和视频转发系统,所述系统包括通过同一网络连接的数据源端和若干个接收端。

所述数据源端用于将即将播放的视频文件分析打包,转换成包含视频流和音频流的数据包,以网络组播的方式发布至每个接收端。

所述接收端包括以下模块:

(1)用于接收数据包,解析数据包、执行音视频解码控制,以获取需要播放的视频帧和对应的音频流,记录每一个视频帧的接收时间和设定播放时长的模块。

(2)用于将接收时间后的设定延迟时间设定为所述视频帧的播放时间,在播放时间播放所述视频帧和对应的音频流的模块。

(3)用于实时监控每个视频帧的实际播放时间和设定播放时间是否一致,如果不一致,采用预设的微调策略以调整该当前视频帧、以及后续m个视频帧的播放时长,以使第m+1个视频帧的播放时间和其设定播放时间相同的模块,所述m为大于等于0的整数。

在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定义在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

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