一种多屏视频同步播放方法及装置转让专利

申请号 : CN201410415455.X

文献号 : CN104168466B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘雄伟

申请人 : 广东威创视讯科技股份有限公司

摘要 :

本发明公开一种多屏视频同步播放方法及装置,其方法包括:将超高分辨率视频源切分成等份的小视频放在不同的节点机上,将各视频数据转换成YUV图像序列,各个小视频的同一帧序列采用相同编号标识;将YUV图像序列生成YUV文件;主控机发送命令到使所有节点机在同一时刻开始播放视频;摄像头开始同步拍摄整个视频画面,分析帧的编号;当有帧编号不一致时候,主控机发送命令到帧不一致的节点机修改需要播放的帧的序列号,从该节点机取出要播放的帧图像序列,达到同一画面所有帧编号一致。本发明无需人工预调整视频同步,使视频同步播放具有智能化、帧速播放稳定,在帧出现不同步时,能够快速选定哪帧进行播放,无需暂停视频重新开始播放。

权利要求 :

1.一种多屏视频同步播放方法,其特征在于,包括以下步骤:S1:将超高分辨率视频源切分成等份的小视频放在不同的节点机上,将各视频数据转换成YUV图像序列,各个小视频的同一帧序列采用相同编号标识;

S2:将YUV图像序列按照设定的存储规则生成YUV文件;

S3:连接摄像头的主控机发送命令到所有节点机,使所有节点机在同一时刻开始播放视频;

S4:摄像头开始同步拍摄整个视频画面,并且分析所有帧的编号是否一致;

S5:当遇到有帧编号不一致时候,主控机发送命令到帧不一致的节点机修改需要播放的帧的序列号,从该节点机取出要播放的帧图像序列,达到同一画面所有节点机的帧编号一致;

当有某一节点机与当前画面帧不一致时,通过YUV文件存储帧信息的前16字节读取下一次需要播放的正常帧号,并通过主控机将该帧号发送给不同步的节点机进行校正;

由于网络传输的延时效应,需要计算发送到底传输哪一帧序列号,设网络延时为T1,帧播放速率从数据结构structFrameInfo中读取,帧率为frameRate,当前不同步的节点机已经播放的帧数为M,M=T1/(60/frameRate),所以主控机发送的帧号必须在下一帧号的基础上加上M,该不同步节点机播放该帧号的帧。

2.根据权利要求1所述的多屏视频同步播放方法,其特征在于,所述步骤S2中“将YUV图像序列按照设定的存储规则生成YUV文件”的具体方式为:预先设置如下数据结构:structFrameInfoframeIndex,占2个字节,表示帧序列号;

startPos,占4个字节,表示片段数据的开始位置;

endPos,占4个字节,表示片段数据的结束位置;

frameWeidth,占2个字节,表示帧宽度;

frameHeight,占2个字节,表示帧高度;

frameRate,占2个字节,表示帧速率;

即在第一帧的前16个字节用来存储所有帧的信息,包括structFrameInfo数据结构的信息。

3.根据权利要求2所述的多屏视频同步播放方法,其特征在于,所述主控机是接有摄像头的节点机,任何节点机都能够接摄像头作为主控机。

4.根据权利要求3所述的多屏视频同步播放方法,其特征在于,所述摄像头的帧率与整个视频的帧率同步,即在摄像头拍摄前,主控机需至少读取一次整个画面的显示帧率。

5.一种应用权利要求1所述方法的多屏视频同步播放装置,其特征在于,包括:视频切分模块:用于将超高分辨率视频源切分成等份的小视频放在不同的节点机上,将各视频数据转换成YUV图像序列,各个小视频的同一帧序列采用相同编号标识;

YUV转换模块:将YUV图像序列按照设定的存储规则生成YUV文件;

控制模块:连接摄像头的主控机发送命令到所有节点机,使所有节点机在同一时刻开始播放视频;

视频同步鉴别模块:摄像头开始同步拍摄整个视频画面,并且分析所有帧的编号是否一致;

校正模块:当遇到有帧编号不一致时候,主控机发送命令到帧不一致的节点机修改需要播放的帧的序列号,从该节点机取出要播放的帧图像序列,达到同一画面所有节点机的帧编号一致。

说明书 :

一种多屏视频同步播放方法及装置

技术领域

[0001] 本发明涉及视频处理领域,更具体地,涉及一种多屏视频同步播放方法及装置。

背景技术

[0002] 随着数字影院播放系统对清晰度的要求越来越高,输出画面的分辨率已经远远超过一台计算机或者说一个显示设备的输出分辨率,因此往往需要多台设备一起拼接出一个超高分辨率的完整画面,如何保证所有设备输出的画面的同步就成了一个关键问题。
[0003] 传统方法主要有两种:
[0004] 1、通过网络或者其他通讯方式进行协调,保证所有机器在同一时刻绘一帧画面。具体方法是:系统中有一台称作主控的机器,通过网络通知其他所有机器生成某一帧画面,所有机器生成好之后先不输出,而是通知主控,主控知道所有机器都准备好新的画面以后再发送一个输出的命令,所有绘制机器收到这个命令的时候一起输出画面,从而实现同步。
该方法的缺陷是需要依赖机器之前的通讯,如果是通过网络通讯,则每一帧至少会有两次通信:主控->节点,节点->主控,网络的不稳定,数据包的丢失、延时,网络命令的响应时间、处理时间都会对同步播放造成影响,从而造成帧速不稳,影片播放不流畅,出现卡的效果。
如果是通过别的高性能高稳定性的通讯设备又会增加硬件成本。
[0005] 2、通过每台设备自身的计时器来触发绘制:首先每台机器上都有一个经过校准的计时器,开始播放前所有机器都会收到一个开始播放命令,命令要告知从哪一个时刻开始播放,由于所有机器的播放时钟是经过校准的,因此大家都会在同一个时刻播放第一帧,之后按照自身计时器的时钟每次输出一帧新的画面,只要计时器时钟保持一致,就可以一直保持同步。该方法的缺点有两点:一是所有机器安装精准的定时器,增加成本太大。二是对于在计算机上播放数字影片来讲,输出画面都要通过显卡,而显卡的输出是跟显卡的刷新直接相关的,即使计时器可以非常精确,还是要等待显卡的刷新周期。
[0006] 在解决传统两种方法时候,都要用人眼去观察整个画面是否同步,并且由于视频播放帧率快,人眼经常很难辨别视频画面是否同步,就算人眼容易看到连续帧不同步,也只能通过停止视频播放进行人工干预调整视频同步,很少用到全智能化的方法进行同步播放。
[0007] 为了克服传统方法的不足,有技术人员提出过“基于摄像头拍摄的视频同步方法”,该方法是通过将超高分辨率视频源切分成小视频,将小视频放在不同的节点机上,各小视频的同一帧采用相同编号标识;通过摄像头拍摄视频整个画面是否一致进行视频同步处理。该方法无需采用网络进行通信,能极大的减少网络通信异常和网络响应异常造成的同步问题。但当存在帧不同步时,则需要暂停视频进行调整后再重新播放。

发明内容

[0008] 为了上述现有技术的不足,本发明首先提出一种多屏视频同步播放方法,该方法无需人工预调整视频同步,使视频同步播放具有智能化、帧速播放稳定,在帧出现不同步时,能够快速选定哪帧进行播放,无需暂停视频重新开始播放。
[0009] 本发明的又一目的是提出一种多屏视频同步播放装置。
[0010] 为了实现上述目的,本发明的技术方案为:
[0011] 一种多屏视频同步播放方法,包括以下步骤:
[0012] S1:将超高分辨率视频源切分成等份的小视频放在不同的节点机上,将各视频数据转换成YUV图像序列,各个小视频的同一帧序列采用相同编号标识;
[0013] S2:将YUV图像序列按照设定的存储规则生成YUV文件;
[0014] S3:连接摄像头的主控机发送命令到所有节点机,使所有节点机在同一时刻开始播放视频;
[0015] S4:摄像头开始同步拍摄整个视频画面,并且分析所有帧的编号是否一致;
[0016] S5:当遇到有帧编号不一致时候,主控机发送命令到帧不一致的节点机修改需要播放的帧的序列号,从该节点机取出要播放的帧图像序列,达到同一画面所有节点机的帧编号一致。
[0017] 其中,步骤S1中超高分辨率视频应分成成几个具有相同分辨率的小视频,小视频能拼接成原先的一帧超高画面,各小视频放在不同的节点机上,各视频数据必须转换为YUV格式,因为YUV格式的数据都是一帧帧的,则在视频播放的时候可以把视频同步精确到每一帧,每个视频编号的位置可根据需要进行设置,尽量放到摄像头能拍摄到的范围内。同时,各个小视频的同一帧采用相同的标号标识,将编号与对应的视频帧保存,以便主控机查询判断,采用编号标识小视频使用摄像头拍摄时,根据拍摄的编号判断视频的同步性。
[0018] 一种多屏视频同步播放装置,包括:
[0019] 视频切分模块:用于将超高分辨率视频源切分成等份的小视频放在不同的节点机上,将各视频数据转换成YUV图像序列,各个小视频的同一帧序列采用相同编号标识;
[0020] YUV转换模块:将YUV图像序列按照设定的存储规则生成YUV文件;
[0021] 控制模块:连接摄像头的主控机发送命令到所有节点机,使所有节点机在同一时刻开始播放视频;
[0022] 视频同步鉴别模块:摄像头开始同步拍摄整个视频画面,并且分析所有帧的编号是否一致;
[0023] 校正模块:当遇到有帧编号不一致时候,主控机发送命令到帧不一致的节点机修改需要播放的帧的序列号,从该节点机取出要播放的帧图像序列,达到同一画面所有节点机的帧编号一致。
[0024] 与现有技术相比,本发明的有益效果为:首先,将视频数据转换为YUV格式,使得在视频播放时可把视频同步精确到每一帧;在存在不同步时,能快速的读取帧不同步节点机出错序列帧号,无需通过计算机硬件设备的刷新率进行调整;采用数据结构:structFrameInfo来存储YUV文件,能够方便帧不同步时快速选定哪帧进行播放,无需暂停视频重新开发播放。其次摄像头的帧率与整个画面的帧率同步,能够防止拍摄的画面有闪烁。最后,通过摄像头拍摄画面上的画面编号来进行同步判定,减少人工干预,实现调整自动化;并能减少网络异常和网络响应异常造成的同步问题;本发明采用摄像头拍摄,不需要不停的发送同步命令,只需要有错误才发送校准,能减少网络系统资源的使用。

附图说明

[0025] 图1为本发明实施例的流程图。
[0026] 图2为本发明实施例的摄像头拍摄切分后的视频播放示意图。

具体实施方式

[0027] 下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。实施例
[0028] 如图1,一种多屏视频同步播放方法,包括以下步骤:
[0029] S1:将超高分辨率视频源切分成等份的小视频放在不同的节点机上,各个小视频的同一帧用数字编号,在本实施例中,各视频的第一、二、……、N帧分别采用编号1、2、……、N标识;便于摄像头拍摄;
[0030] S2:将YUV图像序列按照设定的存储规则生成YUV文件,方便在视频同步播放时候进行同步处理;
[0031] S3:连接摄像头的主控机发送命令到所有节点机,使所有节点机在同一时刻开始播放视频;
[0032] S4:摄像头开始同步拍摄整个视频画面,并且分析所有帧的编号是否一致;
[0033] S5:当遇到有帧编号不一致时候,主控机发送命令到帧不一致的节点机修改需要播放的帧的序列号,从该节点机取出要播放的帧图像序列,达到同一画面所有节点机的帧编号一致。
[0034] 其中,步骤S1中超高分辨率视频应分成等份的每个节点机的分辨率大小的视频,本实施例如图2,设置为2×2系统,每个视频分辨率为1024×768,各视频数据必须转换为YUV格式,因为YUV格式的数据都是一帧帧的,则在视频播放的时候可以把视频同步精确到每一帧,每个视频编号的位置可根据需要进行设置,尽量放到摄像头能拍摄到的范围内。
[0035] 步骤S2涉及一种YUV文件的存储方法,在本方法中预先设置如下数据结构:structFrameInfo
[0036] {
[0037]   frameIndex;//(2字节)帧序列号
[0038] startPos;//(4字节)片段数据的开始位置
[0039] endPos;//(4字节)片段数据的结束位置
[0040] frameWeidth;//(2字节)帧宽度
[0041] frameHeight;//(2字节)帧高度
[0042] frameRate;//(2字节)帧速率
[0043] }
[0044] 在第一帧的前16个字节用来存储所有帧的信息,包括structFrameInfo数据结构的信息,这样方便帧不同步时候快速选定哪帧进行播放,无需暂停视频重新开发播放。
[0045] 步骤S3中主控机必须是接有摄像头的节点机,任何节点机都可接摄像头作为主控机;步骤S4中摄像头的帧率必须跟整个拼接画面的帧率同步,不然拍摄的画面会有闪烁,所以在摄像头拍摄前,主控机必须读取一次整个画面的显示帧率。
[0046] 步骤S5中,当有某一节点机与当前画面帧不一致时,进行判断,判断不同步的节点机的编号是否大于当前整个画面编号,如果是大于,则通过YUV文件存储帧信息的前16字节读取下一次需要播放的正常帧号,并通过主控机将该帧号发送给不同步的节点机进行校正。
[0047] 由于网络传输的延时效应,需要计算发送到底传输哪一帧序列号,假设网络延时为T1,帧播放速率从数据结构structFrameInfo中读取,帧率为frameRate,当前已经播放的帧数为M,M=T1/(60/frameRate),所以主控机发送的帧号必须在下一帧号的基础上加上M,这就是该不同步节点机需要播放的帧号。
[0048] 当不同步的节点机的编号是小于当前整个画面编号时,则通过YUV文件存储帧信息的前16字节读取下一次需要播放的正常帧号,并通过主控机将该帧号发送给不同步的节点机进行校正。
[0049] 由于网络传输的延时效应,需要计算发送到底传输哪一帧序列号,假设网络延时为T1,帧播放速率从数据结构structFrameInfo中读取,帧率为frameRate,当前已经播放的帧数为M,M=T1/(60/frameRate),所以主控机发送的帧号必须在下一帧号的基础上加上M,这就是该不同步节点机需要播放的帧号。
[0050] 以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。