CN110677394B - 一种多媒体数据的传输方法及系统 - Google Patents
一种多媒体数据的传输方法及系统 Download PDFInfo
- Publication number
- CN110677394B CN110677394B CN201910866762.2A CN201910866762A CN110677394B CN 110677394 B CN110677394 B CN 110677394B CN 201910866762 A CN201910866762 A CN 201910866762A CN 110677394 B CN110677394 B CN 110677394B
- Authority
- CN
- China
- Prior art keywords
- target
- terminal
- data
- frame
- multimedia
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1013—Network architectures, gateways, control or user entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种多媒体数据的传输方法及系统。该方法包括:方法应用于包括第一终端和第二终端的系统,第一终端和第二终端中的至少一个终端为处于视联网中的终端,方法包括:第一终端接收多路多媒体数据,将多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;第一终端接收多媒体同步请求,多媒体同步请求包括多个目标多媒体标识;第一终端响应于多媒体同步请求,根据第一对应关系,识别与多个目标多媒体标识分别对应的多个目标队列;第一终端识别与多个目标多媒体标识对应的第二终端的多个目标端口;第一终端将多个目标队列中的多路目标多媒体数据并行发送至第二终端的多个目标端口。本发明能够提升数据传输的实时性。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种多媒体数据的传输方法以及系统,以及一种计算机可读存储介质。
背景技术
目前,在对视联网会议的音视频数据进行录制过程时,主要是通过存储网关接收各个视联网终端发送的音视频数据,然后转发给媒体服务器进行音视频处理。
但是,目前的存储网关在接收各路音视频数据时,是将接收到的音视频数据均写入一个队列中,再对该队列进行先入先出的方式,将接收到的各路音视频数据转发给媒体服务器。
那么存储网关相当于是音视频数据的二次转发设备,当媒体服务器需要对多路音视频数据作同步播放处理时,由于媒体服务器从存储网关接收到的数据的顺序与存储网关发送数据的顺序基本一致,使得各路音视频数据先后到达媒体服务器,从而使得媒体服务器在对多路音视频数据进行同步播放时造成了影响。也就是说,媒体服务器需要等待多路音视频数据均接收到之后,才可以进行同步播放,严重影响了数据传输的实时性。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种多媒体数据的传输方法、一种多媒体数据的传输系统、一种多媒体数据的传输装置,以及一种计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种为了解决上述问题,本发明实施例公开了一种多媒体数据的传输方法,所述方法应用于包括第一终端和第二终端的系统,所述第一终端和所述第二终端中的至少一个终端为处于视联网中的终端,所述方法包括:
所述第一终端接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;
所述第一终端接收多媒体同步请求,所述多媒体同步请求包括多个目标多媒体标识;
所述第一终端响应于所述多媒体同步请求,根据所述第一对应关系,识别与所述多个目标多媒体标识分别对应的多个目标队列;
所述第一终端识别与所述多个目标多媒体标识对应的第二终端的多个目标端口;
所述第一终端将所述多个目标队列中的多路目标多媒体数据并行发送至所述第二终端的多个目标端口。
本发明实施例还公开了一种多媒体数据的传输系统;
所述系统包括第一终端和第二终端,所述第一终端和所述第二终端中的至少一个终端为处于视联网中的终端;
所述第一终端包括:
第一接收模块,用于接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;
第二接收模块,用于接收多媒体同步请求,所述多媒体同步请求包括多个目标多媒体标识;
第一识别模块,用于响应于所述多媒体同步请求,根据所述第一对应关系,识别与所述多个目标多媒体标识分别对应的多个目标队列;
第二识别模块,用于识别与所述多个目标多媒体标识对应的第二终端的多个目标端口;
发送模块,用于将所述多个目标队列中的多路目标多媒体数据并行发送至所述第二终端的多个目标端口。
本发明实施例还公开了一种多媒体数据的传输装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如本发明实施例所述的多媒体数据的传输方法。
本发明实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的多媒体数据的传输方法。
本发明实施例包括以下优点:
在本发明实施例中,在接收到不同路的多媒体数据时,会将不同路多媒体数据写入不同的队列,使得同一队列只包括一路多媒体数据,不同队列之间的多媒体数据相互独立,那么当接收到多媒体同步请求时,则可以确定待同步的多路目标多媒体数据所分别对应的多个目标队列以及在第二终端侧对应的多个目标端口,然后,将多个目标队列中的多路目标多媒体数据并行的发送至该多个目标端口。由于第一终端向第二终端发送待同步的多路目标多媒体数据时,是对不同的队列中的数据进行并行发送,且发送至第二终端的不同目标端口,因此,可以确保该多路目标多媒体数据在第二终端侧可以同步接收到,而不是先后接收到,提升了第二终端侧对接收到多路多媒体数据的实时性。
附图说明
图1是本发明的一种视联网的组网示意图;
图2是本发明的一种节点服务器的硬件结构示意图;
图3是本发明的一种接入交换机的硬件结构示意图;
图4是本发明的一种以太网协转网关的硬件结构示意图;
图5是本发明实施例的一种多媒体数据的传输方法实施例的步骤流程图;
图6是本发明实施例的一种多媒体数据的传输方法实施例的流程图;
图7是本发明实施例的另一种多媒体数据的传输方法实施例的步骤流程图;
图8是本发明实施例的一种多媒体数据的传输系统实施例的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大第一视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(Circuit Switching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模块202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块304进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,可以包括两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块308是由CPU模块304来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
参考图5,示出了本发明实施例的一种多媒体数据的传输方法实施例的步骤流程图,该方法应用于包括第一终端和第二终端的系统,所述第一终端和所述第二终端中的至少一个终端为处于视联网中的终端。
在不同实施方式中,上述方法可以具有以下应用场景中的任意一个:
场景一,第一终端为处于视联网中的终端,第二终端为处于互联网中的终端,因此,本发明实施例的传输方法是应用于将视联网的多路多媒体数据同步传输至互联网的设备的场景。
在一个示例中,该第一终端可以是视联网中的存储网关(负责视联网存储资源的一个平台),第二终端可以是互联网中的多媒体服务器,以表达存储网关将来自视联网终端(接入视联网的实体硬件盒子或者软件)的多路多媒体数据同步发送至互联网的多媒体服务器进行媒体处理的过程。
场景二,第一终端为处于互联网中的终端,第二终端为处于视联网中的终端,因此,本发明实施例的传输方法是应用于将互联网的多路多媒体数据同步传输至视联网的设备的场景。
在一个示例中,该第一终端可以是互联网中的存储网关(负责互联网存储资源的一个平台),第二终端可以是视联网中的多媒体服务器,以表达存储网关将来自互联网终端的多路多媒体数据同步发送至视联网的多媒体服务器进行媒体处理的过程。例如,多媒体服务器可以与视联网终端连接,以此来实现视联网终端对互联网的多媒体数据的点播业务。
场景三,第一终端和第二终端均为处于视联网中的终端,因此,本发明实施例的传输方法是应用于将视联网的多路多媒体数据同步传输至视联网的设备的场景。
本发明实施例的多媒体数据的传输方法在应用于上述三个场景中的任意一个场景时,所采用的传输方法都是类似的,区别仅仅在于传输的多媒体数据的格式遵循相应的数据传输协议以及协议转换的差异。
例如,在场景一中,第一终端传输的多路多媒体数据是按照视联网协议编码的,那么第一终端在将按照视联网协议编码的多路多媒体数据发送至第二终端之后,第二终端则需要按照视联网协议对该多路多媒体数据进行解码,再对解码后的数据按照互联网协议进行编码,从而进行多媒体数据的处理。
再如,在场景二中,第一终端传输的多路多媒体数据是按照互联网协议编码的,那么第一终端在将按照互联网协议编码的多路多媒体数据发送至第二终端之后,第二终端则需要按照互联网协议对该多路多媒体数据进行解码,再对解码后的数据按照视联网协议进行编码,从而进行多媒体数据的处理。
再如,在场景三中,由于第一终端和第二终端均为处于视联网中的终端,因此,不涉及协议转换的过程,第一终端传输的多路多媒体数据是按照视联网协议编码的,那么第一终端在将按照视联网协议编码的多路多媒体数据发送至第二终端之后,第二终端可以直接对接收到的符合视联网协议的多路多媒体数据的处理。
因此,在后续实施例中,以场景一为例,以该第一终端为视联网中的存储网关(负责视联网存储资源的一个平台),第二终端为互联网中的多媒体服务器为例,来对本发明各个实施例的多媒体数据的传输方法的流程做详细阐述。
为了便于对图5实施例的方法的理解,可以结合图6所示的存储网关与媒体处理服务器之间的交互流程,来对图5所示的方法作详细阐述。如图5所示,该传输方法可以包括如下步骤:
步骤501,所述第一终端接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;
可选地,该多媒体数据可以是视频数据和/或音频数据。
为了便于读者理解,后文以多媒体数据为视频数据为例来进行说明,但是,需要注意的是,不论多媒体数据是哪种数据形式,其传输方法均不背离本发明任意一个实施例所述的多媒体数据的传输方法。
其中,存储网关在接收到视联网的多路视频流数据后,可以为每一路视频流数据提供一个缓冲队列,使得不同路的视频流数据被写入至不同的缓冲队列中。
其中,由于缓冲队列的发送线程负责单路数据的发送,而不是传统技术中,将多路视频流数据均写入同一个队列中,从而避免了由一个线程对多路视频流数据的混合数据进行串行发送所导致的接收方对该数据的接收实时性差的问题。
在将一路多媒体数据写入缓冲队列之后,可以将该路多媒体数据的多媒体标识,与该缓冲队列的标识建立关联,从而生成多媒体标识与队列之间的第一对应关系。
该多路多媒体数据可以来自不同的视联网终端。
此外,本发明实施例的存储网关所接收到的该多路多媒体数据可以是同时接收到的多路多媒体数据,也可以是在不同时刻先后接收到的多路多媒体数据。也就是说,本发明对于该多路多媒体数据的接收时机不做限制。但是,在存储网关侧,对于接收到的不同路多媒体数据,会将它们分别写入至不同的缓冲队列中。即同一个缓冲队列只可以写入同一路多媒体数据,而不包括不同路的多路多媒体数据。
在一个示例中,如图6所示,存储网关从视联网的各个视联网终端侧接收到4路视频流数据,分别为视频流A、视频流B、视频流C和视频流D,且该四路视频流分别缓存在不同的缓冲队列中。
步骤502,所述第一终端接收多媒体同步请求,所述多媒体同步请求包括多个目标多媒体标识;
对于视频流的同步而言,该系统中还可以包括调度服务器,该调度服务器所处的网络与该第一终端(这里为存储网关)所处的网络相同。在一个示例中,该调度服务器为视联网中的调度设备。
该调度服务器可以与存储网关以及媒体处理服务器进行通信。
该调度服务器可以向存储网关发送多媒体同步请求,即,其可以指示对哪些视频流数据进行同步操作。因此存储网关接收到的该多媒体同步请求中包括需要同步的多个目标多媒体标识,例如这里为上述4路视频流数据的4个目标多媒体标识分别为A、B、C、D。
在一个示例中,在视频会议场景下,会议控制端可以通过该调度服务器来控制存储网关对哪几路视频流数据进行同步发送,那么媒体处理服务器,就可以对同时接收到的多路视频流进行合屏处理,使得需要同步显示的几路视频流的视频会议画面可以在一个终端(该终端与该媒体处理服务器连接)侧同步显示,这样,在该终端就可以看到同时进行视频会议的多个视联网终端的视频会议画面。
步骤503,所述第一终端响应于所述多媒体同步请求,根据所述第一对应关系,识别与所述多个目标多媒体标识分别对应的多个目标队列;
其中,存储网关可以从多媒体同步请求中解析出上述4个目标多媒体标识,即视频流标识,然后,根据步骤501中生成的第一对应关系,来查找每个视频流标识对应的目标队列,这里分别缓存上述4路视频流数据的4个目标缓冲队列,分别为队列A、队列B、队列C和队列D。
步骤504,所述第一终端识别与所述多个目标多媒体标识对应的第二终端的多个目标端口;
可选地,上述步骤501之后,上述步骤504之前,根据本发明实施例的方法还可以包括:
步骤506,所述第一终端接收所述多媒体标识与所述第二终端的多个端口之间的第二对应关系;
由于多媒体服务器的网络模块具有与存储网关通信的多个端口(例如IP端口),而存储网关侧缓存的哪一路视频流发送至媒体处理服务器的哪个端口,则可以由上文所述的调度服务器来决定。其中,调度服务器可以向存储网关动态的分配其所传输的每一路视频流需要传输至媒体处理服务器的哪个端口,来达到端口动态分配的目的。
因此,上述步骤501之后,上述步骤504之前,存储网关可以从调度服务器接收到调度服务器分配的所述多媒体标识与所述第二终端的多个端口之间的第二对应关系;
其中,该多媒体标识为该存储网关当前接收到的所有多媒体数据的多个多媒体标识,而不是限制与上述多媒体同步请求中的待同步的多路多媒体数据的多个目标多媒体标识。
在本例中,例如该第二对应关系包括:视频流标识A端口A;视频流标识B关联于端口B;视频流标识C关联于端口C;视频流标识D关联于端口D。
那么在本实施例中,在执行步骤504时,则所述第一终端根据所述第二对应关系,识别与所述多个目标多媒体标识对应的第二终端的多个目标端口。
即,存储网关可以根据调度服务器预先下发的上述第二对应关系,来识别出当前待同步的4路视频流的视频流标识所分别对应的媒体处理服务器一侧的多个目标端口。
需要说明的是,不同目标多媒体标识对应的目标端口不同。
在本发明实施例中,通过接收关于接收到的多路多媒体数据的多媒体标识与数据待发送至的第二终端的端口之间的对应关系,从而可以在需要进行数据同步时,能够通过该对应关系准确的查询到对待同步的各路多媒体数据所对应的目标端口,从而使得同步发送的多路目标多媒体数据可以发送至第二终端侧的不同目标端口,使得在第二终端侧可以利用多个目标端口同步接收多路目标多媒体数据,确保第二终端接收到的多路数据的同步性。
步骤505,所述第一终端将所述多个目标队列中的多路目标多媒体数据并行发送至所述第二终端的多个目标端口。
如图6所示,由于上述步骤确定了4个目标端口,那么存储网关可以与上述4个目标端口分别建立4个链路,从而得到通道A、通道B、通道C和通道D;那么存储网关的4个缓冲队列的4个发送线程就可以同步的对各自队列中的视频流数据进行同步发送。
具体而言,缓冲队列A对应的发送线程A可以将视频流A通过通道A发送至媒体处理服务器的目标端口A;缓冲队列B对应的发送线程B可以将视频流B通过通道B发送至媒体处理服务器的目标端口B;缓冲队列C对应的发送线程C可以将视频流C通过通道C发送至媒体处理服务器的目标端口C;缓冲队列D对应的发送线程D可以将视频流D通过通道D发送至媒体处理服务器的目标端口D。
由于通过4个不同的通道分别发送四路视频流数据到媒体处理服务器的4个不同端口,从而使得媒体处理服务器可以并行地接收四路视频流数据,减少了4路视频流数据经过存储网关所造成的延时。因为,待同步的多路目标视频流数据的原始采集设备是视联网终端,而存储网关相当于二次采集设备,那么在传统技术中,通过将待同步的多路目标视频流数据写入同一个缓冲队列,并由同一个发送线程进行数据的发送,由于媒体处理服务器侧的数据接收线程从网络接收数据的顺序是以存储网关的发送线程发送数据的顺序相一致的,那么由于该多路目标视频流数据是先后到达媒体处理服务器的,则媒体处理服务器在进行数据同步时,则需要接收到该多路目标视频流数据之后,才可以同步操作。因此造成了多路目标视频流数据在存储网关侧的时延,影响了媒体处理服务器对多路目标视频流数据接收同步的实时性。
在本发明实施例中,在接收到不同路的多媒体数据时,会将不同路多媒体数据写入不同的队列,使得同一队列只包括一路多媒体数据,不同队列之间的多媒体数据相互独立,那么当接收到多媒体同步请求时,则可以确定待同步的多路目标多媒体数据所分别对应的多个目标队列以及在第二终端侧对应的多个目标端口,然后,将多个目标队列中的多路目标多媒体数据并行的发送至该多个目标端口。由于第一终端向第二终端发送待同步的多路目标多媒体数据时,是对不同的队列中的数据进行并行发送,且发送至第二终端的不同目标端口,因此,可以确保该多路目标多媒体数据在第二终端侧可以同步接收到,而不是先后接收到,提升了第二终端侧对接收到多路多媒体数据的实时性。
由于视联网终端是上述视频流数据的首次采集终端,存储网关相当于二次采集终端,因此,对于任意一路视频流数据而言,在将其传输至媒体处理服务器侧时,可能因为网络延时等原因,造成多帧视频中有的视频帧传输快有的视频帧传输慢。
因此,在一种可能的实施方式中,本发明实施例提供了一种确保同一路视频流中不同视频帧传输均匀的方法,目的在于确保一路视频流中不同帧视频的传输时长相近,确保第二终端在接收到该一路视频流时,所展示的视频画面是均匀连续的,避免画面卡顿的问题,提升第二终端侧接收的视频流的流畅性。
具体而言,在一个实施例中,在执行步骤505时,可以通过S601~S604来实现:
S601,对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,所述第一终端逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口,并且,每发送所述目标多媒体数据中的一帧数据至所述第二终端的对应目标端口之后,记录所述一帧数据的发送时长总和;
以对一路视频流A的发送流程为例进行说明,存储网关在从缓冲队列A中读取视频流A时,视频流A在缓冲队列A中是以多帧的方式存储的,每一帧数据可以包括至少一个数据包,优选多个数据包,因此,存储网关对应缓冲队列A的发送线程A可以从该缓存队列A中依次读取每帧数据,并依次将每帧数据发送至端口A,其中,在每发送一帧数据至该端口A之后,都记录该帧数据的发送时长总和。从而能够依据该发送时长总和与该路视频流对应的帧间隔时长,来决定下一帧数据的发送时机。
由于一帧数据被划分为多个数据包,因此,每次在读取/发送一帧数据时,依次将一帧数据中的多个数据包通过通道A逐个发送至媒体处理服务器的端口A。
对于视频流A中的每一帧数据都按照上述流程进行操作,从而对于该视频流中每一帧数据都分别记录有对应的发送时长总和。
可选地,在执行S601时,可以通过S701~S703来实现:
图7示出了S701~S703的具体实现过程,下面结合图7所示的流程,来对本发明实施例的S601的具体实现进行详细阐述。
S701,对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,所述第一终端在逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口时,所述第一终端从所述目标队列依次读取数据包,并获取所述数据包的第一帧序号;
S702,若所述第一帧序号与记录的目标帧序号相同,则所述第一终端发送所述数据包至所述目标端口,并记录所述数据包的发送时长,以及将所述发送时长累加至所述目标帧序号对应的发送时长总和,其中,所述目标帧序号初始值为从所述目标队列读取的所述目标多媒体数据中的首个数据包的帧序号;
S703,若所述第一帧序号与记录的目标帧序号不同,则所述第一终端确定对应所述目标帧序号的一帧数据已发送至所述目标端口,将所述目标帧序号对应的发送时长总和标记为所述一帧数据的发送时长总和,并将所述目标帧序号的取值修改为所述第一帧序号。
如图7所示,缓存队列为存储视频流A的队列,以发送视频流A中的一帧数据为例进行说明。由于一帧数据可以包括多个数据包,因此,在发送一帧数据时,会按照该帧数据的多个数据包的排列顺序,依次读取该帧数据的数据包。
另外,属于同一帧数据的不同数据包所携带的帧序号是相同的。
例如视频流A的第一帧数据包括3个数据包,数据包的发送顺序依次为数据包1、数据包2、数据包3,其中,该第一帧数据的帧序号为1-1,该三个数据包均携带1-1的帧序号信息;类似的,视频流A的第二帧数据包括3个数据包,数据包的发送顺序依次为数据包4、数据包5、数据包6,其中,该第一帧数据的帧序号为1-2,该三个数据包均携带1-2的帧序号信息。
具体而言,从缓冲队列中读取第一个数据包,提取其帧序号为1-1(例如从包头中提取帧序号);
然后,判断读取的数据包是否是视频流A中的首个数据包;
若是(这里读取的确实是首个数据包),因此,将表示最后发送的数据包的帧序号X(即上述目标帧序号)的取值修改为该帧序号1-1,其中,该帧序号X的初始值即为该帧序号1-1;
然后,判断提取的帧序号1-1是否与帧序号X的取值相同;
这里是相同的,因此,发送该第一个数据包,即数据包1,并在发送完数据包1至目标端口A之后,记录该数据包1的发送时长;
然后,将该数据包1的发送时长t1累加到帧序号X,这里为帧序号1-1对应的发送时长总和T中(需要注意的是,帧序号X对应的发送时长总和的初始值为零),这里T=t1;
这样,经过上述流程,视频流A的首个数据包,数据包1发送完成;
然后,从缓冲队列中读取下一个数据包(即数据包2),提取帧序号,仍旧为帧序号1-1;
经过判断该数据包2不是视频流A中的首个数据包,因此,可以判断提取的帧序号是否与帧序号X的取值相同;
由于数据包2的帧序号与帧序号X的取值(这里为1-1)是相同的,因此,发送该数据包2至目标端口A,并在发送完数据包2至目标端口A之后,记录该数据包2的发送时长;
然后,将该数据包2的发送时长t2累加到帧序号X,这里为帧序号1-1对应的发送时长总和T中(需要注意的是,帧序号X对应的发送时长总和的初始值为零),这里T=t1+t2;
这样,经过上述流程,视频流A的第二个数据包,数据包2发送完成;
再从缓冲队列中读取数据包3,其发送流程与上述关于数据包2的发送流畅类似,这里不再赘述。
接着,再从缓冲队列中读取数据包4,提取帧序号,这里为帧序号1-2;
经过判断该数据包4不是视频流A中的首个数据包,因此,可以判断提取的帧序号是否与帧序号X的取值相同;
由于数据包4的帧序号为1-2,其与帧序号X的取值(这里为1-1)是不同的,因此,可以确定帧序号1-1对应的一帧数据发送完成;
然后,将前述流程累加的帧序号X对应的发送时长总和T标记为该第一帧数据(即帧序号为1-1的视频流A的第一帧数据)的发送时长总和;
以及,将帧序号X的取值修改为提取到的数据包4的帧序号,即取值从1-1修改为1-2;
然后,继续执行判断提取到的帧序号(1-2)与帧序号X的取值是否相同的判断步骤;
显然,这里是相同的,从而将数据包4发送至目标端口A;
在数据包4发送完成之后,记录数据包4的发送时长t4;
将该发送时长t4累加到帧序号X(即1-2)对应的发送时长总和中,其中,帧序号1-2对应的发送时长总和的初始值也是零,经过这里的步骤,帧序号1-2对应的发送时长总和T=t4。
这样,经过上述流程,视频流A的第四个数据包,数据包4也发送完成。
然后,继续从缓冲队列中读取下一个数据包,按照图7所示的流程来执行,直至缓冲队列中的全部数据包均发送至目标端口A,完成对队列A中的一路视频流A的发送过程。
在本发明实施例中,经过上述方法可以较为准确的记录得到每一帧数据的发送时长总和,从而便于利用该发送时长总和来灵活的调整下一帧数据的传输时机,确保视频流中不同帧数据之间传输时长的基本一致性,提升视频流的画面流畅度。
S602,所述第一终端获取所述一路目标多媒体数据对应的帧间隔时长;
而对于一路视频流数据而言,其配置有帧间隔时长这个参数的。
在获取该帧间隔时长时,可以采用如下方法来实现:
一路视频流数据有一个帧率,不同路的视频流数据的帧率可能相同或不同,本发明对此不做限制。
存储网关可以根据一路视频流数据的帧率,来计算该一路视频流数据的帧间隔时长。
例如帧率为30帧/s,则表示该路视频流在一秒内可以传输30帧视频,因此,每一帧视频的传输耗时为33毫秒,所以,该路视频流的帧间隔时长为33毫秒。
再如,帧率为25帧/s,则表示该路视频流在一秒内可以传输25帧视频,因此,每一帧视频的传输耗时为40毫秒,所以,该路视频流的帧间隔时长为40毫秒。
因此,本步骤中,存储网关可以利用视频流A的帧率,来计算该视频流A的帧间隔时长,例如为33毫秒。
需要说明的是,本发明对于S601和S602之间的执行顺序不做限制,都在S603之前执行即可。
S603,若所述发送时长总和小于所述帧间隔时长,则所述第一终端等待目标时长之后,再发送所述目标多媒体数据中的下一帧数据至所述目标端口,其中,所述目标时长为所述发送时长总和与所述帧间隔时长之间的差值;
其中,如果该视频流A的一帧视频的发送时长总和(例如25毫秒)小于33毫秒,则说明该帧数据的发送速度较快,还没有到33毫秒,可以等到一段时间之后,再发送该视频流A的下一帧数据至该目标端口。而等待的时长则是(33-25)毫秒,即8毫秒。
S604,若所述发送时长总和大于或等于所述帧间隔时长,则所述第一终端发送下一帧数据至所述目标端口。
例如,该视频流A的一帧视频的发送时长总和(例如35毫秒)大于33毫秒,则说明该帧数据的发送速度较慢,已经超过33毫秒,则在发送该数据到目标端口之后,无需再进行的等待,而是直接再发送该视频流A的下一帧数据至该目标端口。
在本发明实施例中,在发送一路视频流的数据至第二终端的目标端口时,可以获取该视频流的帧间隔时长,那么在发送每一帧数据至目标端口之后,通过判别该帧数据的发送时长总和与该帧间隔时长之间的大小关系,来确定该帧数据是发送快了,还是慢了,从而灵活地决定下一帧数据的发送时机,使得该路视频流中的不同视频帧数据的发送时长总和都是接近与该帧间隔时长的,避免了因网络时延等问题导致的不同帧发送时长差距较大所导致的画面卡顿的问题,相反,本发明实施例确保了对一路视频流中不同视频帧发送时长总和的均匀控制,使得一路视频流中不同帧视频的传输时长相近,传输速度相近,确保了第二终端所接收的该路视频流的视频画面在播放时是均匀连续的,画面卡顿现象并不明显。
另外,需要说明的是,对于存储网关向媒体处理服务器发送的任意一路视频流数据而言(而不限制于待同步的多路目标多媒体数据中的任意一路目标多媒体数据),都可以采用上述S601~S604的相关实施例的方法来实现对一路视频流的传输,从而确保该路视频流中不同视频帧的传输时长相近,提升媒体处理服务器侧接收到的一路视频流中不同视频帧的画面流畅,减少卡顿现象。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参考图8,示出了本发明实施例的一种多媒体数据的传输系统,所述系统包括第一终端801和第二终端802,所述第一终端801和所述第二终端802中的至少一个终端为处于视联网中的终端;
所述第一终端801包括:
第一接收模块81,用于接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;
第二接收模块82,用于接收多媒体同步请求,所述多媒体同步请求包括多个目标多媒体标识;
第一识别模块83,用于响应于所述多媒体同步请求,根据所述第一对应关系,识别与所述多个目标多媒体标识分别对应的多个目标队列;
第二识别模块84,用于识别与所述多个目标多媒体标识对应的第二终端802的多个目标端口;
发送模块85,用于将所述多个目标队列中的多路目标多媒体数据并行发送至所述第二终端802的多个目标端口。
可选地,所述第一终端801还包括:
第三接收模块,用于接收所述多媒体标识与所述第二终端802的多个端口之间的第二对应关系;
第二识别模块84,还用于根据所述第二对应关系,识别与所述多个目标多媒体标识对应的第二终端802的多个目标端口。
可选地,所述发送模块85包括:
发送记录子模块,用于对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端802的对应目标端口,并且每发送所述目标多媒体数据中的一帧数据至所述第二终端802的对应目标端口之后,记录所述一帧数据的发送时长总和;
获取子模块,用于获取所述一路目标多媒体数据对应的帧间隔时长;
第一发送子模块,用于若所述发送时长总和小于所述帧间隔时长,则等待目标时长之后,再发送所述目标多媒体数据中的下一帧数据至所述目标端口,其中,所述目标时长为所述发送时长总和与所述帧间隔时长之间的差值;
第二发送子模块,用于若所述发送时长总和大于或等于所述帧间隔时长,则发送所述目标多媒体数据中的下一帧数据至所述目标端口。
可选地,所述发送记录子模块包括:
获取单元,用于对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,在逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端802的对应目标端口时,从所述目标队列依次读取数据包,并获取所述数据包的第一帧序号;
发送单元,用于若所述第一帧序号与记录的目标帧序号相同,则发送所述数据包至所述目标端口,并记录所述数据包的发送时长,以及将所述发送时长累加至所述目标帧序号对应的发送时长总和,其中,所述目标帧序号初始值为从所述目标队列读取的所述目标多媒体数据中的首个数据包的帧序号;
修改单元,用于若所述第一帧序号与记录的目标帧序号不同,则确定对应所述目标帧序号的一帧数据已发送至所述目标端口,将所述目标帧序号对应的发送时长总和标记为所述一帧数据的发送时长总和,并将所述目标帧序号的取值修改为所述第一帧序号。
对于多媒体数据的传输系统实施例而言,由于其与多媒体数据的传输方法实施例基本相似,所以描述的比较简单,相关之处参见多媒体数据的传输方法实施例的部分说明即可。
本发明实施例还提供了一种多媒体数据的传输装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如本发明任意一个实施例所述的多媒体数据的传输方法。
本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明任意一个实施例所述的多媒体数据的传输方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种多媒体数据的传输方法、一种多媒体数据的传输系统、一种多媒体数据的传输装置和一种计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种多媒体数据的传输方法,其特征在于,所述方法应用于包括第一终端和第二终端的系统,所述第一终端和所述第二终端中的至少一个终端为处于视联网中的终端,所述方法包括:
所述第一终端接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;
所述第一终端接收多媒体同步请求,所述多媒体同步请求包括多个目标多媒体标识;
所述第一终端响应于所述多媒体同步请求,根据所述第一对应关系,识别与所述多个目标多媒体标识分别对应的多个目标队列;
所述第一终端识别与所述多个目标多媒体标识对应的第二终端的多个目标端口;
所述第一终端将所述多个目标队列中的多路目标多媒体数据并行发送至所述第二终端的多个目标端口,具体包括:
对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,所述第一终端逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口,并且每发送所述目标多媒体数据中的一帧数据至所述第二终端的对应目标端口之后,记录所述一帧数据的发送时长总和;
所述第一终端获取所述一路目标多媒体数据对应的帧间隔时长;
若所述发送时长总和小于所述帧间隔时长,则所述第一终端等待目标时长之后,再发送所述目标多媒体数据中的下一帧数据至所述目标端口,其中,所述目标时长为所述发送时长总和与所述帧间隔时长之间的差值;
若所述发送时长总和大于或等于所述帧间隔时长,则所述第一终端发送所述目标多媒体数据中的下一帧数据至所述目标端口。
2.根据权利要求1所述的方法,其特征在于,所述第一终端接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系之后,所述方法还包括:
所述第一终端接收所述多媒体标识与所述第二终端的多个端口之间的第二对应关系;
所述第一终端识别与所述多个目标多媒体标识对应的第二终端的多个目标端口,包括:
所述第一终端根据所述第二对应关系,识别与所述多个目标多媒体标识对应的第二终端的多个目标端口。
3.根据权利要求2所述的方法,其特征在于,所述对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,所述第一终端逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口,并且每发送所述目标多媒体数据中的一帧数据至所述第二终端的对应目标端口之后,记录所述一帧数据的发送时长总和,包括:
对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,所述第一终端在逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口时,所述第一终端从所述目标队列依次读取数据包,并获取所述数据包的第一帧序号;
若所述第一帧序号与记录的目标帧序号相同,则所述第一终端发送所述数据包至所述目标端口,并记录所述数据包的发送时长,以及将所述发送时长累加至所述目标帧序号对应的发送时长总和,其中,所述目标帧序号初始值为从所述目标队列读取的所述目标多媒体数据中的首个数据包的帧序号;
若所述第一帧序号与记录的目标帧序号不同,则所述第一终端确定对应所述目标帧序号的一帧数据已发送至所述目标端口,将所述目标帧序号对应的发送时长总和标记为所述一帧数据的发送时长总和,并将所述目标帧序号的取值修改为所述第一帧序号。
4.一种多媒体数据的传输系统,其特征在于,所述系统包括第一终端和第二终端,所述第一终端和所述第二终端中的至少一个终端为处于视联网中的终端;
所述第一终端包括:
第一接收模块,用于接收多路多媒体数据,将所述多路多媒体数据写入不同的队列,生成多媒体标识与队列之间的第一对应关系;
第二接收模块,用于接收多媒体同步请求,所述多媒体同步请求包括多个目标多媒体标识;
第一识别模块,用于响应于所述多媒体同步请求,根据所述第一对应关系,识别与所述多个目标多媒体标识分别对应的多个目标队列;
第二识别模块,用于识别与所述多个目标多媒体标识对应的第二终端的多个目标端口;
发送模块,用于将所述多个目标队列中的多路目标多媒体数据并行发送至所述第二终端的多个目标端口;所述发送模块包括:
发送记录子模块,用于对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口,并且每发送所述目标多媒体数据中的一帧数据至所述第二终端的对应目标端口之后,记录所述一帧数据的发送时长总和;
获取子模块,用于获取所述一路目标多媒体数据对应的帧间隔时长;
第一发送子模块,用于若所述发送时长总和小于所述帧间隔时长,则等待目标时长之后,再发送所述目标多媒体数据中的下一帧数据至所述目标端口,其中,所述目标时长为所述发送时长总和与所述帧间隔时长之间的差值;
第二发送子模块,用于若所述发送时长总和大于或等于所述帧间隔时长,则发送所述目标多媒体数据中的下一帧数据至所述目标端口。
5.根据权利要求4所述的系统,其特征在于,所述第一终端还包括:
第三接收模块,用于接收所述多媒体标识与所述第二终端的多个端口之间的第二对应关系;
所述第二识别模块,还用于根据所述第二对应关系,识别与所述多个目标多媒体标识对应的第二终端的多个目标端口。
6.根据权利要求5所述的系统,其特征在于,所述发送记录子模块包括:
获取单元,用于对于所述多个目标队列中任意一个目标队列中的一路目标多媒体数据,在逐帧发送所述目标多媒体数据中的每帧数据至所述第二终端的对应目标端口时,从所述目标队列依次读取数据包,并获取所述数据包的第一帧序号;
发送单元,用于若所述第一帧序号与记录的目标帧序号相同,则发送所述数据包至所述目标端口,并记录所述数据包的发送时长,以及将所述发送时长累加至所述目标帧序号对应的发送时长总和,其中,所述目标帧序号初始值为从所述目标队列读取的所述目标多媒体数据中的首个数据包的帧序号;
修改单元,用于若所述第一帧序号与记录的目标帧序号不同,则确定对应所述目标帧序号的一帧数据已发送至所述目标端口,将所述目标帧序号对应的发送时长总和标记为所述一帧数据的发送时长总和,并将所述目标帧序号的取值修改为所述第一帧序号。
7.一种多媒体数据的传输装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求1至3中任意一项所述的多媒体数据的传输方法。
8.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1至3任一项所述的多媒体数据的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866762.2A CN110677394B (zh) | 2019-09-12 | 2019-09-12 | 一种多媒体数据的传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866762.2A CN110677394B (zh) | 2019-09-12 | 2019-09-12 | 一种多媒体数据的传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110677394A CN110677394A (zh) | 2020-01-10 |
CN110677394B true CN110677394B (zh) | 2022-03-29 |
Family
ID=69076820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910866762.2A Active CN110677394B (zh) | 2019-09-12 | 2019-09-12 | 一种多媒体数据的传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110677394B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111491016B (zh) * | 2020-04-02 | 2023-08-25 | 北京代码乾坤科技有限公司 | 同步数据处理方法和装置 |
CN111757043A (zh) * | 2020-06-30 | 2020-10-09 | 中科远见(重庆)科技有限公司 | 一种数据传输系统及传输方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016128145A1 (de) * | 2015-02-09 | 2016-08-18 | Unify Gmbh & Co. Kg | Verfahren zur übertragung von daten in einem multimedia-system, sowie softwareprodukt und vorrichtung zur steuerung der übertragung von daten in einem multimedia-system |
CN108206752A (zh) * | 2016-12-19 | 2018-06-26 | 北京视联动力国际信息技术有限公司 | 一种视联网设备的管理方法和装置 |
CN108712501A (zh) * | 2018-05-28 | 2018-10-26 | 腾讯科技(北京)有限公司 | 信息的发送方法、装置、计算设备以及存储介质 |
CN109756789A (zh) * | 2018-12-28 | 2019-05-14 | 视联动力信息技术股份有限公司 | 一种音视频数据包的丢包处理方法和系统 |
CN110072143A (zh) * | 2019-03-18 | 2019-07-30 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
CN110086850A (zh) * | 2019-03-19 | 2019-08-02 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
CN110167084A (zh) * | 2018-08-15 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 多通道数据传输方法及装置 |
-
2019
- 2019-09-12 CN CN201910866762.2A patent/CN110677394B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016128145A1 (de) * | 2015-02-09 | 2016-08-18 | Unify Gmbh & Co. Kg | Verfahren zur übertragung von daten in einem multimedia-system, sowie softwareprodukt und vorrichtung zur steuerung der übertragung von daten in einem multimedia-system |
CN108206752A (zh) * | 2016-12-19 | 2018-06-26 | 北京视联动力国际信息技术有限公司 | 一种视联网设备的管理方法和装置 |
CN108712501A (zh) * | 2018-05-28 | 2018-10-26 | 腾讯科技(北京)有限公司 | 信息的发送方法、装置、计算设备以及存储介质 |
CN110167084A (zh) * | 2018-08-15 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 多通道数据传输方法及装置 |
CN109756789A (zh) * | 2018-12-28 | 2019-05-14 | 视联动力信息技术股份有限公司 | 一种音视频数据包的丢包处理方法和系统 |
CN110072143A (zh) * | 2019-03-18 | 2019-07-30 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
CN110086850A (zh) * | 2019-03-19 | 2019-08-02 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110677394A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110072143B (zh) | 一种视频流解码方法和装置 | |
CN110166728B (zh) | 一种视联网开会方法及装置 | |
CN109168064B (zh) | 一种电子数据的同步显示方法和系统 | |
CN109547728B (zh) | 一种录播源入会以及会议录播的方法和系统 | |
CN111107299A (zh) | 一种多路视频合成的方法及装置 | |
CN108877820B (zh) | 一种音频数据混合方法和装置 | |
CN110049273B (zh) | 一种基于视联网的会议录制方法和中转服务器 | |
CN109547817B (zh) | 一种在互联网中倍播视联网视频录像的方法和装置 | |
CN111478884B (zh) | 不同视联网之间进行数据传输的方法、装置和存储介质 | |
CN111131760B (zh) | 一种视频录制方法和装置 | |
CN110677394B (zh) | 一种多媒体数据的传输方法及系统 | |
CN110062194B (zh) | 一种音视频数据的处理方法、装置以及装置和存储介质 | |
CN110769179B (zh) | 一种音视频数据流的处理方法和系统 | |
CN109714568B (zh) | 一种视频监控数据的同步方法以及装置 | |
CN109005378B (zh) | 一种视频会议的处理方法和系统 | |
CN110769297A (zh) | 一种音视频数据的处理方法和系统 | |
CN111212255B (zh) | 监控资源获取方法、装置及计算机可读存储介质 | |
CN110446058B (zh) | 视频获取方法、系统、设备和计算机可读存储介质 | |
CN110392227B (zh) | 数据处理方法、装置及存储介质 | |
CN110289974B (zh) | 一种数据流的处理方法、系统及装置和存储介质 | |
CN109963107B (zh) | 一种音视频数据的显示方法和系统 | |
CN111447396A (zh) | 一种音视频传输方法、装置、电子设备及存储介质 | |
CN110557370A (zh) | 一种pamir同步终端信息的方法、系统、电子设备及存储介质 | |
CN110557411A (zh) | 基于视联网的视频流处理方法及装置 | |
CN110536148B (zh) | 一种基于视联网的直播方法和设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |