CN110958477A - 媒体数据播放的同步控制方法、装置及计算机可读介质 - Google Patents

媒体数据播放的同步控制方法、装置及计算机可读介质 Download PDF

Info

Publication number
CN110958477A
CN110958477A CN201811124672.8A CN201811124672A CN110958477A CN 110958477 A CN110958477 A CN 110958477A CN 201811124672 A CN201811124672 A CN 201811124672A CN 110958477 A CN110958477 A CN 110958477A
Authority
CN
China
Prior art keywords
frame
synchronization control
control information
devices
source device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811124672.8A
Other languages
English (en)
Inventor
卢从利
王炜
于海华
张宇鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to CN201811124672.8A priority Critical patent/CN110958477A/zh
Publication of CN110958477A publication Critical patent/CN110958477A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64753Control signals issued by the network directed to the server or the client directed to the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

在此提供了同步控制方法、装置以及计算机可读介质,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备。在该源设备的媒体数据的每帧中添加同步控制信息,经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备,在所述源设备以及每个接收设备处基于每帧中的同步控制信息来计算该帧的等待时间,并基于所计算的每帧的等待时间来控制该帧的开始播放时刻。由此,能够实现媒体数据在多个设备处的同步播放,而无需额外部署专用于进行同步控制的服务器等的控制装置,可以降低系统部署的成本,同时,也可以避免由于系统内设备数量增多而引起的网络高负载问题。

Description

媒体数据播放的同步控制方法、装置及计算机可读介质
技术领域
本公开涉及媒体数据播放的同步控制,更具体地,涉及用于控制多个设备间的媒体数据的播放的同步控制方法、同步控制装置和计算机可读介质。
背景技术
在诸如会议、教学等的场合,常常需要在多个设备中同时播放相同的媒体内容,比如视频、音频等等。在这样的场合中,可以通过通信网络来将要播放的媒体内容传输到各个设备以便分别在各设备中进行播放。
在这样的应用中,通常要求多个设备中播放的媒体内容是同步的,如果各个设备播放的媒体内容的进度不同,则会极大地影响用户的体验。举例而言,在教学场合中,老师可能需要向学生实时分发视频、音频等内容并进行同步的播放和讲解,因此,在老师的设备上以及每个学生的设备上,内容的播放应该保持同步,以达到预期的教学效果。
当前,在通过无线网络传输媒体内容时,用以控制多个播放设备之间的媒体内容的同步播放的方法通常采用基于后台服务器的网络控制策略。根据这样的网络控制策略,首先需要部署专门用于进行同步控制的服务器,该服务器根据各个播放设备的状态信息,在要播放的媒体内容中添加同步控制信息后将媒体内容传输到各个设备,接收到服务器所发送的媒体内容的设备根据媒体内容中所包括的同步控制信息来控制媒体内容的播放,从而实现多个设备之间的媒体内容的同步播放。
发明内容
在上述的网络控制策略中,需要进行服务器等的相关系统和网络部署,导致其实现方式复杂且代价高昂。因此,针对媒体内容播放的同步控制,能够简化系统并降低系统部署的代价的同步控制技术是所期望的。
有鉴于上述情况,本公开提出了用于控制多个设备间的媒体数据的播放的同步控制方法、同步控制装置和计算机可读介质,其无需传统的网络系统部署即可实现通过网络通信的多个设备间的媒体数据的实时传播及同步播放。
根据本公开的一个实施例,提供了一种同步控制方法,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备。该同步控制方法可以包括:在该源设备的媒体数据的每帧中添加同步控制信息;经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
在一个可选的实施例中,所述通信网络是多跳网络,所述多个接收设备形成N个集群,其中N为大于等于1的整数,每个集群包括集群头设备和相应的接收设备。所述经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备包括:将所述帧从所述源设备经由所述多跳网络发送到一个集群头设备;以及接收到所述帧的集群头设备经由所述多跳网络将所述帧发送到该集群头所在的集群中的接收设备以及另一集群头设备。
在一个可选的实施例中,所述同步控制信息包括帧的转发次数,该帧的转发次数在源设备处被设置为0,并且在所述多跳网络中每经过一次发送而被接收时该帧的转发次数加1。所述基于每帧中的同步控制信息来计算该帧的等待时间可以包括:确定该帧每经过一次发送而被接收的平均延迟时间;基于集群头设备的数量以及该平均延迟时间计算系统最大延迟时间;基于该帧被接收时的转发次数以及该平均延迟时间计算已经过的延迟时间;以及根据该最大延迟时间以及该已经过的延迟时间确定该帧的等待时间。
在一个可选的实施例中,该帧的等待时间可以表示为帧的数量,该帧的开始播放时刻可以是自从该帧被接收起已经缓存的帧数达到所述数量的时刻。
在一个可选的实施例中,所述同步控制信息还可以包括同步帧标志,所述同步帧标志指示当前帧是否是同步帧,所述同步帧表示将要执行偏差校正处理的帧,所述方法还可以包括:基于当前接收的帧中包含的所述同步帧标志判断当前接收的帧是否为同步帧;以及在当前接收的帧是同步帧时,在所述同步帧处执行偏差校正处理,以校正多个设备之间的开始播放时刻的偏差。
在一个可选的实施例中,在每帧中添加的所述同步控制信息还包括当前播放帧序号,该当前播放帧序号指示在该帧从源设备发送时源设备当前正在播放的帧的序号。所述在所述同步帧处执行偏差校正处理可以包括:获得在所述同步帧被接收设备接收时该接收设备实际正在播放的帧的序号,作为第一帧序号;基于所述同步帧的同步控制信息中包含的当前播放帧序号和所述同步帧的跳数、以及所述平均延迟时间,计算在所述同步帧被接收设备接收时该接收设备应该播放的帧的序号,作为第二帧序号;基于该第一帧序号与该第二帧序号之间的偏差,校正该接收设备当前正在播放的帧的序号。
在一个可选的实施例中,所述基于该第一帧序号与该第二帧序号之间的偏差,校正该接收设备当前正在播放的帧的序号可以包括:将该第一帧序号与该第二帧序号之间的偏差与预定偏差比较;当该第一帧序号与该第二帧序号之间的偏差小于该预定偏差时,不改变该第一帧序号;以及当该第一帧序号与该第二帧序号之间的偏差大于该预定偏差时,将基于该第二帧序号与该预定偏差来修改所述第一帧序号。
在一个可选的实施例中,该同步控制方法还可以包括:设置校正周期,该校正周期包括预定数量的帧,在从所述源设备发送所述媒体数据的帧时,处于每个校正周期的第一帧中包含的所述同步帧标志被赋值以指示该帧是同步帧。
根据本公开另一实施例,提供了一种同步控制装置,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备。该同步控制装置可以包括:添加部件,用于在该源设备的媒体数据的每帧中添加同步控制信息;发送部件,经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;计算部件,在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及控制部件,基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
在一个可选的实施例中,该同步控制信息还包括同步帧标志,所述同步帧标志指示当前帧是否是同步帧,所述同步帧表示将要执行偏差校正处理的帧。该同步控制装置还可以包括:偏差校正部件,其基于当前接收的帧中包含的所述同步帧标志判断当前接收的帧是否为同步帧,并且在当前接收的帧是同步帧时,在所述同步帧处执行偏差校正处理,以校正多个设备之间的开始播放时刻的偏差。
根据本公开另一实施例,提供了一种同步控制设备,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备。该同步控制设备可以包括:存储器,存储计算机程序指令;以及处理器,耦合到该存储器,该处理器配置为运行所述计算机程序指令以执行以下处理:在该源设备的媒体数据的每帧中添加同步控制信息;经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
根据本公开另一实施例,提供了一种计算机可读存储介质,存储有计算机程序指令,所述计算机程序指令在被计算机运行时使得计算机执行同步控制方法,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备。该同步控制方法可以包括:在该源设备的媒体数据的每帧中添加同步控制信息;经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
根据本公开,通过在发送视频时在视频的每帧中添加同步控制信息,并根据每帧中的同步控制信息来控制该帧在多个设备处的开始播放时刻,能够实现该视频在多个设备处的同步播放。本公开无需额外部署专用于进行同步控制的服务器等的控制装置,可以降低系统部署的成本,同时,也可以避免由于系统内设备数量增多而引起的网络高负载问题。
而且,根据本公开,可以基于同步控制信息中包含的同步帧标志判断接收设备当前接收的帧是否为同步帧,在当前接收的帧是同步帧时,基于同步控制信息中包含的当前播放帧序号,执行偏差校正处理,以校正视频帧在源设备和接收设备处的同步播放时刻之间的时间偏差,将由于网络不稳定或者其他原因引起的同步播放的时间偏差限定到可接受的范围内,从而使得即使在很长的运行时间内也能够得到更加稳定的视频同步播放效果。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是示出根据本公开实施例的计算设备的功能框图。
图2是示出集群的示例的示意图。
图3是示出根据本公开实施例的示例同步控制方法的流程图。
图4是示出根据本公开实施例的多跳网络中的跳转计数的示例的图。
图5是示出根据本公开实施例的计算等待时间的示例方法的流程图。
图6是示出不同设备的帧缓存数量的示例的示意图。
图7是示出根据本公开实施例的同步偏差校正处理的步骤的流程图。
图8是示出根据本公开一实施例的同步控制装置的功能结构的框图。
图9是示出根据本公开另一实施例的同步控制设备的主要配置的框图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。基于本公开中描述的本公开实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本公开的保护范围之内。
首先,在描述根据本公开实施例的用于控制多个设备间的媒体数据的播放的同步控制方法之前,简要介绍多个设备以及在其之间的媒体数据的传输。
该多个设备的每个设备可以是适合于实现本文所公开的特征或功能的至少一部分的任意计算设备,例如,包括但不限于个人计算机、平板计算设备、智能电话、消费电子设备、音乐播放设备、VR眼镜设备等等。
图1是示出根据本公开实施例的计算设备的功能框图。如图1所示,计算设备100可以包括:发送部分110,用于发送包括媒体数据等的内容数据;接收部分120,用于接收内容数据;播放部分130,用于播放媒体数据;控制部分140,用于进行媒体数据的同步播放控制;存储部分150,用于存储数据,包括用于播放的媒体数据以及计算设备100执行处理所需的数据以及作为处理的结果的数据。另外,该计算设备100还包括总线系统(未示出),用于互连该计算设备100的各个部分。当然,在此仅仅给出了计算设备100的与本公开实施例相关的功能模块的示例,尽管图1中未示出,但是该计算设备100还可以包括任何其他必要的部件。
本公开中的一个源设备与多个接收设备可以采用如上配置的计算设备100的形式通过无线网络进行通信。例如,在上文所述的教学的应用场景下,源设备可以是老师的计算设备100,而多个接收设备可以是多个学生的计算设备100。例如,在通信网络是诸如自组织(ad-hoc)网络、有基础设施的网络等的多跳网络的情况下,作为一个示例实施方式,多个接收设备可以形成N个集群,其中N是大于等于1的整数,每个集群包括集群头设备以及相应的接收设备。在多跳网络是自组织网络的情况下,集群头设备可以是集群中被自组织网络路由算法选择的、承担转发功能的设备。在多跳网络是有基础设施网络的情况下,集群头设备可以是接入点(AP)设备。
图2是示出集群的示例的示意图。如图2所示,示出了三个集群201、202和203,每个集群包括集群头设备以及相应的接收设备。需要注意的是,虽然图2中示出了三个集群,每个集群包括一个集群头设备以及四个接收设备,然而本领域技术人员能够明白,在此给出的集群的数量以及每个集群中包括的接收设备的数量仅仅是举例,并且任何适当的数量也是可能的。而且,毫无疑问,源设备、集群头设备、接收设备可以是相同或者不同的设备。
在集群形成后,可以在源设备与集群之间以及在集群与集群之间进行媒体数据的传输。具体地,在图2所示的示例中,源设备将媒体数据传输到集群201的集群头设备,该集群头设备将接收到的媒体数据继续传输到集群201内的其他接收设备,同时还将该媒体数据传输到集群202的集群头设备,集群202的集群头设备将接收到的媒体数据继续传输到集群202内的其他接收设备,同时还将该媒体数据传输到集群203的集群头设备,如此继续。由此,可以通过多跳网络实现源设备与多个接收设备之间的媒体数据的传输。
以上介绍了多个设备以及在多个之间的媒体数据的传输。当然,以上给出的多个设备之间的媒体数据的传输方式仅仅是示例,本领域技术人员能够预见适合应用于本发明的在多个设备之间的其他数据传输方式。
接下来,参考图3到图6描述根据本公开实施例的用于控制多个设备间的媒体数据的同步播放的同步控制方法。该多个设备包括一个源设备以及多个接收设备。
图3是示出根据本公开实施例的示例同步控制方法300的流程图。如图3所示,该同步控制方法300可以包括步骤S310至步骤S340。
在步骤S310,在该源设备的媒体数据的每帧中添加同步控制信息。
源设备的媒体数据是将要用于在该源设备以及多个接收设备处播放的媒体数据,其可以是从外部设备提供到源设备的、该源设备在本地存储的、或者是源设备利用采集设备而采集的任意媒体数据,在此不做限制。
众所周知,帧是视频的传输以及播放的基本单位,一帧是一幅静止画面,视频则是由每秒超过预定数量帧的连续的画面而形成的。根据本公开实施例的方法,为了控制视频在源设备以及多个接收设备处的同步播放,在步骤S310中,在该视频的每帧数据中添加同步控制信息。该同步控制信息是用于对源设备以及多个接收设备处的视频播放执行同步控制处理的信息。每帧数据中添加了同步控制信息的视频准备用于在源设备处播放,并且用于由源设备传输到接收设备并由接收设备播放。
作为示例,在每帧的数据中添加的该同步控制信息可以包括该帧的转发次数。该帧的转发次数在源设备处可以被设置为0,并且该帧在由源设备经由通信网络发送到接收设备时,每经过一次发送而被接收时,该帧的转发次数则可以自动增加1。
例如,在视频数据由源设备经由上述的多跳网络而发送到接收设备的情况下,该帧的转发次数即为跳转计数,也可简称为跳数。
图4示出了根据本公开实施例的在多跳网络中的跳转计数的示例。在图4所示的多跳网络的示例布局中,包括源设备、多个集群头1、2、3以及多个接收设备1、2、3……。对于集群头1而言,其接收到的视频帧是由源设备发送的,经过一次跳转,因此集群头1接收到的视频帧中包含的跳转计数为1。对于接收设备1而言,其接收到的视频帧是由源设备发送到集群头1,并由集群头1而发送的,经过两次跳转,因此接收设备1接收到的视频帧中包含的跳转计数为2。类似地,集群头2接收到的视频帧中包含的跳转计数为2,接收设备2以及集群头3接收到的视频帧中包含的跳转计数为3,并且接收设备3接收到的视频帧中包含的跳转计数为4。
在采用如上所述配置的计算设备100作为源设备的情况下,可以由该计算设备100的控制部分140执行在帧数据中添加同步控制信息的处理。例如,控制部分140可以将该同步控制信息作为源数据而添加在每个帧数据中预留的自定义字段中。在添加了同步控制信息之后,控制部分140将每帧中包含了同步控制信息的视频数据暂时存储在该存储部分150中,比如存储在该存储部分150中所包括的缓冲器中,用于等待由源设备播放以及传输到多个接收设备。
在步骤S320,经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备。
在采用如上所述配置的计算设备100作为源设备的情况下,可以由该计算设备100的发送部分110从存储部分150中读取所存储的视频数据的每帧并执行视频帧的发送处理。
在通过多跳网络发送视频帧的情况下,如之前所述,多个接收设备可以形成N个集群(其中N为大于等于1的整数),每个集群包括集群头设备和相应的接收设备,从而,该源设备可以经由该多跳网络将视频帧从该源设备发送到一个集群头设备。接收到该帧的集群头设备可以经由该多跳网络将该帧发送到该集群头所在的集群中的(一个或多个)接收设备以及另一集群头设备,如此继续。由此,添加了同步控制信息的视频帧被发送到每一个接收设备。
接收设备可以将接收的视频帧存储在存储部分150中,比如存储部分150所包括的缓冲器中,以等待播放。
在步骤S330,在多个设备处基于每帧中的同步控制信息来计算该帧的等待时间。该等待时间表示该帧在播放之前需要等待的时间。
在源设备中,在控制部分140将添加了同步控制信息的每帧视频数据缓存在缓冲器中后,控制部分140基于每帧的同步控制信息来计算该帧的等待时间。源设备中该帧的等待时间为自该帧被缓存在缓冲器中起至开始播放该帧的时间,也就是该帧应被缓存以等待播放的时间。
同样,每个接收设备在接收到每帧视频数据后并不立即播放,而是将其缓存在缓冲器中,并基于每帧视频数据中包含的同步控制信息,来计算该帧的等待时间。接收设备中该帧的等待时间为自该帧被接收并被缓存在缓冲器中起至开始播放该帧的时间,也就是该帧应被缓存以等待播放的时间。
以下,参考图5描述基于同步控制信息计算等待时间的示例方法。图5是示出根据本公开实施例计算等待时间的示例方法的流程图。如图5所示,该示例的计算方法500可以包括步骤S510至步骤S540。
在步骤S510,确定视频帧每经过一次发送而被接收的平均延迟时间。
在上述的多跳网络中,视频帧每经过一次发送而被接收的平均延迟时间即为一个单跳的延迟。例如,一个单跳过程可以是从源设备到集群头设备的跳转,可以是从集群头到接收设备的跳转,也可以是集群头到集群头的跳转。
通常,可以认为该单跳延迟由三部分的延迟组成:一是发送(也称为推送)延迟,可以表示为“pus_delay”,它表示从读取数据帧到触发推送动作的所有耗时;二是网络延迟,可以表示为“net_delay”,它表示在一个单跳过程中的网络传输延迟,这与网络环境有关;三是接收延迟,可以表示为“rec_delay”,它表示接收设备从接收到数据帧至将数据帧存储完毕的所有耗时。在稳定的网络环境、足够的带宽和对于所有设备来说相同的软硬件环境的前提下,这三部分延迟都可以预先通过基准测试而获得稳定的结果。例如,在测试时,对于每部分延迟,可以分别取10次测试结果的平均值作为相应的延迟值。当然,这仅仅是举例,本公开可以应用能够获得这三部分延迟的延迟值的任何其他可行方法。
由此,可以获得一个单跳的平均延迟时间,将其表示为“hop_delay”,它可以由以下公式(1)计算得到:
hop_delay=pus_delay+net_delay+rec_delay (1)
在步骤S520,可以基于集群头设备的数量以及该平均延迟时间计算系统最大延迟时间。
为了在源设备以及所有接收设备处同步播放一视频帧,至少应在所有接收设备都接收到该视频帧之后才开始该视频帧的播放。为此,需要确定包括该源设备以及多个接收设备在内的整个系统中最后接收到该视频帧的接收设备处的延迟时间,作为系统最大延迟时间,记为max_delay。
最后被接收的视频帧经历最多次数的跳转,即具有最大的跳转计数。该最大跳转计数由整个系统中所包括的集群头设备的数量决定,若将集群头设备的数量表示为num_box,则该最大跳转计数应为(num_box+1)。例如,参考图4中的多跳网络示例,其中示出了三个集群头设备,接收设备3所接收的视频帧将经历最大的跳转计数,为4次。
由此,系统最大延迟可以通过以下公式(2)计算得到:
max_delay=hop_delay*(num_box+1) (2)
在步骤S530,基于该帧被接收时的跳转计数以及该平均延迟时间计算已经过的延迟时间。
如之前所述,每帧数据在被接收设备接收时所经历的跳转计数已经作为该帧的同步控制信息而包括在该帧数据中,将当前跳转计数记为num_hop。如上所述,已知一次跳转的平均延迟时间为hop_delay,则相对于源设备发送该帧数据的时刻,该帧数据在被接收设备接收时已经过的延迟时间elapse_delay可以通过以下公式(3)计算得到:
elapse_delay=hop_delay*num_hop (3)
在步骤S540,根据该最大延迟时间以及该已经过的延迟时间确定该帧的等待时间。
如上所述,需要容忍系统最大延迟时间以实现视频帧的同步播放。为此,每个接收设备在接收到视频帧时并不立即进行播放而是将其缓存相应的时间,该缓存时间即为在播放之前的等待时间,将其表示为time_cache,则其可以由以下公式(4)计算得到:
time_cache=max_delay-elapse_delay+reserved_cache
=hop_delay*(num_box+1-num_hop)+reserved_cache (4)
其中,“reserved_cache”为预留的帧缓存时间,用于抵消由于网络不稳定或其他原因引起的播放不连续问题,其可以由本领域技术人员根据网络状况预先设定。
由此,通过以上方法500,即可在每个接收设备处计算出由其接收的视频帧在播放之前的等待时间。
事实上,该方法500同样适用于源设备,由于源设备的跳转次数为0,则从以上公式(4)可以得到源设备的等待时间,如以下公式(5)所示:
time_cache=hop_delay*(num_box+1)+reserved_cache (5)
在以上的给出的实施例中,在各个设备处的帧的等待时间是可以以时间来表示。
作为另一示例,该等待时间可以以帧数来表示。因为源设备是以预定的帧速率fps_push将视频帧发送到接收设备,该帧速率fps_push是以帧/秒(fps)为单位,则上述的各时间也可以表示为相应的帧数量。
例如,可以将单跳的平均延迟时间hop_delay表示为单跳的帧缓存数量hop_cache,其可以通过以下公式(6)得到:
hop_cache=hop_delay*fps_push (6)
从而,视频帧在每个接收设备处的帧缓存时间也可以表示为帧缓存数量,即应该在该视频帧自被接收设备接收并缓存起有该帧缓存数量的帧被缓存之后被播放。将该帧缓存数量表示为frame_cache,则其可以通过以下公式(7)计算得到:
frame_cache=hop_cache*(num_box+1-num_hop)+reserved_cache (7)
当然,在公式(7)中,预留的缓存时间reserved_cache也应相应地以帧的数量来表示。
图6示出了不同设备的帧缓存数量的示例,其中示出了图4的多跳网络拓扑下每个设备的帧缓存数量。在图6中,每行中的浅色方框表示一个单跳周期内的帧缓存数量hop_cache,其可以通过以上(6)计算得到。每行中最右侧的深色方框表示预留的帧缓存数量reserved_cache。
如之前所述,在图4中,系统中的集群头数量为3,最大跳转计数为4。因此,如图6所示,对于源设备,其跳转计数为0,其将经历4个单跳周期的帧缓存数量hop_cache加上预留的帧缓存数量reserved_cache。
类似地,对于集群头1,其跳转计数为1,其将经历3个单跳周期的帧缓存数量hop_cache加上预留的帧缓存数量reserved_cache。对于接收设备1以及集群头2,其跳转计数为2,其将经历2个单跳周期的帧缓存数量hop_cache加上预留的帧缓存数量reserved_cache。对于接收设备2以及集群头3,其跳转计数为3,其将经历1个单跳周期的帧缓存数量hop_cache加上预留的帧缓存数量reserved_cache。对于接收设备3,其跳转计数为4,其将经历预留的帧缓存数量reserved_cache。
以上,介绍了根据本公开实施例的基于同步控制信息计算等待时间的示例处理500。在源设备以及接收设备采用如上所述配置的计算设备100的情况下,可以由该计算设备100的控制部分140执行基于同步控制信息计算等待时间的该示例处理500。根据该示例处理500,能够获得每帧数据在源设备以及接收设备处的相应等待时间,其可以以时间来表示,可以以帧数量来表示。当然,这些的表示方式仅仅是示例,该等待时间也可以任何其他适当的方式来表示。
返回方法300,在步骤S340,基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
在该帧的等待时间以时间来表示的情况下,该帧的开始播放时刻是自从该帧被接收并被缓存起已经经过了所计算的等待时间的时刻。在该帧的等待时间表示为帧的数量的情况下,该帧的开始播放时刻是自从该帧被接收并缓存起已经缓存的帧数达到所计算的帧缓存数量的时刻。
对于同一视频帧,当源设备以及接收设备各自达到该帧的相应的开始播放时刻时,开始该帧的播放。由此,可以实现视频帧在源设备以及接收设备处的同步播放。在源设备以及接收设备采用如上所述配置的计算设备100的情况下,可以由该计算设备100的控制部分140基于所计算的每帧的等待时间来控制由该计算设备100的播放部分130开始播放该帧的时刻。
根据以上同步控制方法300,通过在发送视频时在视频的每帧中添加同步控制信息,并根据每帧中的同步控制信息来控制该帧在多个设备处的开始播放时刻,能够实现该视频在多个设备处的同步播放。该方法无需额外部署专用于进行同步控制的服务器等的控制装置,可以降低系统部署的成本,同时,也可以避免由于系统内设备数量增多而引起的网络高负载问题。
接下来,将描述视频帧的开始播放时刻的偏差校正处理。
理论上,根据以上方法300而确定的每帧的开始播放时刻在源设备以及多个接收设备处应该是同一时刻。然而,由于网络延迟、计算误差以及一些其他的因素,该开始播放时刻在源设备以及多个接收设备处可能存在时间偏差,表现为在同一时间源设备与接收设备播放的视频帧可能不是同一帧。因此,进一步地,可以针对该偏差执行校正处理,以确保视频在源设备和接收设备处的同步播放。
为了进行偏差校正处理,可以设置同步帧标志“sync_flag”,该同步帧标志指示当前帧是否是同步帧,同步帧是将要执行偏差校正处理的帧。该同步帧标志也可以作为上述的同步控制信息的一部分而被添加到每个视频帧中。
例如,可以周期性地执行该偏差校正处理,那么可以预先设置一个偏差校正处理周期,并相应地设置一个周期时钟,每当该周期时钟到达一个周期开始的位置时,正在被推送的帧中的参数“sync_flag”就将自动被设置为真。
或者,该校正周期可以以帧的数量来表示,即,该校正周期可以包括预定数量的帧。在从所述源设备发送视频帧时,处于每个校正周期的第一帧中包含的同步帧标志被赋值以指示该帧是同步帧。
由此,在接收设备接收到视频帧时,其检查接收的每帧中包含的同步帧标志,通过该同步帧标志判断当前接收的帧是否为同步帧。在当前接收的帧是同步帧时,则启动偏差校正处理,以校正视频帧在多个设备之间的开始播放时刻的偏差。
作为一个示例,为了执行偏差校正处理,该同步控制信息还可以包括当前播放帧序号。每帧的当前播放帧序号指示在该帧从源设备发送时源设备当前正在播放的帧的序号。因此,可选地,在上述方法300中,源设备可以在发送视频帧之前将当前播放帧序号也作为上述的同步控制信息的一部分而添加在每帧中。
由此,在该示例中,接收设备在基于同步帧标志检测到当前帧为同步帧时,基于当前帧的同步控制信息中包含的当前播放序号来执行偏差校正处理。以下,参考图7描述该同步偏差校正处理的一个具体示例。
图7是示出根据本公开实施例的同步偏差校正处理的步骤的流程图。如图7所示,该同步偏差校正处理700可以包括步骤S710至步骤S730。
在步骤S710,获得在该同步帧被接收设备接收时该接收设备实际正在播放的帧的序号,作为第一帧序号。例如,可以将该实际播放帧序号表示为rec_play_seq。
在步骤S720,基于该同步帧的同步控制信息中包含的当前播放帧序号和该同步帧的跳转计数、以及单次跳转的平均延迟时间,计算在同步帧被接收设备接收时该接收设备应该播放的帧的序号,作为第二帧序号。
如上所述,基于视频帧经历的跳转计数以及单次跳转的平均延迟时间,可以获得单次跳转的帧计数,其表示为hop_cache,可以通过以上公式(6)计算得到。也就是说,如果自从同步帧从源设备发出,到被接收设备接收,该同步帧经历了n次跳转,那么,在接收设备接收到该同步帧时,理论上该接收设备正在播放的帧的序号play_seq可以通过以下公式(8)计算得到:
play_seq=src_play_seq+hop_cache*n (8)
在步骤S730,可以基于该第一帧序号与该第二帧序号之间的偏差,校正该接收设备当前正在播放的帧的序号。
例如,可以预先设置时间偏差范围“time_dev”,其表示在进行视频同步播放时,能够容忍的在源设备上播放该帧的开始播放时刻与在接收设备上播放该帧的开始播放时刻之间的时间偏差。基于该时间偏差范围time_dev,可以计算帧偏差范围,该帧偏差范围表示可以容忍的在源设备上当前正播放的帧的序号与在接收设备上当前正播放的帧序号之间相差的帧的数量。将该帧偏差范围表示为frame_dev,在源设备的帧推送速率为fps_play的情况下,其可以通过以下公式(9)计算得到:
frame_dev=time_dev*fps_play (9)
计算上述实际播放帧序号与理论播放帧序号之间的差,将该差与上述帧偏差范围比较,如果该差在该预定偏差范围内,则表明当前的同步播放偏差是可容忍的,无需进行校正。因此,要实现源设备与计算设备之间的同步播放,要满足以下公式(10):
|rec_play_seq–play_seq|≤frame_dev (10)
当不满足上述等式(10)时,即当上述实际播放帧序号与理论播放帧序号之间的差大于该预定偏差范围时,则需要修正接收设备当前正在播放的帧的序号,以将接收设备当前实际播放帧序号与理论播放帧序号之间的差保持在上述预定偏差范围内。由于实际播放帧序号可能大于理论播放帧序号,也可能小于理论播放帧序号,则通过展开以上公式(10),可以得到当前播放帧序号的修正规则,如下公式(11)所示:
Figure BDA0001812061230000141
根据以上公式(11),当接收设备的当前实际播放帧序号比理论播放帧序号小且该播放偏差超过该预定偏差范围(即播放过慢)时,将当前实际播放帧序号修正为该理论播放序号与该预定偏差之差(play_seq-frame_dev),以便既保证播放偏差在预定偏差范围内,又不会产生由于跳过过多视频帧而引起观看到的视频画面的不连贯,以提供较佳的用户体验。
另一方面,根据以上公式(11),当计算设备接收设备的当前实际播放帧序号比理论播放帧序号大且该播放偏差超过该预定偏差范围(即播放过快)时,将当前实际播放帧序号修正为该理论播放序号与该预定偏差之和(play_seq+frame_dev)以便既保证播放偏差在预定偏差范围内,又不会产生由于回退过多视频帧而引起观看不适,以提供较佳的用户体验。
当然,作为另一种示例的实现方式,当上述实际播放帧序号与理论播放帧序号之间的差大于该预定偏差范围时,也可以将上述的实际播放帧序号直接修改为所计算的理论播放帧序号。
由此,根据上述的该同步偏差校正处理700,基于同步控制信息中包含的同步帧标志判断接收设备当前接收的帧是否为同步帧,在当前接收的帧是同步帧时,基于同步控制信息中包含的当前播放帧序号,执行偏差校正处理,以校正视频帧在源设备和接收设备处的同步播放时刻之间的时间偏差,将由于网络不稳定或者其他原因引起的同步播放的时间偏差限定到可接受的范围内,从而使得即使在很长的运行时间内也能够得到更加稳定的视频同步播放效果。
下面,将参照图8描述根据本公开一实施例的同步控制装置。
图8是示出根据本公开一实施例的同步控制装置800的功能结构的框图。该同步控制装置800用于控制多个设备间的媒体数据的同步播放,该多个设备包括一个源设备以及多个接收设备。如图8所示,同步控制装置800可以包括:添加部件810,用于在该源设备的媒体数据的每帧中添加同步控制信息;发送部件820,经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;计算部件830,在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及控制部件840,基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
在一实施例中,该通信网络可以是多跳网络,该多个接收设备可以形成N个集群,其中N为大于等于1的整数,每个集群可以包括集群头设备和相应的接收设备。该发送部件820使得添加了同步控制信息的媒体数据的每帧从该源设备经由该多跳网络发送到一个集群头设备,接收到该帧的集群头设备经由多跳网络将该帧发送到该集群头所在的集群中的接收设备以及另一集群头设备。
在一实施例中,该同步控制信息可以包括帧的转发次数,该帧的转发次数在源设备处被设置为0,并且在所述多跳网络中每经过一次发送而被接收时该帧的转发次数加1。该计算部件830确定该帧每经过一次发送而被接收的平均延迟时间,基于集群头设备的数量以及该平均延迟时间计算系统最大延迟时间,基于该帧被接收时的转发次数以及该平均延迟时间计算已经过的延迟时间,并根据该最大延迟时间以及该已经过的延迟时间确定该帧的等待时间。
在一实施例中,该帧的等待时间可以表示为帧的数量,该帧的开始播放时刻是自从该帧被接收起已经缓存的帧数达到所述数量的时刻。
在一实施例中,该同步控制信息还可以包括同步帧标志,同步帧标志指示当前帧是否是同步帧,同步帧表示将要执行偏差校正处理的帧。该同步控制装置还可以包括偏差校正部件(未示出),用于基于当前接收的帧中包含的所述同步帧标志判断当前接收的帧是否为同步帧,并在当前接收的帧是同步帧时,在所述同步帧处执行偏差校正处理,以校正多个设备之间的开始播放时刻的偏差。
在一实施例中,在每帧中添加的同步控制信息还可以包括当前播放帧序号,该当前播放帧序号指示在该帧从源设备发送时源设备当前正在播放的帧的序号。该偏差校正部件可以通过以下执行该偏差校正处理:获得在所述同步帧被接收设备接收时该接收设备实际正在播放的帧的序号,作为第一帧序号;基于所述同步帧的同步控制信息中包含的当前播放帧序号和所述同步帧的跳数、以及所述平均延迟时间,计算在所述同步帧被接收设备接收时该接收设备应该播放的帧的序号,作为第二帧序号;基于该第一帧序号与该第二帧序号之间的偏差,校正该接收设备当前正在播放的帧的序号。
在一实施例中,该偏差校正部件可以通过以下来校正该接收设备当前正在播放的帧的序号:将该第一帧序号与该第二帧序号之间的偏差与预定偏差比较;当该第一帧序号与该第二帧序号之间的偏差小于该预定偏差时,不改变该第一帧序号;以及当该第一帧序号与该第二帧序号之间的偏差大于该预定偏差时,基于该第二帧序号与该预定偏差来修改所述第一帧序号。
在一实施例中,该偏差校正部件可以设置校正周期,该校正周期包括预定数量的帧,在从所述源设备发送所述媒体数据的帧时,处于每个校正周期的第一帧中包含的所述同步帧标志被赋值以指示该帧是同步帧。
容易理解的是,此实施例的同步控制装置800中的添加部件810、发送部件820、计算部件830、控制部件840以及可选的偏差校正部件可以由装置800的中央处理单元(CPU)配置。可替代地,添加部件810、发送部件820、计算部件830、控制部件840以及可选的偏差校正部件还可以由装置800中的专用处理单元(诸如专用集成电路(ASIC)等)配置。也就是说,添加部件810、发送部件820、计算部件830、控制部件840以及可选的偏差校正部件例如可以由诸如硬件、软件、固件以及它们的任意可行的组合配置。
当然,为了简化,在图8中仅仅示出了该同步控制装置800中与本公开密切相关的一些组件。毫无疑问,该同步控制装置800还可以包括其他模块,诸如输入输出部件、显示部件、通信部件等。当然,该同步控制装置800可以包括存储设备,用于以易失或非易失的方式存储上述处理过程所涉及的图像、数据、所获得的结果、命令以及中间数据等等。该存储设备可以包括例如随机存取存储器(RAM)、只读存储器(ROM)、硬盘、或半导体存储器等等的各种易失或非易失性存储器。另外,图中也省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,同步控制装置800还可以包括任何其他适当的组件。
下面,参照图9描述本公开另一实施例的同步控制设备。
图9是图示根据本公开另一实施例的同步控制设备900的主要配置的框图。该同步控制设备900用于控制多个设备间的媒体数据的同步播放,该多个设备包括一个源设备以及多个接收设备。
如图9所示,该同步控制设备900可以包括:存储器910、处理器920、输入/输出设备(例如,键盘、鼠标、扬声器等)930、显示设备940等,这些组件通过总线系统950和/或其它形式的连接机构(未示出)互连。应当注意,图9所示的设备900的组件和结构只是示例性的,而非限制性的,根据需要,设备900也可以具有其他组件和结构。例如,设备900还可以具有诸如摄像机等的图像采集组件,用于采集要在源设备以及接收设备之间播放的音频和/或视频流。
存储器910可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存、EPROM存储器、EEPROM存储器等。该计算机可读存储介质还可以包括寄存器、硬盘、软盘、固态硬盘、可移动盘、CD-ROM、DVD-ROM、蓝光盘等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器920可以运行所述程序指令,以实现期望的功能。
处理器920可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,包括但不限于例如一个或者多个处理器或者或微处理器等,并且其可以耦合到该存储器910以运行存储器910中所存储的计算机程序指令来执行以下处理:在该源设备获得的媒体数据的每帧中添加同步控制信息;经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
此外,本发明实施例还提供了一种计算机可读存储介质,在所述计算机可读存储介质上存储了计算机程序指令,所述计算机程序指令在被计算机运行时使得计算机执行以上参照图3至图6所述的用于控制多个设备间的媒体数据的同步播放的同步控制方法的任何实施例。
如上所述,该计算机可读存储介质可以包括例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存、EPROM存储器、EEPROM存储器等。该计算机可读存储介质还可以包括寄存器、硬盘、软盘、固态硬盘、可移动盘、CD-ROM、DVD-ROM、蓝光盘等。
以上,参照图1到图9描述了根据本公开实施例的用于控制多个设备间的媒体数据的同步播放的同步控制方法、同步控制装置和计算机可读存储介质。
根据本公开,通过在发送视频时在视频的每帧中添加同步控制信息,并根据每帧中的同步控制信息来控制该帧在多个设备处的开始播放时刻,能够实现该视频在多个设备处的同步播放。由此,无需额外部署专用于进行同步控制的服务器等的控制装置,可以降低系统部署的成本,同时,也可以避免由于系统内设备数量增多而引起的网络高负载问题。
进一步地,基于同步控制信息中包含的同步帧标志判断接收设备当前接收的帧是否为同步帧,在当前接收的帧是同步帧时,基于同步控制信息中包含的当前播放帧序号,执行偏差校正处理,以校正视频帧在源设备和接收设备处的同步播放时刻之间的时间偏差,将由于网络不稳定或者其他原因引起的同步播放的时间偏差限定到可接受的范围内,从而使得即使在很长的运行时间内也能够得到更加稳定的视频同步播放效果。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
而且,如在此使用的,包括在权利要求中使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
此外,需要说明的是,本说明书中所描述的各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
在本发明实施例中,单元/模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成单元/模块并且实现该单元/模块的规定目的。
在单元/模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的单元/模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

Claims (11)

1.一种同步控制方法,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备,所述方法包括:
在该源设备的媒体数据的每帧中添加同步控制信息;
经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;
在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及
基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
2.如权利要求1所述的同步控制方法,其中所述通信网络是多跳网络,所述多个接收设备形成N个集群,其中N为大于等于1的整数,每个集群包括集群头设备和相应的接收设备,
所述经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备包括:
经由所述多跳网络将所述帧从所述源设备发送到一个集群头设备;以及
接收到所述帧的集群头设备经由所述多跳网络将所述帧发送到该集群头所在的集群中的相应的接收设备以及另一集群头设备。
3.如权利要求2所述的同步控制方法,其中所述同步控制信息包括帧的转发次数,该帧的转发次数在源设备处被设置为0,并且在所述多跳网络中每经过一次发送而被接收时该帧的转发次数加1,
所述基于每帧中的同步控制信息来计算该帧的等待时间包括:
确定该帧每经过一次发送而被接收的平均延迟时间;
基于集群头设备的数量以及该平均延迟时间计算系统最大延迟时间;
基于该帧被接收时的转发次数以及该平均延迟时间计算已经过的延迟时间;以及
根据该最大延迟时间以及该已经过的延迟时间确定该帧的等待时间。
4.如权利要求3所述的同步控制方法,其中该帧的等待时间表示为帧的数量,该帧的开始播放时刻是自从该帧被接收起已经缓存的帧数达到所述数量的时刻。
5.如权利要求3或4所述的同步控制方法,其中所述同步控制信息还包括同步帧标志,所述同步帧标志指示当前帧是否是同步帧,所述同步帧表示将要执行偏差校正处理的帧,所述方法还包括:
基于当前接收的帧中包含的所述同步帧标志判断当前接收的帧是否为同步帧;以及
在当前接收的帧是同步帧时,在所述同步帧处执行偏差校正处理,以校正多个设备之间的开始播放时刻的偏差。
6.如权利要求5所述的同步控制方法,其中在每帧中添加的所述同步控制信息还包括当前播放帧序号,该当前播放帧序号指示在该帧从源设备发送时源设备当前正在播放的帧的序号,
所述在所述同步帧处执行偏差校正处理包括:
获得在所述同步帧被接收设备接收时该接收设备实际正在播放的帧的序号,作为第一帧序号;
基于所述同步帧的同步控制信息中包含的当前播放帧序号和所述同步帧的跳转计数、以及所述平均延迟时间,计算在所述同步帧被接收设备接收时该接收设备应该播放的帧的序号,作为第二帧序号;
基于该第一帧序号与该第二帧序号之间的偏差,校正该接收设备当前正在播放的帧的序号。
7.如权利要求6所述的同步控制方法,其中所述基于该第一帧序号与该第二帧序号之间的偏差,校正该接收设备当前正在播放的帧的序号包括:
将该第一帧序号与该第二帧序号之间的偏差与预定偏差比较;
当该第一帧序号与该第二帧序号之间的偏差小于该预定偏差时,不改变该第一帧序号;以及
当该第一帧序号与该第二帧序号之间的偏差大于该预定偏差时,基于该第二帧序号与该预定偏差来修改所述第一帧序号。
8.一种同步控制装置,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备,所述同步控制装置包括:
添加部件,用于在该源设备的媒体数据的每帧中添加同步控制信息;
发送部件,经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;
计算部件,在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及
控制部件,基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
9.如权利要求8所述的同步控制装置,其中所述同步控制信息还包括同步帧标志,所述同步帧标志指示当前帧是否是同步帧,所述同步帧表示将要执行偏差校正处理的帧,所述同步控制装置还包括:
偏差校正部件,其基于当前接收的帧中包含的所述同步帧标志判断当前接收的帧是否为同步帧,并且在当前接收的帧是同步帧时,在所述同步帧处执行偏差校正处理,以校正多个设备之间的开始播放时刻的偏差。
10.一种同步控制设备,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备,所述同步控制设备包括:
存储器,存储计算机程序指令;以及
处理器,耦合到该存储器,该处理器配置为运行所述计算机程序指令以执行以下处理:
在该源设备的媒体数据的每帧中添加同步控制信息;
经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;
在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及
基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
11.一种计算机可读存储介质,存储有计算机程序指令,所述计算机程序指令在被计算机运行时使得计算机执行同步控制方法,用于控制多个设备间的媒体数据的同步播放,所述多个设备包括一个源设备以及多个接收设备,所述方法包括:
在该源设备的媒体数据的每帧中添加同步控制信息;
经由通信网络将添加了同步控制信息的所述媒体数据的每帧从源设备发送到多个接收设备;
在所述多个设备处基于每帧中的同步控制信息来计算该帧的等待时间;以及
基于所计算的每帧的等待时间来控制该帧的开始播放时刻。
CN201811124672.8A 2018-09-26 2018-09-26 媒体数据播放的同步控制方法、装置及计算机可读介质 Pending CN110958477A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811124672.8A CN110958477A (zh) 2018-09-26 2018-09-26 媒体数据播放的同步控制方法、装置及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811124672.8A CN110958477A (zh) 2018-09-26 2018-09-26 媒体数据播放的同步控制方法、装置及计算机可读介质

Publications (1)

Publication Number Publication Date
CN110958477A true CN110958477A (zh) 2020-04-03

Family

ID=69964619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811124672.8A Pending CN110958477A (zh) 2018-09-26 2018-09-26 媒体数据播放的同步控制方法、装置及计算机可读介质

Country Status (1)

Country Link
CN (1) CN110958477A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953782A (zh) * 2020-08-14 2020-11-17 上海曼恒数字技术股份有限公司 一种多通道数据的同步方法、装置、介质及设备
CN112153445A (zh) * 2020-09-25 2020-12-29 四川湖山电器股份有限公司 一种分布式视频显示系统同步解码播放方法及系统
CN113259877A (zh) * 2021-07-02 2021-08-13 武汉威泰科技发展有限公司 一种无线自组网广告同步方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003298630A (ja) * 2002-04-01 2003-10-17 Mitsubishi Electric Corp 時刻同期方法
CN105204477A (zh) * 2015-10-19 2015-12-30 泰凌微电子(上海)有限公司 无线网络内的同步控制方法、无线网络及智能家居设备
CN105847926A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种多媒体数据的同步播放方法及装置
CN107426869A (zh) * 2017-07-27 2017-12-01 广州中大中鸣科技有限公司 一种led灯光脱机播放同步系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003298630A (ja) * 2002-04-01 2003-10-17 Mitsubishi Electric Corp 時刻同期方法
CN105204477A (zh) * 2015-10-19 2015-12-30 泰凌微电子(上海)有限公司 无线网络内的同步控制方法、无线网络及智能家居设备
CN105847926A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种多媒体数据的同步播放方法及装置
CN107426869A (zh) * 2017-07-27 2017-12-01 广州中大中鸣科技有限公司 一种led灯光脱机播放同步系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953782A (zh) * 2020-08-14 2020-11-17 上海曼恒数字技术股份有限公司 一种多通道数据的同步方法、装置、介质及设备
CN112153445A (zh) * 2020-09-25 2020-12-29 四川湖山电器股份有限公司 一种分布式视频显示系统同步解码播放方法及系统
CN112153445B (zh) * 2020-09-25 2022-04-12 四川湖山电器股份有限公司 一种分布式视频显示系统同步解码播放方法及系统
CN113259877A (zh) * 2021-07-02 2021-08-13 武汉威泰科技发展有限公司 一种无线自组网广告同步方法和系统

Similar Documents

Publication Publication Date Title
JP5525032B2 (ja) 主機器と従機器を含む同期制御システム及びその同期制御方法
US10147440B2 (en) Method for playing data and apparatus and system thereof
CN110958477A (zh) 媒体数据播放的同步控制方法、装置及计算机可读介质
WO2017166497A1 (zh) 一种多媒体数据的同步播放方法及装置
US9088818B2 (en) Adaptive media delay matching
CN102932676B (zh) 基于音视频同步的自适应带宽传输和播放方法
US9686554B2 (en) Encoder adaptation
CN111147906B (zh) 同步播放系统及同步播放方法
US10542192B2 (en) Image transfer system, image receiver, image transmitter, image transfer method, image reception method, image transmission method, and program
US20160267878A1 (en) Display control apparatus, display control system, and display control method
JP6038046B2 (ja) パケット通信ネットワークを介して伝送されるコンテンツをストリーミングするためのクロックリカバリ機構
US20160352826A1 (en) Multimedia system and method for streaming synchronization
JP2006197399A (ja) タイミングの検出装置、表示装置、タイミングの検出プログラム、タイミングの検出プログラムを記録したコンピュータ読取可能な記録媒体
JP2003209594A (ja) プログラム、記録媒体、並びに情報送信装置および方法
JP6051658B2 (ja) 無線通信装置、無線通信方法及びプログラム
JP5958008B2 (ja) ストリーム処理装置、ストリーム処理方法およびストリーム処理プログラム
JP4891204B2 (ja) 映像処理装置、映像処理方法、映像処理プログラム及び記憶媒体
US9912427B2 (en) Reception apparatus and system
JP2021013049A (ja) データ送信装置、データ送信システム、及び、データ送信方法
US20240107094A1 (en) Communication apparatus, control method, and storage medium
WO2022233143A1 (zh) 相机快门同步实现方法、装置和设备
WO2017068663A1 (ja) 通信装置及び通信方法及び通信プログラム
JP4152860B2 (ja) 通信装置、通信機器、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
CN117939225A (zh) 一种帧率调整方法及相关设备
JP6620524B2 (ja) 処理分散制御装置、処理分散制御方法および処理分散制御プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200403

RJ01 Rejection of invention patent application after publication