云导播台以及多路视频拼接方法
【专利摘要】本发明实施例公开了一种云导播台以及多路视频拼接方法,所述方法包括:在数据读取周期到达时,以并行方式读取各路视频的数据;针对每路视频,将读取到的数据缓存到该路视频的队列中;在数据拼接周期到达时,识别出缓存的最小序号的视频帧;并判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出并进行拼接。应用本发明,云导播台可以在网络传输不稳定的情况下尽量避免卡顿、或者丢失画面的现象,以提升播放的流畅性,提升用户的使用体验。
【专利说明】
云导播台以及多路视频拼接方法
技术领域
[0001]本发明实施例涉及云导播技术领域,特别是涉及一种云导播台以及多路视频拼接方法。
【背景技术】
[0002]在传统的电视节目制作中,对于采用固定场地、固定灯光类的节目(如电视栏目、情景剧等),一般都采用多台摄像机进行拍摄,这样制作完成后的节目具有多角度、多景别的特点,也表现的更全面、更好看。
[0003]在这种类型的拍摄中,传统的导播台通过信号线接收各路视频信号,由电视节目制作人员操作视频切换台,从多路信号中选择一路输出到录像机。传统的导播台主要由切换台、内部通话系统、监视器和一体化供电系统等设备组成,不仅结构操作复杂,设备成本昂贵,而且需要专业的导播进行操作,对于非专业电视制作媒体来说,几乎是不可能完成的任务。
[0004]然而新媒体浪潮下网络视频的高速发展,又使得企业、团体、个人对于制作精良化节目的技术需求与日倶增;得益于云计算技术的发展,使得互联网上海量的内容得以储存和检索,同时也大大加快了新媒体发展的步伐,这极大地推动了基于云计算技术上的云导播台的诞生。
[0005]基于新媒体云技术基础,云导播台可以即开即用,同时能够帮助用户快速部署稳定、高效的语音视频导播场景,提升工作效率、降低设备技术成本。
[0006]相对于传统的导播台来说,云导播台的最大优点在于任何时间任何地点都可以部署使用,同时能够使节目的场景更加多样化。从信号的输入端来说,云导播台支持切换同一个场地不同角度的摄像机直播画面、不同场地的摄像机直播画面;同时为了简化视频采集设备,云导播台也支持来自手机端视频采集的信号输入;
[0007]从输出端来说,云导播台能够在云端对视频源进行切换、缩放、叠加、混音等处理,能够广泛应用于游戏直播行业、在线教育行业、体育直播行业、视频娱乐互动行业以及视频会议行业等等。
[0008]云导播台接收到多路视频信号后,将这些信号拼接成一路信号输出,那么想要同时对这些路信号进行监控,则只需一个显示器,打开一个播放器就可以实现。
[0009]然而,在实际应用中,本发明的发明人发现,在网络传输不稳定的情况下,现有技术的云导播台容易频繁地出现卡顿、或者丢失画面的现象,导致播放效果不流畅影响用户使用体验。
【发明内容】
[0010]有鉴于此,本发明的目的在于提出一种云导播台以及多路视频拼接方法,用以在网络传输不稳定的情况下尽量避免卡顿、或者丢失画面的现象,以提升播放的流畅性,提升用户的使用体验。[0011 ]基于上述目的,本发明实施例提供的一种云导播台的多路视频拼接方法,包括:
[0012]在数据读取周期到达时,以并行方式读取各路视频的数据;
[0013]针对每路视频,将读取到的数据缓存到该路视频的队列中;
[0014]在数据拼接周期到达时,识别出缓存的最小序号的视频帧;并
[0015]判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出并进行拼接。
[0016]进一步,所述方法还包括:
[0017]根据拼接结果进行视频播放。
[0018]进一步,所述识别出缓存的最小序号的视频帧,具体包括:
[0019]针对每路视频,获取该路视频的队列中最先存入的视频帧的序号;
[0020]从获取的序号中识别出最小序号,作为待拼接序号。
[0021]进一步,所述判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出,具体包括:
[0022]针对每路视频,判断该路视频的队列中最先存入的视频帧的序号是否等于所述待拼接序号;若是,将该序号的视频帧从所述队列中读取出来。
[0023]进一步,所述数据拼接周期的时长等于或大于所述数据读取周期。
[0024]在本发明实施例的另一方面,还提供了一种云导播台,包括:
[0025]视频数据读取模块,用于在数据读取周期到达时,以并行方式读取各路视频的数据;针对每路视频,将读取到的数据缓存到该路视频的队列中;
[0026]视频数据拼接模块,用于在数据拼接周期到达时,识别出缓存的最小序号的视频帧;并判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出并进行拼接。
[0027]进一步,所述云导播台还包括:
[0028]视频播放模块,用于根据所述视频数据拼接模块的拼接结果进行视频播放。
[0029]进一步,所述视频数据拼接模块具体包括:
[0030]最小序号识别单元,用于在数据拼接周期到达时,识别出所述视频数据读取模块缓存到各队列中的最小序号的视频帧,将识别出序号作为待拼接序号输出;
[0031]判断单元,用于接收所述最小序号识别单元输出的待拼接序号,并判断各路视频的队列中是否都存有所述待拼接序号的视频帧;若是,则发送拼接通知;
[0032]拼接单元,用于接收到所述拼接通知后,将所述待拼接序号的各视频帧分别从各队列中读取出并进行拼接。
[0033]本发明实施例的技术方案中,由于在数据读取周期到达时,以并行方式读取并缓存各路视频的数据;在数据拼接周期到达时,将最小序号的各视频帧分别从各队列中读取出并进行拼接;这样,相比于现有技术在每个数据读取周期中只读取一路视频数据的方案,一方面本发明的技术方案大大增加了每路视频数据的读取机会,也就大大增加了每路视频数据的获取概率,提高每次拼接的成功率,有助于减少卡顿、丢失画面等现象的出现;另一方面,在一个数据读取周期后即可进行数据拼接,数据拼接等待时间相比于现有技术也大大缩短,同样有助于减少卡顿、减少缓存溢出机会、减少丢失画面等现象的出现。
【附图说明】
[0034]图1a为现有技术的5路视频的数据读取时序示意图;
[0035]图1b为本发明实施例的5路视频的数据读取时序示意图;
[0036]图2为本发明实施例的云导播台的多路视频拼接播放方法的流程图;
[0037]图3为本发明实施例的云导播台内部结构框图;
[0038]图4为本发明实施例的视频数据拼接模块的内部结构框图。
【具体实施方式】
[0039]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0040]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0041]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“親接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0042]需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一” “第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0043]本发明的发明人对现有技术进行分析:现有的云导播台依次读取各路视频的数据;在读取某路视频的数据时,转码服务器向rtmp(Real Time Messaging Protocol,实时消息协议)服务器发送获取该路视频数据的请求,建立连接后rtmp服务器返回该路视频的数据,在这个过程中,网络传输状态将影响数据的接收。如果多路视频中的一路或某些路此刻网络传输情况不佳,造成转码服务器接收不到数据,那么就无法进行多路视频数据的拼接,由此造成卡顿现象;
[0044]此外,在某路视频因网络原因没有接收到数据的同时,其它路视频的缓存则不断地接收并存储数据,这些存储的数据由于不能进行数据的拼接也就不能及时地从缓存中删除,而缓存空间有限容易导致缓存溢出,出现部分画面丢失,播放时就会出现画面不连续的现象。
[0045]基于上述的分析与发现,本发明的发明人考虑到,以并行方式分别读取各路视频的数据。
[0046]图1a示出了现有技术的5路视频的数据读取时序示意图;图1b示出了本发明实施例技术方案的5路视频的数据读取时序示意图;通常两个图的对比,可以看出,在现有技术中每次数据读取周期到达时只读取一路视频数据;在5次数据读取周期后才能完成5路视频的数据读取任务;也就是说,至少5次数据读取周期后才能进行5路视频的数据拼接;如果其中有一路视频的数据读取失败,则还需要等待5次数据读取周期才能尝试下一次的数据拼接。由于数据拼接等待时间过长就容易出现卡顿、丢失画面等现象。
[0047]而本发明实施例的技术方案中,每次数据读取周期到达时以并行方式读取5路视频的数据;这样,在I次数据读取周期后就可以进行数据拼接任务;如果,其中有一路视频的数据读取失败,那么,在下一次的数据读取周期中即可继续读取该路视频的数据,并在下一次的数据读取周期后就可以再次尝试进行数据拼接。
[0048]这样,在每个数据读取周期中同时读取各路视频的数据,相比于现有技术在每个数据读取周期中只读取一路视频数据的方案,一方面本发明的技术方案大大增加了每路视频数据的读取机会,也就大大增加了每路视频数据的获取概率,提高每次拼接的成功率,有助于减少卡顿、丢失画面等现象的出现;另一方面,数据拼接等待时间相比于现有技术也大大缩短,同样有助于减少卡顿、减少缓存溢出机会、减少丢失画面等现象的出现。
[0049]下面结合附图详细说明本发明实施例的技术方案。
[0050]基于上述的思路,本发明实施例提供的一种云导播台的多路视频拼接播放方法,具体流程如图2所示,包括如下步骤:
[0051]步骤S201:云导播台在数据读取周期到达时,以并行方式读取并存储各路视频的数据。
[0052]具体地,云导播台在每次数据读取周期到达时,以多个线程并行地分别读取并存储各路视频的数据:每个线程分别执行各路视频的数据读取和存储任务。其中,一个线程执行一路视频的数据读取存储任务的过程如下:
[0053]线程向rtmp服务器发送该路视频数据的请求,建立连接后rtmp服务器返回该路视频的数据;
[0054]线程在读取到该路视频的数据后,将读取的数据缓存到该路视频的队列中。进一步,各路视频的队列为先入先出的队列。这样先存入到队列中的视频帧数据便可在后续步骤中先从队列中读取出来。
[0055]步骤S202:云导播台在数据拼接周期到达时,识别出缓存的最小序号的视频帧,将识别出的视频帧的序号作为待拼接序号。
[0056]本步骤中,云导播台在数据拼接周期到达时,从缓存于各路视频的队列中的视频帧中,识别出最小序号的视频帧。
[0057]进一步,在各路视频的队列为先入先出的情况下,云导播台在数据拼接周期到达时,可以针对每路视频,获取该路视频的队列中最先存入的视频帧的序号;进而从获取的序号中识别出最小序号,作为待拼接序号。
[0058]其中,数据拼接周期的时长可以与上述的数据读取周期的时长相等,或者数据拼接周期的时长大于数据读取周期的时长。
[0059]步骤S203:云导播台判断各路视频的队列中是否都存有待拼接序号的视频帧;若是,则执行步骤S204;若否,则不执行此次拼接任务。
[0060]本步骤中,云导播台判断各路视频的队列中是否都存有序号与识别出的待拼接序号相同的视频帧。
[0061]进一步,在各路视频的队列为先入先出的情况下,云导播台可以针对每路视频,判断该路视频的队列中最先存入的视频帧的序号是否等于所述待拼接序号。
[0062]若是,则继续执行如下步骤S204;若否,则不执行此次拼接任务。
[0063]步骤S204:云导播台将待拼接序号的各视频帧分别从各队列中读取出并进行拼接。
[0064]本步骤中,云导播台将序号与识别出的待拼接序号相同的视频帧分别从各队列中读取出来,并将读取出来的各视频帧进行拼接。
[0065]步骤S205:云导播台根据拼接结果进行视频播放。
[0066]本步骤中,云导播台根据拼接结果,播放出拼接视频。例如,可以拼接多个摄像设备的视频,得到全景视频进行播放。如何进行视频拼接可采用现有的技术,此处不再赘述。
[0067]这里需要说明的是,上述步骤S201-S205虽然是以时间先后顺序进行描述的,但并不限定步骤间的逻辑先后关系。例如,上述步骤S202的执行并不需要依赖步骤S201的执行,而是可以由数据拼接周期的到达触发执行。
[0068]基于上述的方法,本发明实施例提供的一种云导播台的内部结构,如图3所示,包括:视频数据读取模块301、视频数据拼接模块302。
[0069]视频数据读取模块301用于在数据读取周期到达时,以并行方式读取各路视频的数据;并针对每路视频,将读取到的数据缓存到该路视频的队列中。具体地,视频数据读取模块301在数据读取周期到达时,以多个线程并行地分别读取各路视频的数据:即针对一路视频,以一个线程读取该路视频的数据,并将读取的数据缓存到该路视频的队列中。进一步,各路视频的队列为先入先出队列。
[0070]视频数据拼接模块302用于在数据拼接周期到达时,识别出缓存的最小序号的视频帧;在判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出并进行拼接。
[0071]进一步,本发明实施例的云导播台还包括:视频播放模块303。
[0072]视频播放模块303用于根据视频数据拼接模块302的拼接结果进行视频播放。
[0073]上述视频数据拼接模块302的一种具体内部结构,如图4所示,包括如下单元:最小序号识别单元401、判断单元402、拼接单元403。
[0074]最小序号识别单元401用于在数据拼接周期到达时,识别出所述视频数据读取模块缓存到各队列中的最小序号的视频帧,将识别出序号作为待拼接序号向判断单元402输出;进一步,在各路视频的队列为先入先出队列的情况下,最小序号识别单元401在数据拼接周期到达时,针对每路视频,获取该路视频的队列中最先存入的视频帧的序号;从获取的序号中识别出最小序号,作为待拼接序号进行输出。
[0075]判断单元402用于接收到最小序号识别单元401输出的待拼接序号后,判断各路视频的队列中是否都存有所述待拼接序号的视频帧;若是,则向拼接单元403发送拼接通知;进一步,在各路视频的队列为先入先出队列的情况下,判断单元402针对每路视频,判断该路视频的队列中最先存入的视频帧的序号是否等于所述待拼接序号;若是,发送拼接通知。
[0076]拼接单元403用于接收到判断单元402发送的拼接通知后,将所述待拼接序号的各视频帧分别从各队列中读取出并进行拼接。
[0077]本发明实施例的技术方案中,由于在数据读取周期到达时,以并行方式读取并缓存各路视频的数据;在数据拼接周期到达时,将最小序号的各视频帧分别从各队列中读取出并进行拼接;这样,相比于现有技术在每个数据读取周期中只读取一路视频数据的方案,一方面本发明的技术方案大大增加了每路视频数据的读取机会,也就大大增加了每路视频数据的获取概率,提高每次拼接的成功率,有助于减少卡顿、丢失画面等现象的出现;另一方面,在一个数据读取周期后即可进行数据拼接,数据拼接等待时间相比于现有技术也大大缩短,同样有助于减少卡顿、减少缓存溢出机会、减少丢失画面等现象的出现。
[0078]本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、R0M(Read-0nly Memory,只读存储器)、RAM (Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPR0M(E1 ectricalIy ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
[0079]本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
[0080]本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0081]所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种多路视频拼接方法,其特征在于,包括: 在数据读取周期到达时,以并行方式读取各路视频的数据; 针对每路视频,将读取到的数据缓存到该路视频的队列中; 在数据拼接周期到达时,识别出缓存的最小序号的视频帧;并 判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出并进行拼接。2.根据权利要求1所述的方法,其特征在于,还包括:根据拼接结果进行视频播放。3.根据权利要求1或2所述的方法,其特征在于,所述识别出缓存的最小序号的视频帧,具体包括: 针对每路视频,获取该路视频的队列中最先存入的视频帧的序号; 从获取的序号中识别出最小序号,作为待拼接序号。4.根据权利要求1或2所述的方法,其特征在于,所述判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出,具体包括: 针对每路视频,判断该路视频的队列中最先存入的视频帧的序号是否等于所述待拼接序号;若是,将该序号的视频帧从所述队列中读取出来。5.根据权利要求1或2所述的方法,其特征在于,所述数据拼接周期的时长等于或大于所述数据读取周期。6.—种云导播台,其特征在于,包括: 视频数据读取模块,用于在数据读取周期到达时,以并行方式读取各路视频的数据;针对每路视频,将读取到的数据缓存到该路视频的队列中; 视频数据拼接模块,用于在数据拼接周期到达时,识别出缓存的最小序号的视频帧;并判断出各路视频的队列中都存有该序号的视频帧后,将该序号的各视频帧分别从各队列中读取出并进行拼接。7.根据权利要求6所述的云导播台,其特征在于,还包括: 视频播放模块,用于根据所述视频数据拼接模块的拼接结果进行视频播放。8.根据权利要求6或7所述的云导播台,其特征在于,所述视频数据拼接模块具体包括: 最小序号识别单元,用于在数据拼接周期到达时,识别出所述视频数据读取模块缓存到各队列中的最小序号的视频帧,将识别出序号作为待拼接序号输出; 判断单元,用于接收所述最小序号识别单元输出的待拼接序号,并判断各路视频的队列中是否都存有所述待拼接序号的视频帧;若是,则发送拼接通知; 拼接单元,用于接收到所述拼接通知后,将所述待拼接序号的各视频帧分别从各队列中读取出并进行拼接。9.根据权利要求6或7所述的云导播台,其特征在于,所述队列为先入先出的队列。10.根据权利要求6或7所述的云导播台,其特征在于,所述数据拼接周期的时长等于或大于所述数据读取周期。
【文档编号】H04N5/265GK105847709SQ201610195433
【公开日】2016年8月10日
【申请日】2016年3月30日
【发明人】李兴玉, 白茂生, 魏伟, 边智
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司