CN115209231A - 数据传输方法、装置、设备和计算机可读存储介质 - Google Patents

数据传输方法、装置、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN115209231A
CN115209231A CN202211091509.2A CN202211091509A CN115209231A CN 115209231 A CN115209231 A CN 115209231A CN 202211091509 A CN202211091509 A CN 202211091509A CN 115209231 A CN115209231 A CN 115209231A
Authority
CN
China
Prior art keywords
data
transmission
target
transmitted
sequence
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.)
Granted
Application number
CN202211091509.2A
Other languages
English (en)
Other versions
CN115209231B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211091509.2A priority Critical patent/CN115209231B/zh
Publication of CN115209231A publication Critical patent/CN115209231A/zh
Application granted granted Critical
Publication of CN115209231B publication Critical patent/CN115209231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/64784Data processing by the network
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server

Abstract

本申请公开了一种数据传输方法、装置、设备和计算机可读存储介质,可应用于云技术等场景。具体的,获取包含数据时序关系的多个待传输媒体数据;确定目标终端在传输服务中选定的多个传输流标识;按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。以此,提高对网络带宽的资源利用率和数据传输效率,保证在播放音视频文件时的质量,有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户体验。

Description

数据传输方法、装置、设备和计算机可读存储介质
技术领域
本申请涉及互联网技术领域,具体涉及一种数据传输方法、装置、设备和计算机可读存储介质。
背景技术
音视频信息技术的发展带动了很多形式的音视频业务,如网络直播业务、音视频点播业务、音视频通话等形式,带给了广大用户的视觉体验。然而,音视频业务主要依赖网络传输服务来实现,因此,音视频数据的传输过程至关重要。
相关技术在对音视频数据进行传输时,通过检测音视频数据的传输率,且在传输过程丢失了音视频数据时,重新传输该丢失的音视频数据,以确保用户终端接收到完整的音视频数据,保证音视频的播放质量。
在对现有技术的研究和实践过程中,本申请的发明人发现相关技术在对音视频数据进行传输时,针对每个丢失的音视频数据都进行单独重传,这会导致部分重要的音视频数据受到非重要的音视频数据的传输困扰,这容易降低网络带宽资源的利用率,从而降低音视频流量的传输效率,导致用户终端在播放音视频时出现延时、卡顿的现象,影响用户的观感体验。
发明内容
本申请提供一种数据传输方法、装置、设备和计算机可读存储介质,可提高对网络带宽的资源利用率和数据传输效率,有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户的观感体验。
本申请实施例提供一种数据传输方法,包括:
获取包含数据时序关系的多个待传输媒体数据;
确定目标终端在传输服务中选定的多个传输流标识;
按照所述数据时序关系,从所述多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;
将每个待传输媒体数据按照所述对应的目标传输流标识指示的目标流通道传输至所述目标终端,并接收所述目标终端反馈的数据传输报文;
当检测到所述数据传输报文中包含丢包数据时,按照所述丢包数据的数据优先级对所述丢包数据进行重新传输。
相应的,本申请实施例提供一种数据传输装置,包括:
获取单元,用于获取包含数据时序关系的多个待传输媒体数据;
确定单元,用于确定目标终端在传输服务中选定的多个传输流标识;
分配单元,用于按照所述数据时序关系,从所述多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;
第一传输单元,用于将每个待传输媒体数据按照所述对应的目标传输流标识指示的目标流通道传输至所述目标终端,并接收所述目标终端反馈的数据传输报文;
第二传输单元,用于当检测到所述数据传输报文中包含丢包数据时,按照所述丢包数据的数据优先级对所述丢包数据进行重新传输。
在一些实施方式中,所述数据传输装置还包括检测单元,用于:
当检测到当前未传输的待传输媒体数据时,将所述当前未传输的待传输媒体数据确定为待排序媒体数据;
则所述第二传输单元,还用于:
识别所述丢包数据对应的属性类别,以及识别所述待排序媒体数据对应的属性类别;
根据所述属性类别和所述数据时序关系,确定所述丢包数据和所述待排序媒体数据之间的数据优先级;
按照所述数据优先级,对所述丢包数据和待排序媒体数据进行传输。
在一些实施方式中,所述第二传输单元,还用于:
根据所述数据时序关系,建立所述丢包数据和所述待排序媒体数据对应的初始数据传输序列;
根据所述属性类别对所述初始数据传输序列进行调整,得到调整后的目标数据传输序列;
根据所述目标数据传输序列,确定所述丢包数据和所述待排序媒体数据之间的数据优先级。
在一些实施方式中,所述属性类别包括关键内容类别和非关键内容类别,所述第二传输单元,还用于:
根据所述初始数据传输序列中所述关键内容类别对应的数据确定第一数据序列,以及根据所述初始数据传输序列中所述非关键内容类别对应的数据确定第二数据序列;
将所述第一数据序列的传输顺序调整至所述第二数据序列之前,得到调整后的目标数据传输序列。
在一些实施方式中,所述第二传输单元,还用于:
按照数据时序关系对第一数据序列进行传输顺序调整,得到第一目标数据序列;
按照数据时序关系对第二数据集合进行传输顺序调整,得到第二目标数据序列;
将第一目标数据序列的传输顺序调整至第二目标数据序列之前,得到调整后的目标数据传输序列。
在一些实施方式中,所述第二传输单元,还用于:
确定所述丢包数据在上一次分配时所占用的目标传输流标识,并将所述丢包数据占用的目标传输流标识确定为第一目标传输流标识;
从所述多个传输流标识中筛选出未占用的多个第二传输流标识;
按照所述数据优先级,从所述多个第二传输流标识中为每个待排序媒体数据分配对应的第二目标传输流标识;
基于所述数据优先级,按照所述第一目标传输流标识指示的流通道对所述丢包数据进行传输,以及按照所述对应的第二目标传输流标识指示的流通道对所述待排序媒体数据进行传输。
在一些实施方式中,所述第二传输单元,还用于:
获取所述待排序媒体数据对应的编码格式信息;
读取所述编码格式信息中的数据类型字段,并根据所述数据类型字段确定所述待排序媒体数据对应的目标数据类型;
根据所述目标数据类型,确定所述待排序媒体数据所属的属性类别。
在一些实施方式中,所述目标数据类型包括视频数据类型,所述第二传输单元,还用于:
针对所述视频数据类型对应的待排序媒体数据,从所述编码格式信息中提取帧类别字段信息;
获取预设帧类别列表,所述预设帧类别列表中包含预设帧字段数值与属性类别之间的对应关系;
将所述帧类别字段信息中目标帧字段数值与预设帧类别列表中的预设帧字段数值进行匹配,得到所述目标帧字段数值所属的属性类别。
在一些实施方式中,所述第一传输单元,还用于:
根据所述数据时序关系生成每个待传输媒体数据对应的数据内容报文,所述数据内容报文携带有报文编号;
基于所述报文编号之间的顺序,将每个数据内容报文按照所述对应的目标传输流标识指示的目标流通道传输至目标终端。
此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序实现本申请实施例提供的任一种数据传输方法中的步骤。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种数据传输方法中的步骤。
此外,本申请实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指被执行时实现本申请实施例所提供的任一种数据传输方法中的步骤。
本申请实施例可以获取包含数据时序关系的多个待传输媒体数据;确定目标终端在传输服务中选定的多个传输流标识;按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。由此可得,本方案可确定目标终端在传输服务层中可用的多个传输流标识,以按照数据时序关系和数据属性类别选取每个待传输媒体数据对应的目标传输流标识,实现以多个流通道分别将每个待传输媒体数据传输至目标终端,提高对网络带宽的资源利用率和数据传输效率;进而,在接收到目标终端反馈的丢包数据时,确定丢包数据在当前时间的数据优先级,以限定丢包数据在当前的传输顺序,并按照该数据优先级将丢包数据重新传输至目标终端,以确保重要的媒体数据优先被目标终端接收,保证目标终端在播放音视频文件时的质量,从而有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户的观感体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据传输系统的场景示意图;
图2是本申请实施例提供的数据传输方法的步骤流程示意图;
图3是本申请实施例提供的数据传输方法的另一步骤流程示意图;
图4是本申请实施例提供的数据传输系统的架构示意图;
图5是本申请实施例提供的数据传输方法的流程图;
图6是本申请实施例提供的数据传输方法的场景示意图;
图7是本申请实施例提供的音频帧数据传输过程的示意图;
图8是本申请实施例提供的数据传输方法的另一场景示意图;
图9是本申请实施例提供的数据传输过程中出现丢包数据的场景示意图;
图10是本申请实施例提供的音视频数据之间的信息关系图;
图11是本申请实施例提供的目标终端在丢失非关键内容数据的处理场景示意图;
图12是本申请实施例提供的目标终端丢失关键内容数据的处理场景示意图;
图13是本申请实施例提供的丢包数据回传过程的场景示意图;
图14是本申请实施例提供的数据传输过程中出现丢包数据的另一场景示意图;
图15是本申请实施例提供的数据传输装置的结构示意图;
图16是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据传输方法、装置、设备和计算机可读存储介质。具体地,本申请实施例将从数据传输装置的角度进行描述,该数据传输装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是用户终端等设备。其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,用户终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家电、车载终端、智能语音交互设备、飞行器等,但并不局限于此。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息、用户使用记录、用户状况等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本申请实施例提供的数据传输方法可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等数据传输的场景,这些场景不限于通过云服务、大数据等方式实现,具体通过如下实施例进行说明:
其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算资源、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
例如,参见图1,为本申请实施例提供的数据传输系统的场景示意图。该数据传输系统场景可应用于终端向服务器请求下发媒体数据的场景,如音视频播放、电话视频会议、视频直播等场景数据传输场景;该系统可包括终端和服务器。
服务器可以获取包含数据时序关系的多个待传输媒体数据;确定目标终端在传输服务中选定的多个传输流标识;按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。
终端可将接收到的媒体数据上传至目标应用进行播放,以及针对接收到的媒体数据生成数据传输报文,并将数据传输的报文发送至服务器进行丢包数据的确定。
其中,数据传输过程可以包括:获取待传输数据、确定可用流标识、分配流标识、传输媒体数据、按照优先级回传丢包数据等方式。
以下分别进行详细说明。需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
在本申请实施例中,将从数据传输装置的角度进行描述,以该数据传输装置具体可以集成在计算机设备如服务器中,该服务器可以包括业务功能的后台服务端、服务器传输层等。参见图2,图2为本申请实施例提供的一种数据传输方法的步骤流程示意图,本申请实施例以数据传输装置具体集成在服务器上为例,服务器上的处理器执行数据传输方法对应的程序指令时,具体流程如下:
101、获取包含数据时序关系的多个待传输媒体数据。
在本申请实施例中,终端上的目标应用在执行相应的业务功能事项时,需要与其对应的服务器进行数据交互,以请求服务器下发业务功能对应的业务数据;而服务器在接收到请求后会下发相关的业务数据至终端,以使得终端将接收到的业务数据在目标应用上进行响应,如显示、播放等。例如,以视频应用作为目标应用为例,当终端上的视频应用需要播放A视频时,可向视频应用对应的后台服务请求下发关于A视频的数据集合,服务器可根据请求将后台服务中储存的A视频数据集合发送到服务器的传输服务中,通过传输服务将每一个A视频数据传输至终端,以进行播放。又如,以电话会议应用作为目标应用为例,当终端上的电话会议应用将实时采集到的音频帧数据和/或视频帧数据传输至对应的后台服务器中,使得后台服务器将音频帧数据和/或视频帧数据下发至参加会议的各终端的电话会议应用中,以进行实时播放。此外,以网络直播应用作为目标应用为例,当主播端将实时录制的音视频流量上传至服务器后,服务器可将直播过程的音视频流量数据下发至处于观看状态的观众端(目标应用)进行播放。以上仅为示例,还可适用于其他服务器向终端传输数据的实例中。
其中,该数据时序关系可以是各个数据之间的顺序关系。例如,以视频文件的数据为例,将视频文件进行分解得到多帧图像数据,这多帧图像数据之间是具有顺序关系的,如这多帧图像数据是按照视频播放顺序或时序进行排序的,该排序方式可表示数据时序关系;又如,音频帧数据之间排序关系,等等。
其中,该待传输媒体数据可以是需要传输/下发到目标终端的媒体数据,该待传输媒体数据可以是待传输媒体文件对应的数据,还可以是实时接收的媒体数据。例如,以音视频文件作为待传输媒体文件为例,音视频文件进行拆解后,可以包括音频数据、指令数据和视频数据,而视频数据可包括多帧图像数据,即多个视频帧数据;以上音频数据、指令数据、每一帧视频帧数据分别代表一个待传输媒体数据。
在本申请实施例中,为了实现终端上目标应用执行业务功能或业务事项,服务器传输服层可实时将目标应用对应的业务数据下发至目标终端上执行,其中,在下发之前业务数据之前,需要获取对应的每一个业务数据。例如,以视频播放业务为例,可以是获取对应的音视频文件,并分解得到多个具有数据时序关系的待传输媒体数据;又如,以电话视频会议为例,可通过实时接收一个或多个终端的语音、视频数据的方式,获得具有数据时序关系的多个待传输媒体数据。
在一些实施方式中,需要获悉目标终端所要执行的具体业务事项,再获取待传输媒体数据,如以媒体播放业务事项为例,从而获取准备下发至该目标终端的多个具有数据时序关系的媒体数据。例如,步骤101“获取包含数据时序关系的多个待传输媒体数据”,可以包括:接收目标终端上目标应用的数据传输请求,数据传输请求携带有媒体标识;获取媒体标识对应的待传输媒体文件;对待传输媒体文件进行分帧处理,得到包含数据时序关系的多个待传输媒体数据。
其中,该媒体标识可以是播放业务事项对应的标识,如名称、编号、代码等。该播放业务事项可以是视频播放业务,则媒体标识可以是视频播放业务对应的视频文件标识;该播放业务事项可以是电话视频会议,该媒体标识可以是电话会议的视频播放业务对应的会议地址、会议号等;该播放业务事项可以是网络视频直播事项,该媒体标识可以是直播间的地址、编号等;以上仅为示例。
其中,该待传输媒体文件可以是需要请求播放的媒体文件,如,该媒体文件可以是音视频文件、语音文件、图像文件等。示例性的,以视频播放应用为例,该待传输媒体文件可以是一个完整的原视频文件;以电话视频会议应用为例,该待传输媒体文件可以是实时接收到的一段即时语音文件、一个或多个视频帧等,网络视频直播也同理。
具体的,为了获取到需要下发至目标终端的待传输媒体数据,本申请实施例中的服务器可实时检测目标终端的数据传输请求,该数据传输请求可以理解为媒体播放请求,其携带有对应的播放业务对应的媒体标识;进而,后台服务器通过接收、查找等方式获取该媒体标识对应的待传输媒体文件,并对该待传输媒体文件进行分帧/分解处理,得到对应的多个待传输媒体数据,这多个待传输媒体数据之间是具有数据时序关系的。以此,以便后续将该多个待传输媒体数据通过流的方式对下发至目标终端,实现相应的业务事项。
通过以上方式,可获取目标终端所要执行相关业务事项对应的多个媒体数据,以便后续将每一个媒体数据传输至目标终端进行响应,满足用户的业务事项需求。
102、确定目标终端在传输服务中选定的多个传输流标识。
本申请实施例的服务器在得到多个包含数据时序关系的待传输媒体数据后,在将待传输媒体数据下发至目标终端的过程中,可通过传输流的方式进行数据传输。具体的,设定多个传输流,通过多个传输流分别对每一个待传输媒体数据进行传输;以此,避免在相关技术下通过一个传输流分别对所有的待传输媒体数据进行传输,从而避免在数据传输过程中出现某一待传输媒体数据传输失败,从而导致后面的待传输数据的等待时间过长,传输进度停滞,造成传输流内的数据阻塞现象。
其中,该目标终端可以是接收服务器下发待传输媒体数据的终端设备,该目标终端上安装有媒体数据对应的目标应用(Application),如视频应用、直播应用、即时通讯应用等,以对接收的媒体数据进行显示、播放等。
其中,该传输服务可以是指服务器中传输服务层,也可以是指传输服务层提供数据交互、通信功能的服务。需要说明的是,本申请实施例在对待传输媒体数据进行传输时,可以通过传输流通道的形式进行数据传输,该传输流通道可以理解为数据传输通道,一个传输流通道代表一个流。
其中,该传输流标识可以是对应的流通道或流的标识,可理解为每一流通道的名称、编号、序号等,用于对流通道进行唯一标示,以区分各个流通道。
为了确定目标终端当前在传输服务中可使用的流通道,本申请实施例的服务器可通过目标终端发送的传输流标识集合或传输流标识信息来确定。具体的,目标终端可根据自身的数据传输层中空闲的数据传输通道来选定可用的传输流标识,生成传输流标识信息并发送至服务器,以根据传输流标识信息向服务器声明可用的传输流通道。
在一些实施方式中,服务器可根据目标终端发送的传输流标识信息来确定其选定的多个传输流标识,以便后续根据传输流标识来确定目标终端选定的流通道。具体的,步骤102“确定目标终端在传输服务中选定的多个传输流标识”,可以包括:接收目标终端发送的传输流标识信息;从传输流标识信息中提取有效信息字段、流分布类型信息字段和流标识信息字段;若检测到有效信息字段中的数值与预设有效数值匹配,则根据流分布类型信息字段和流标识字段,确定目标终端在传输服务中选定的多个传输流标识。
其中,该传输流标识信息可以是传输流标识的信息集合,其可在目标终端向服务器发送数据传输请求时携带有,该传输流标识信息可通过特定的数据格式进行表示。例如,该传输流标识信息的表示格式可以为<bool_carry,stype,stream_id_set>,该“bool_carry”表示携带的传输流标识是否有效的字段,即有效信息字段;该“stype”表示可用的传输流标识的分布、数量等情况的字段,即流分布类型信息字段;该“stream_id_set”表示具体选定的一个或多个传输流标识的字段,即流标识字段。根据该传输流标识信息,可确定目标终端可用的传输流通道。
具体的,为了确定在下发待传输媒体数据至目标终端时的流通道,服务器可接收向目标终端发送流标识信息获取请求,以接收目标终端发送的传输流标识信息,并读取该传输流标识信息中的多个字段,例如,先读取传输流标识信息中的有效信息字段,该有效信息字段用于表示目标终端选定的传输流标识的有效性,当该有效信息字段的字段数值符合预设有效值时,表示选定的传输流标识有效,反之,则无效;进而,当有效信息字段中的数值表示有效时,读取传输流标识信息中的流分布类型信息字段和流标识字段,以根据该流分布类型信息字段中字段值和流标识字段中的流标识字段值来确定目标终端在传输服务中选定的一个或多个传输流通道的标识。
通过以上方式,可接收目标终端在传输服务中选定的多个传输流标识,以根据该传输流标识来确定目标终端在传输媒体数据之前可用的多个流通道,以作为后续的媒体数据传输使用,使得后续实现充分利用网络带宽资源,提高数据传输效率,造成传输流内的数据阻塞现象。
103、按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识。
在本申请实施例中,为了实现通过多个流通道对待传输媒体数据进行传输,可针对每一个待传输媒体数据单独分配一个传输流通道,实现每个传输流通道在同一时刻仅传输一个待传输媒体数据;其中,每一传输流通道对应一个传输流标识,在为每个待传输媒体数据分配传输流通道时,可通过传输流标识分配的方式来实现流通道的分配。
需要说明的是,流通道的可用数量可能有限,即流通道的数量可能少于待传输媒体数据的数量,但在对待传输媒体数据的传输过程中,可属于一个循序渐进的过程,即属于数据逐步获取与传输的过程。例如,在电话视频会议场景的媒体数据传输过程中,由于媒体数据属于随着时间推移而产生,无法直接把会议场景全过程的所有媒体数据一起发送到参与电话视频会议的目标终端上,而是循序渐进地对每一时刻接收到媒体数据进行实时传输。
因此,本申请实施例中在对待传输媒体数据进行传输的过程中,可按照数据时序关系,通过轮询使用方式对选定的多个传输流通道进行分配使用,如,通过轮询方式从选定的多个传输流标识中为当前时刻需要传输的每一个媒体数据分配一个传输流标识,并当已分配(占用)传输流标识对应的流通道成功将对应的待传输媒体数据传输至目标终端后,该传输流标识会进行释放,以作为下一批待传输媒体数据的传输流通道的轮询分配,例如,选定6个流通道,传输流标识分别为1、2、3、4、5和6,而当前的待传输媒体数据为10个,则可按照轮询分配使用方式,将流标识1、2、3、4、5、6分别分配至10个待传输媒体数据中的处于第一传输回合6个带出纳书媒体数据,并在第一传输回合输送数据完毕后,继续将释放的流标识(如1、2、3、4、5、6)分配给剩下需要传输的媒体数据,以上仅为示例;以此,可对有限数量的传输流通道进行分充分使用,实现在充分利用分配给目标终端的网络带宽资源的同时,提高数据传输效率。
需要说明的是,待传输媒体数据可包括多种数据类型。以音视频业务的媒体数据为例,待传输媒体数据可分别为音频数据(音频帧数据)、视频帧数据、指令数据等数据类型,其中视频帧数据又分为编解码标准的I、P、B帧数据,而不同数据类型的媒体数据对音视频业务播放过程中的影响不同。例如,音频帧数据较少,少量的音频帧数据丢失容易造成音视频业务播放过程中的较为明显的“卡顿”现象,即影响音频业务播放过程的质量,同理,指令数据对音视频业务播放过程也较为重要,而对于视频帧数据的编解码标准的I帧数据的丢失会造成音视频业务播放过程的明显“卡顿”现象,即同样会影响音频业务播放过程的质量,从而影响用户的观感体验,因而,本申请实施例将以上严重影响音视频业务播放过程的质量的数据定义为关键内容类别的数据;而对于视频帧数据对应的编解码标准的P帧、B帧数据,其对音视频业务播放的质量影响较低,即丢失不会明显影响到用户观感体验,则将该P帧数据、B帧数据定义为非关键内容类别的数据。该关键内容类别和非关键内容类别统称为数据的属性类别。
为了避免关键内容类别的待传输媒体数据影响音视频业务播放质量,需要确保关键内容类别的待传输媒体数据能够被尽快成功传输至目标终端。然而,在传输过程中,由于选定的传输流标识对应的传输流通道的数量可能有限,当多个传输流标识对应的所有传输流通道在同一时刻被非关键内容类别的媒体数据占用时,且非关键内容类别的媒体数据在传输过程中出现丢失现象,这会严重影响后续关键内容类别的待传输媒体数据的传输进度。为了避免以上现象,本申请实施例可通过从多个传输流标识中划分为两部分,一部分为固定传输流标识,用于传输关键内容类别的待传输媒体数据,另一部分为轮询传输流标识,用于传输非关键内容类别的待传输媒体数据。
在一些实施方式中,以编号或序号作为传输流通道的标识为例,在执行步骤103之前,还可包括:按照标识的编号或序号的先后顺序,对多个传输流标识进行标识先后排序,得到传输流标识序列。进而,可结合待传输媒体数据的属性类别进行传输流标识的分配,则步骤103之前还可包括:确定每一待传输媒体数据对应的属性类别。最后,则步骤103可包括:(103.A)基于数据时序关系,从传输流标识序列中依序为每个数据属性类别对应的待传输媒体数据分配对应的目标传输流标识。
具体的,步骤(103.A)可包括:(103.A.1)根据属性类别确定多个待传输媒体数据之间的初始传输顺序,如将关键内容类别的待传输媒体数据作为第一传输顺序的数据,将非关键内容类别的待传输媒体数据作为次第二传输顺序的数据,而第一传输顺序的数据均优先于第二传输顺序的数据,即关键内容类别的待传输媒体数据优先于非关键内容类别的待传输媒体数据。(103.A.2)根据数据时序关系对初始传输顺序进行调整,得到调整后的目标传输顺序;需要说明的是,在调整初始传输顺序时,主要是按照数据时序关系对第一传输顺序内部的数据之间进行顺序调整,以及按照数据时序关系对第二传输顺序内部的数据之间进行顺序调整,而第一传输顺序的数据整体与第二传输顺序的数据整体之间的顺序是不变的,即关键内容类别的待传输媒体数据保持优先于非关键内容类别的待传输媒体数据,得到目标传输顺序。(103.A.3)按照目标传输顺序,从传输流标识序列中为每个待传输媒体数据分配对应的目标传输流标识。
其中,属性类别包括关键内容类别和非关键内容类别,则步骤(103.A.3)可具体包括:确定传输流标识序列中的固定传输流标识和轮询传输流标识;确定目标传输顺序中关键内容类别的待传输媒体数据之间的第一传输顺序,以及确定非关键内容类别的待传输媒体数据之间的第二传输顺序;按照第一传输顺序,从固定传输流标识中确定关键内容类别的待传输媒体数据的目标传输流标识;以及按照第二传输顺序,从轮询传输流标识中确定非关键内容类别的待传输媒体数据的目标传输流标识。以此,以便后续通过固定传输流标识对应的流通道对关键内容类别的待传输媒体数据进行传输,以及后续通过轮询传输流标识对应的流通道对非关键内容类别的待传输媒体数据进行传输,确保关键内容类别的待传输媒体数据能够被尽快成功传输至目标终端,保证音视频业务播放过程的质量。
通过以上方式,可为每个待传输媒体数据分配一个目标传输流标识,以便后续通过多个流通道对待传输媒体数据进行传输,从而,实现对有限数量的传输流通道进行分配使用,以便在充分利用为目标终端分配的网络带宽资源的同时,提高数据传输效率。
104、将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文。
在本申请实施例中,服务器在为当前需要传输的每一待传输媒体数据分配一个目标传输流标识后,即可针对每个待传输媒体数据,可按照分配到的目标传输流标识指示的目标流通道进行传输,以实现通过多个传输流通道对待传输媒体数据进行传输,提高对分配给目标终端的网络带宽资源的利用率,进而,提高数据传输效率。
需要说明的是,在通过传输流通道对待传输媒体数据进行传输时,每个待传输媒体数据可以“报文”形式进行传输。具体的,该报文(message)可理解为网络传输中的数据单元,即一次发送的数据块,其包含了将要发送的完整的数据信息,报文中的数据信息长度是不限定的;在本申请实施例中,一个待传输媒体数据对应一个数据报文。
在一些实施方式中,以报文的形式对每一个待传输媒体数据进行传输,该报文可以携带有报文编号,该报文编号可以表示当前传输的待传输媒体数据的编号。则步骤104中的“将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端”,可以包括:根据数据时序关系生成每个待传输媒体数据对应的数据内容报文,数据内容报文携带有报文编号;基于报文编号之间的顺序,将每个数据内容报文按照对应的目标传输流标识指示的目标流通道传输至目标终端。
具体的,当按照传输流标识的轮询分配使用时,其主要是按照数据时序关系进行传输流标识的分配,则在传输过程中,生成待传输媒体数据对应的数据内容报文时,也可按照数据时序关系来生成每一待传输媒体数据对应的数据内容报文,该数据内容报文会携带有报文编号,该数据报文编号可反映每个待传输数据在进行首次传输时的传输顺序号码;进而,按照该报文编号的传输顺序,将每个数据内容报文按照对应的目标传输流标识指示的目标流通道传输至目标终;以上方式进行仅为示例。
需要说明的是,在通过报文形式对待传输媒体数据进行传输时,该报文编号与对应的待传输媒体数据的传输顺序有关,其一定程序上反映了当前时刻的待传输媒体数据对音视频业务播放过程的重要性;例如,当按照数据时序关系和属性类别来确定当前需要传输的媒体数据之间的数据传输顺序时,可按照相应的传输顺序依次伸出每一待传输媒体数据的数据内容报文,使得其对应的报文编号与确定的数据传输顺序相对应。此外,假若待传输媒体数据对应的数据内容报文在通过指示的目标传输流通道进行传输时出现了丢失的现象,则后续在对该丢失的数据内容报文进行回传时,其对应的报文编号。
进一步的,服务器还实时检测目标终端反馈的数据传输报文,以实时接收目标终端反馈的数据传输报文。其中,该数据传输报文可以理解为待确认的数据报文,其可包含目标终端接收到的数据内容报文的报文编号,还可包括目标终端未接收到的数据内容报文的报文编号,用于反馈服务器成功传输至目标终端的媒体数据,以及传输失败的媒体数据。以此,使得服务器检测数据传输报文中是否存在丢包数据,即根据数据传输报文来确定丢失的数据内容报文,即在传输过程中丢失的待传输媒体数据,并在后续将丢失的待传输媒体数据重新传输至目标终端,如继续在接下来的传输回合中将丢失的待传输媒体数据通过上一次使用的流通道进行再次传输。
通过以上方式,可实现通过多个传输流通道对待传输媒体数据进行传输,提高对分配给目标终端的网络带宽资源的利用率,进而,提高数据传输效率;同时,实时检测每一待传输媒体数据的传输报文,确定是否存在传输失败的数据,以在后续对传输失败的数据进行回传,从而确保每一待传输媒体数据传输至目标终端,保证音视频业务播放过程的质量。
105、当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。
在本申请实施例中,可根据目标终端反馈的数据传输报文来确定对应待传输媒体数据的传输情况,并在根据数据传输报文检测到包含丢失的数据内容报文,即丢包数据时,按照数据优先级对丢包数据进行重新传输,以确保丢包数据的传输顺序不影响音视频业务播放质量。
其中,该丢包数据可以是在传输过程中丢失的数据内容报文,即在上一传输回合传输失败的待传输媒体数据。
其中,该数据优先级可以是数据之间传输优先级,反映数据之间的重要程度,优先级高的丢包数据需要优先处理,其具体可根据媒体数据对音视频业务播放质量的影响力确定,即结合数据时序关系和数据的属性类别来确定数据之间的传输优先级。以此,按照优先级的顺序对丢包数据进行重新传输,可以保证优先级高的丢包数据进尽可能快的回传,避免影响视频的播放。
需要说明的是,该数据优先级具体还可以包括丢包数据与未传输的待传输媒体数据之间的传输顺序优先级;例如,数据优先级包括上一传输回合的丢包数据与当前需要传输的待传输媒体数据之间的传输顺序优先级。
在一些实施方式中,可实时确定当前传输回合是否存在未进行首次传输的待传输媒体数据,若存在,需要确定未进行首次传输的待传输媒体数据以及针对上一回合出现的丢包数据之间的数据优先级,以按照数据优先级对未进行首次传输的待传输媒体数据和上一回合出现的丢包数据进行传输;需要说明的是,该未进行首次传输的待传输媒体数据可以是指当前传输回合所要传输的媒体数据,而不是所有的待传输媒体数据。则步骤105中的“按照丢包数据的数据优先级对丢包数据进行重新传输”之前,还可以包括:
(105.a)当检测到当前未传输的待传输媒体数据时,将当前未传输的待传输媒体数据确定为待排序媒体数据。
则步骤105中的“按照丢包数据的数据优先级对丢包数据进行重新传输”,还可以包括:
(105.b.1)识别丢包数据对应的属性类别,以及识别待排序媒体数据对应的属性类别。
(105.b.2)根据属性类别和数据时序关系,确定丢包数据和待排序媒体数据之间的数据优先级。
(105.b.3)按照数据优先级,对丢包数据和待排序媒体数据进行传输。
具体的,在当前传输回合确定存在未传输的待传输媒体数据,需要针对当前未传输的待传输媒体数据与丢包数据之间进行传输顺序优先级的排序,因此,可将当前未传输的待传输媒体数据确定为待排序媒体数据。进而,在优先级排序过程中,可结合丢包数据和待排序媒体数据的属性类别、以及两者之间数据时序关系来确定数据优先级。最后,按照确定好的数据优先级,分别对丢包数据和待排序媒体数据进行传输。以此,可在对丢包数据进行回传的同时,衡量未进行传输的待传输媒体数据的重要性,确保丢包数据和未进行传输的待传输媒体数据中优先级高的媒体数据优先下发至目标终端,保证音视频业务播放过程的质量。
在一些实施方式中,可根据媒体数据的编码格式来确定对应的数据类型,以根据数据类型来确定该媒体数据的属性类别。例如,以未进行传输的待传输媒体数据为例,步骤(105.b.1)中的“识别待排序媒体数据对应的属性类别”,可以包括:
(105.b.1.1)获取待排序媒体数据对应的编码格式信息。其中,该编码格式信息可以是媒体数据对应的数据编码格式,或待传输媒体文件的编码格式,可包含相关的编码字段。示例性的,该编码格式信息可以是流媒体格式(Flash Video,FLV)的信息,按照该FLV编码格式得到媒体数据,具有文件小和加载速度快的优点,实现网络传输音视频播放业务的媒体数据。
(105.b.1.2)读取编码格式信息中的数据类型字段,并根据数据类型字段确定待排序媒体数据对应的目标数据类型。
其中,该数据类型字段为编码格式信息中用来确定数据类型的字段,其包含各数据类型的字段值,不同的字段值对应不同的数据类型。例如,以FLV编码格式信息中为例,FLV编码格式信息包含标签头部信息(Tag),该标签头部信息中包含数据类型字段(Type),可根据该字段来识别待排序媒体数据对应的目标数据类型。
需要说明的是,该目标数据类型不限于包括指令类型、音频类型、视频I帧类型、视频P帧类型、视频B帧类型。
(105.b.1.3)根据目标数据类型,确定待排序媒体数据所属的属性类别。
具体的,在确定待排序媒体数据对应的目标数据类型后,即可确定其所属的属性类别。例如,当根据数据类型字段确定待排序媒体数据属于指令类型、音频类型时,可直接确定待排序媒体数据的属性类别为关键内容类别。又如,当根据数据类型字段确定待排序媒体数据属于视频类型时,可进一步确定该待排序媒体数据的帧类别来确定属性类别,如I帧为关键内容类别,P、B帧都为非关键内容类别。
在一些实施方式中,针对视频类型的待排序媒体数据,通过帧类来确定属性类别。具体的,步骤(105.b.1.3)“根据目标数据类型,确定待排序媒体数据所属的属性类别”,可以包括:针对视频数据类型对应的待排序媒体数据,从编码格式信息中提取帧类别字段信息;获取预设帧类别列表,预设帧类别列表中包含预设帧字段数值与属性类别之间的对应关系;将帧类别字段信息中目标帧字段数值与预设帧类别列表中的预设帧字段数值进行匹配,得到目标帧字段数值所属的属性类别。
例如,以FLV编码格式信息为例,该FLV编码格式信息的标签头部信息(Tag)中包含帧类别字段信息(Frame Type),根据该帧类别字段信息上的目标帧字段数值来确定视频类型的待排序媒体数据所属的帧类别,从而根据帧类别来确定视频类型的待排序媒体数据的属性类别。
在一些实施方式中,为了对丢包数据与待排序媒体数据之间的数据传输顺序进行优化,需要确定丢包数据与待排序媒体数据之间的数据优先级。则步骤(105.b.2)中的“根据属性类别和数据时序关系,确定丢包数据和待排序媒体数据之间的数据优先级”,可以包括:
(105.b.2.1)根据数据时序关系,建立丢包数据和待排序媒体数据对应的初始数据传输序列。
其中,该初始数据传输序列可以是丢包数据与待排序媒体数据之间按照数据分解或接收时的时序关系进行排序的序列,其可反映丢包数据与各待排序媒体数据之间的产生时间先后的关系。
(105.b.2.2)根据属性类别对初始数据传输序列进行调整,得到调整后的目标数据传输序列。
其中,该目标数据传输序列可以是丢包数据与待排序媒体数据之间按照数据重要性和数据时序关系进行排序的序列,其可反映丢包数据与各待排序媒体数据之间的数据传输顺序。
(105.b.2.3)根据目标数据传输序列,确定丢包数据和待排序媒体数据之间的数据优先级。
为了得到丢包数据与待排序媒体数据之间的数据优先级,本申请实施例在得到丢包数据和待排序媒体数据的属性类别后,可结合数据的属性类别和数据时序关系这两个特性,来确定数据优先级。具体的,首先,按照数据分解或接收时的时序关系对丢包数据和多个待排序媒体数据进行排序,得到一个符合数据时序关系的初始数据传输序列;然后,针对符合数据时序关系的初始数据传输序列,按照初始数据传输序列中各数据的属性类别来调整序列中各数据之间的顺序,需要说明的是,该属性类别反映相应媒体数据对音视频业务播放质量的重要性,同一属性类别的两个媒体数据,数据时序关系中时序靠前的媒体数据在当前时刻比时序靠后的媒体数据重要性高,即在当前时刻对音视频业务播放质量的影响更大,因此,传输顺序靠前,从而得到符合属性类别和数据时序关系的目标数据传输序列。最后,按照目标数据传输序列中的各媒体数据之间的排序,确定丢包数据与当前需要进行传输的媒体数据之间的数据优先级。
在一些实施方式中,属性类别包括关键内容类别和非关键内容类别,该关键内容类别为对音视频业务播放质量影响较大的数据类别,如音频帧数据、指令数据和视频I帧数据,而该非关键内容类别为对音视频业务播放质量影响较小的数据类别,如视频P帧数据和视频B帧数据,可按照以上的属性类别的定义来调整初始数据传输序列中的各媒体数据之间的排序,具体的,步骤(105.b.2.2)“根据属性类别对初始数据传输序列进行调整,得到调整后的目标数据传输序列”,可以包括:(105.b.2.2.1)根据初始数据传输序列中关键内容类别对应的数据确定第一数据序列,以及根据初始数据传输序列中非关键内容类别对应的数据确定第二数据序列;(105.b.2.2.2)将第一数据序列的传输顺序调整至第二数据序列之前,得到调整后的目标数据传输序列。
具体的,为了得到用于确定数据优先级的目标数据传输序列,本申请实施例在得到初始数据传输序列后,可从初始数据传输序列中确定关键内容类别的媒体数据,并构建关键内容类别的媒体数据的第一数据序列;以及,从初始数据传输序列中确定非关键内容类别的媒体数据,并构建非关键内容类别的媒体数据的第二数据序列。进而,对第一数据序列与第二数据序列之间的传输顺序进行调整,以确保第一数据序列的传输顺序在至第二数据序列之前,以获取目标数据传输序列。
在一些实施方式中,通过步骤(105.b.2.2.2)对第一数据序列与第二数据序列之间的传输顺序进行调整,其过程可以包括:按照数据时序关系对第一数据序列进行传输顺序调整,得到第一目标数据序列;按照数据时序关系对第二数据集合进行传输顺序调整,得到第二目标数据序列;将第一目标数据序列的传输顺序调整至第二目标数据序列之前,得到调整后的目标数据传输序列。
在一些实施方式中,可按照数据优先级来为待排序媒体数据分配目标传输流标识,并按照分配的传输流标识进行数据传输。则步骤(105.b.3)可以包括:确定丢包数据在上一次分配时所占用的目标传输流标识,并将丢包数据占用的目标传输流标识确定为第一目标传输流标识;从多个传输流标识中筛选出未占用的多个第二传输流标识;按照数据优先级,从多个第二传输流标识中为每个待排序媒体数据分配对应的第二目标传输流标识;基于数据优先级,按照第一目标传输流标识指示的流通道对丢包数据进行传输,以及按照对应的第二目标传输流标识指示的流通道对待排序媒体数据进行传输。
需要说明的是,由于丢包数据在上一传输回合中已经分配了目标传输流标识,该丢包数据对应的传输流标识并未释放,仍需占用,此时,可将该未释放的传输流标识确定为第一目标传输流标识。因此,在针对待排序媒体数据进行传输流标识分配时,需要排除丢包数据对应的传输流标识,并从已经释放的第二传输流标识中为每个待排序媒体数据分配第二目标传输流标识;进而,按照数据优先级的数据传输顺序,通过第一目标传输流标识指示的流通道将丢包数据回传至目标终端,以及,通过第二目标传输流标识指示的流通道将对应的待排序媒体数据传输至目标终端,从而,实现衡量两者之间的数据传输优先级,并完成对丢包数据和未进行传输的待传输媒体数据进行传输,确保音视频业务播放质量。
通过以上方式,可在检测到包含丢包数据时,可衡量丢包数据与未进行传输的待传输媒体数据之间的重要性,从而确定丢包数据与未进行传输的待传输媒体数据之间的数据传输顺序,并进行数据传输,在确保关键内容类别数据的实时性的同时,保证音视频业务播放过程的质量。
由上可知,本申请实施例可以获取包含数据时序关系的多个待传输媒体数据;确定目标终端在传输服务中选定的多个传输流标识;按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。由此可得,本方案可确定目标终端在传输服务层中可用的多个传输流标识,以按照数据时序关系和数据属性类别选取每个待传输媒体数据对应的目标传输流标识,实现以多个流通道分别将每个待传输媒体数据传输至目标终端,提高对网络带宽的资源利用率和数据传输效率;进而,在接收到目标终端反馈的丢包数据时,确定丢包数据在当前时间的数据优先级,以限定丢包数据在当前的传输顺序,并按照该数据优先级将丢包数据重新传输至目标终端,以确保重要的媒体数据优先被目标终端接收,保证目标终端在播放音视频文件时的质量,从而有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户的观感体验。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
本申请实施例以数据处理为例,对本申请实施例提供的数据处理方法作进一步叙述。
图3是本申请实施例提供的数据传输方法的另一步骤流程示意图,图4是本申请实施例提供的数据传输系统的架构示意图;图5是本申请实施例提供的数据传输方法的流程图;图6是本申请实施例提供的数据传输方法的场景示意图;图7是本申请实施例提供的音频帧数据传输过程的示意图;图8是本申请实施例提供的数据传输方法的另一场景示意图;图9是本申请实施例提供的数据传输过程中出现丢包数据的场景示意图;图10是本申请实施例提供的音视频数据之间的信息关系图;图11是本申请实施例提供的目标终端在丢失非关键内容数据的处理场景示意图;图12是本申请实施例提供的目标终端丢失关键内容数据的处理场景示意图;图13是本申请实施例提供的丢包数据回传过程的场景示意图;图14是本申请实施例提供的数据传输过程中出现丢包数据的另一场景示意图。为了便于理解,本申请实施例结合图3-14进行描述。
在本申请实施例中,将从数据传输装置的角度进行描述,该数据传输装置具体可以集成在计算机设备如目标终端和服务器中。终端与服务器之间通信连接,实现数据的实时传输和共享,当终端和服务器上的处理器执行数据传输方法对应的程序指令时,该数据传输方法的具体流程如下:
201、目标终端上的目标应用发送数据传输请求至服务器。
其中,该数据传输请求携带有媒体标识。具体的,该媒体标识可以是播放业务事项对应的标识,如名称、编号、代码等。该播放业务事项可以是视频播放业务,则媒体标识可以是视频播放业务对应的视频文件标识;该播放业务事项可以是电话视频会议,该媒体标识可以是电话会议的视频播放业务对应的会议地址、会议号等;该播放业务事项可以是网络视频直播事项,该媒体标识可以是直播间的地址、编号等。
例如,以视频应用作为目标应用为例,当终端上的视频应用需要播放A视频时,可向视频应用对应的后台服务发送数据传输请求,该数据传输请求携带有视频标识“A”,该数据传输请求用于向服务器请求下发关于A视频的媒体数据。
202、服务器获取数据传输请求对应的待传输媒体文件,对待传输媒体文件进行分帧处理得到包含数据时序关系的多个待传输媒体数据,并确定每一待传输媒体数据的属性类别。
其中,该待传输媒体文件可以是需要请求播放的媒体文件,例如,该待传输媒体文件可以是视频文件、实时的电话视频会议、实时的网络直播等媒体文件。
其中,该待传输媒体数据可以是需要传输/下发到目标终端的媒体数据,如该待传输媒体数据可以是音频数据、指令数据和视频数据等数据。
203、服务器确定目标终端在传输服务中选定的多个传输流标识。
具体的,服务器与目标终端之间包含数据传输通道,以实现数据流量的传输,该通道可以理解为传输流通道。其中,每一传输流通道代表一个流,其具有对应的传输流标识,该流标识可理解为每一流通道的名称或编号,用于对流通道进行标示,以区分各个流通道。其中,在确定多个传输流标识时,服务器可根据目标终端发送的数据传输请求中携带的传输流标识信息来确定。
为了确定目标终端当前在传输服务中可使用的流通道,本申请实施例的服务器可通过目标终端发送的传输流标识集合或传输流标识信息来确定。具体的,目标终端可根据自身的数据传输层中空闲的数据传输通道来选定可用的传输流标识,生成传输流标识信息并发送至服务器,以根据传输流标识信息向服务器声明可用的传输流通道。
204、服务器按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识。
为了实现通过多个流通道对待传输媒体数据进行传输,可在对每一待传输媒体数据分配一个传输流通道,实现每个传输流通道在同一时刻仅传输一个待传输媒体数据;其中,每一传输流通道对应一个传输流标识,在为每个待传输媒体数据分配传输流通道时,可通过传输流标识分配的方式来实现流通道的分配。其中,在为每个待传输媒体数据分配传输流标识时,可通过轮询使用发那个还是来实现,并在已分配(占用)传输流标识对应的流通道成功将对应的待传输媒体数据传输至目标终端后,对成功传输的传输流标识进行释放,以作为下一批待传输媒体数据的传输流通道的轮询分配;以此,实现对有限数量的传输流通道进行分配使用。
此外,数据的属性类别包括关键内容类别和非关键内容类别,关键内容类别的数据包括音频数据(音频帧数据)、指令数据和视频I帧数据,非关键内容类别的数据包括视频P帧数据、视频B帧数据。为了避免关键内容类别的待传输媒体数据影响音视频业务播放质量,需要确保关键内容类别的待传输媒体数据能够被尽快成功传输至目标终端;具体的,本申请实施例可通过从多个传输流标识中划分为固定传输流标识和轮询传输流标识,以从固定传输流标识中为关键内容类别的待传输媒体数据分配目标传输流标识,以及从轮询传输流标识中为非关键内容类别的待传输媒体数据分配目标传输流标识;进而,使得后续通过分配的传输流标识对应的流通道对关键内容类别、非关键内容类别的待传输媒体数据进行传输。以确保关键内容类别的待传输媒体数据能够被尽快成功传输至目标终端,保证音视频业务播放过程的质量。
通过以上方式,实现多个流通道对待传输媒体数据进行传输,以便在充分利用为目标终端分配的网络带宽资源的同时,提高数据传输效率。
205、服务器将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端。
具体的,服务器在为当前需要传输的每一待传输媒体数据分配一个目标传输流标识后,即可针对每个待传输媒体数据,可按照分配到的目标传输流标识指示的目标流通道进行传输。需要说明的是,在通过传输流通道对待传输媒体数据进行传输时,每个待传输媒体数据可以“报文”形式进行传输;具体的,该报文(message)可理解为网络传输中的数据单元,即一次发送的数据块,其包含了将要发送的完整的数据信息,报文中的数据信息长度是不限定的;在本申请实施例中,一个待传输媒体数据对应一个数据报文。以此,实现通过多个传输流通道对待传输媒体数据进行传输,提高对分配给目标终端的网络带宽资源的利用率,进而,提高数据传输效率。
206、目标终端接收服务器发送的待传输媒体数据,并生成数据传输报文反馈给服务器。
具体的,目标终端在接收到服务器发送的待传输媒体数据后,可将该接收到的媒体数据实时上传至目标终端上的目标应用程序,使得目标应用程序对上传的媒体数据进行播放。需要是说明的是,由于不同数据类型的媒体数据依次按照不同的流标识进行传输,则不不会出现流内阻塞的现象。同时,终端根据数据接收情况生成数据传输报文,并反馈至服务器,以确定所接收到的媒体数据,以及反馈丢失的媒体数据,即丢包数据。
207、服务器接收目标终端反馈的数据传输报文,并检测数据传输报文中是否包含丢包数据。
其中,该丢包数据为在传输过程中丢失的数据内容报文,即在上一传输回合传输失败的待传输媒体数据。需要说明的是,本申请实施例以多个传输流标识的轮询分配使用一次作为一个传输回合,也可以理解为选定的所有对应的流通道执行数据传输(可存在传输失败情况)一次作为一个传输回合。
具体的,服务器可实时检测目标终端反馈的数据传输报文,其可包含目标终端接收到的数据内容报文的报文编号,和/或未接收到的数据内容报文的报文编号。通过该数据传输报文可确定在数据传输过程中是否存在丢包数据。
208、服务器检测到数据传输报文中包含丢包数据时,确定是否存在当前未传输的待传输媒体数据。
具体的,当在检测到前一传输回合中的丢包数据时,为了确保关键内容类别的媒体数据能够尽快传输至目标终端,本申请实施例可以检测当前新的一个传输回合中是否存在未进行首次传输的待传输媒体数据,以便确定未进行首次传输的待传输媒体数据与上一回合出现的丢包数据之间的传输顺序,进而确保音视频播放业务的质量。
209、服务器在检测到当前未传输的待传输媒体数据时,将当前未传输的待传输媒体数据确定为待排序媒体数据。
具体的,由于在上一传输回合中出现丢包数据,需要在接下来的数据传输回合中的数据进行排序,因此,可将当前未传输的待传输媒体数据确定为待排序媒体数据。
210、服务器根据数据时序关系,建立丢包数据和待排序媒体数据对应的初始数据传输序列。
具体的,按照数据分解或接收时的时序关系对丢包数据和多个待排序媒体数据进行排序,得到一个符合数据时序关系的初始数据传输序列。
211、服务器在根据初始数据传输序列中关键内容类别对应的数据确定第一数据序列,以及根据初始数据传输序列中非关键内容类别对应的数据确定第二数据序列,并将第一数据序列的传输顺序调整至第二数据序列之前,得到调整后的目标数据传输序列。
需要说明的是,由于属性类别反映相应媒体数据对音视频业务播放质量的重要性,可针对符合数据时序关系的初始数据传输序列,按照初始数据传输序列中各数据的属性类别来调整序列中各数据之间的顺序。具体的,从初始数据传输序列中确定关键内容类别的媒体数据,并构建关键内容类别的媒体数据的第一数据序列;以及,从初始数据传输序列中确定非关键内容类别的媒体数据,并构建非关键内容类别的媒体数据的第二数据序列。进而,对第一数据序列与第二数据序列之间的传输顺序进行调整,以确保第一数据序列的传输顺序在至第二数据序列之前,得到目标数据传输序列。
212、服务器根据目标数据传输序列,确定丢包数据和待排序媒体数据之间的数据优先级。
具体的,按照目标数据传输序列中的各媒体数据之间的排序,确定丢包数据与当前需要进行传输的媒体数据之间的数据优先级,其中,该数据优先级具体可以包括上一传输回合的丢包数据与当前需要传输的待传输媒体数据之间的传输顺序优先级。
213、服务器按照数据优先级,将丢包数据和待排序媒体数据传输至目标终端。
具体的,将丢包数据在上一传输回合中分配的目标传输流标识确定为第一目标传输流标识,并从已经释放的第二传输流标识中为每个待排序媒体数据分配第二目标传输流标识;进而,按照数据优先级的数据传输顺序,通过第一目标传输流标识指示的流通道将丢包数据回传至目标终端,以及,通过第二目标传输流标识指示的流通道将对应的待排序媒体数据传输至目标终端,从而,实现衡量两者之间的数据传输优先级,并完成对丢包数据和未进行传输的待传输媒体数据进行传输,确保音视频业务播放质量。
214、目标终端接收丢包数据和待排序媒体数据,并上传至目标应用进行播放。
具体的,目标终端接收到服务器发送的丢包数据和待排序媒体数据,并将该接收到的媒体数据实时上传至目标终端上的目标应用程序,使得目标应用程序对上传的媒体数据进行播放,从而,向用户呈现出所要执行的业务功能事项,提高用户的观感体验。
为了便于对本申请实施例的理解,将以具体的应用场景实例对本申请实施例进行描述。具体的,通过执行以上步骤201-214,以及结合图4-图15,对该应用场景实例进行描述。其中,以音视频业务的数据传输过程的应用场景为例,该数据传输场景实例进行描述,具体如下:
一、该数据传输系统的架构包括云服务器、服务传输网络、用户终端,其中,云服务器与用户终端之间通过服务传输网络进行连接,以实现通信数据交互,如实现云服务器向用户终端下发待传输媒体数据的数据内容报文(可为关键内容报文或非关键内容报文),以及实现用户终端向云服务器上传消息确认报文(数据传输报文)。关于该数据传输系统的架构请参见图4所示。
需要说明的是,该数据传输系统涉及的应用场景主要集中于云服务器与用户终端的音视频流量交互,包括但不限于实时音视频通信(如电话会议、视频聊天、语音聊天等)、音视频点播(电影视频、音乐等)、音视频直播(如各类直播平台等)。具体地,云服务器在收到用户终端发送的音视频流量请求之后,获取请求报文中携带的流标识集合(传输流标识信息),并将待发送音视频流量(音视频数据,即待传输媒体数据)通过不同的流标识对应的流通道发送至用户终端;终端在收到音视频报文(即待传输媒体数据的数据内容报文)后,将流内无阻塞的音视频数据上送至应用播放器(即目标应用);若出现报文丢失,服务器优先回传丢失的关键内容报文,并灵活调整丢失的非关键内容报文的重传。
二、参见图5所示,该音视频业务的数据传输流程为:用户终端向匀服务器发送音视频请求;云服务器获取流标识集合;云服务器识别待发送数据类型;云服务器通过不同流标识发送数据;终端收到数据并上送应用层,并发送数据传输报文;云服务器确认丢包信息并识别丢包的数据类型;云服务器根据数据类型判断丢失的数据是否为关键内容;若是,则通过原有流标识优先回传,若否,通过原有流标识低优先级回传;用户终端接收报文,并将非阻塞的数据上报至应用层播放器。其中,该数据传输流程主要包括:1、服务器确定用户终端声明的流标识集合;2、服务器对音视频数据进行传输;3、用户终端将音视频数据上传应用播放器并反馈丢失报文;4、服务器传输丢失的数据;5、用户终端接收丢失的数据。该数据传输流程具体如下:
1、确定用户终端向服务器声明使用的流标识集合,其可通过用户终端向云服务器发送的音视频请求报文(数据传输请求)中携带的传输流标识信息确定。其中,该传输流标识信息的具体格式可以为<bool_carry,stype,stream_id_set>。
(1.1)该“bool_carry”表示携带的传输流标识是否有效的字段,占用1bit,若该字段值为0,则表示终端发送的请求报文中不携带流标识集合,此时不携带后续stype、stream_id_set等字段(或stype、stream_id_set等字段为无效数值);若值为1,则表示终端发送的请求报文中携带流标识集合,此时后续stype、stream_id_set等字段有效。
(1.2)该“stype”表示可用的传输流标识的分布、数量等情况的字段,即流分布类型信息字段;字段stype占用2bits,若该字段值可包括00、01、10、11等,其中,不同的字段值对应的“stream_id_set”流标识字段的信息不同。
(1.3)该“stream_id_set”表示具体选定的一个或多个传输流标识的字段,即流标识字段。关于该字段表示的流标识信息如下:
(1.3.1)当stype值为00时,流标识集合为全集,即终端可接受任意的流标识来传输音视频流量,此时字段stream_id_set无效或不携带。
(1.3.2)当stype值为01时,字段stream_id_set的格式为“stream_id_set = <id_len, first_id, step, end_id>”,其中,id_len表示每个流标识的长度,占用5bits,first_id表示第一个流标识,step表示相邻流标识的差值,end_id表示最后一个流标识;在这里first_id、step、end_id的长度均为2id_len个bits。
(1.3.3)当stype值为10时,字段stream_id_set的格式为“stream_id_set = <id_len, id_amount, stream_0, stream_1, …, stream_n>”,其中,id_amount表示流标识集合中流标识的数量(占用32bits),声明的传输流标识分别为stream_0、stream_1、…、stream_n。
(1.3.4)当stype值为11时,预留。
2、服务器对用户终端请求的音视频数据进行传输:服务器在收到来自用户终端的音视频请求后,将不同类型的音视频数据按照不同的流标识对应的流通道进行传输,直至终端收到相应音视频报文后才将对应的流标识释放。具体包括如下:
(2.1)确定音视频数据的数据类型:服务器传输层接收来自应用层的音视频数据后,判断音视频数据的类型(如音频数据、视频I帧数据、视频P帧数据、视频B帧数据、操作指令数据、文字信息数据等)。具体的,传输层根据数据的编码格式识别数据类型,如在FLV协议编码的音视频数据中,可根据FLV头部中的flags(00000a0b)判断是否存在音频或视频(当a=1时,表示存在音频数据;当b=1时,表示存在视频数据);也可根据FLV数据体中Tag头部信息中的Type字段判断每个Tag数据的具体类型,即0x08 (音频)、0x09 (视频)、0x12(script data);还可以根据Tag数据中字段Frame Type判断帧的类型(当数值为十进制1时,表示关键帧;当数值为十进制2时,表示普通帧)。进而,可根据数据类型来确定属性类别,如关键内容类别或非关键内容类别。
(2.2)将音视频数据按照不同的流标识对应的流通道进行传输,可通过报文形式进行传输。如图6所示,示例性的,流标识集合中包含1~7,报文编号1、4、7为关键内容报文,报文编号2、3、5、6为非关键内容报文。云服务器在发送音视频流量的时候,轮询利用流标识集合中流标识进行传输,具体为:关键内容报文编号1通过流标识1进行传输、非关键内容报文编号2通过流标识2进行传输、非关键内容报文编号3通过流标识3进行传输、关键内容报文编号4通过流标识4进行传输、非关键内容报文编号5通过流标识5进行传输、非关键内容报文编号6通过流标识6进行传输、关键内容报文编号7通过流标识7进行传输。
此外,参见图7、图8所示,服务机(Server,服务器或传输层)可通过固定的流标识传输所有的关键内容的报文,而其它非关键内容的报文可通过不同的流标识进行传输,因此,非关键内容报文的丢失不会阻塞后续关键内容报文继续上送给应用层播放器。示例性的,以Tag表示对应帧的音视频帧,则关键内容的音视频帧(即Tag1、Tag2、Tag6)通过固定的流标识(如StreamID=1)进行传输;而非关键内容的音视频帧(即Tag3、Tag4、Tag5)通过不同的流标识进行传输。
3、用户终端接收来自服务器发送的音视频报文后,将数据上送至应用层播放器,因为不同的数据类型依次按照不同的流标识进行传输,故流内不存在阻塞的现象。如图9所示,报文编号3和4丢失之后,报文编号5、6、7仍然可以上送至应用层播放器,而不会被阻塞。与此同时,用户终端向服务器发送消息确认报文,说明终端收到的(或未收到的)报文编号。
需要说明的是,参见图10,音视频报文中携带音视频帧的Tag标识(记为TagID)和“上一个关键帧”的流标识streamID(记为Key_streamID)及其偏移信息(即报文编号,记为Key_offset)。其中,用户终端是根据报文中携带的上述“Key_streamID”和“Key_offset”信息来判断收到的报文为关键内容还是非关键内容;同时,也可以根据上述信息判断丢失的报文为关键内容还是非关键内容。
具体的,客户机(Client,即用户终端)在收到来自多个Stream的音视频报文后,执行的流程为:(3.1)根据TagID将这些QUIC报文数据进行拼接;(3.2)根据Key_offset判断关键帧报文是否丢失;(3.3)若关键帧报文未丢失,则将音视频数据上送至应用层;(3.4)若关键帧报文丢失,则将该丢失的关键帧的音视频数据之前的所有数据上送应用层。
具体的,若关键帧报文丢失,则将该丢失关键帧之前的所有数据上送应用播放器,并将后续的音视频数据(报文)上传去应用层(或应用层播放器)。示例性的,参见图11所示,当网关服务器(服务机)在客户机(client)发送报文时,报文2丢失(以虚线框表示),终端将报文1上传至应用播放器,以及将后续的报文3上送应用播放器。
具体的,若关键内容出现丢失,终端需要等待该报文重传之后才能将后续报文上送应用层播放器。示例性的,参见图12所示,报文1丢失,该报文为关键帧内容,终端需要等待报文1重传并收到之后才能将后续报文2和3上送应用播放器。
4、云服务器收到来自用户终端的数据传输报文后,明确丢失的报文编号(例如,如图9所示,报文编号3和4丢失),识别丢失报文中的关键内容报文,并优先回传这些丢失的关键内容报文4;同时,对于丢失的非关键内容报文3,适当降低回传的优先级。示例性的,参考图13所示,关于该丢失报文的回传过程具体流程如下:
(4.1)云服务器通过原有的流标识(即流标识4)优先回传丢失的关键内容报文(即报文编号4)。
(4.2)通过已经释放的流标识(即流标识1、2、5)发送关键内容报文(即报文编号8、9、10)。
(4.3)通过原有的流标识(即流标识3)回传丢失的非关键内容报文(即报文编号3)。
(4.4)通过已经释放的流标识(即流标识6和7)传输非关键内容报文(即报文编号11和12)。
5、用户终端在收到云服务器发送及回传的音视频报文后,按照上述流程(3)相关描述上送至应用播放器,并向服务器发送数据传输报文。如图14所示,终端收到的报文编号有4、8、9、3、12,并将这些报文上送至应用层,而未收到的报文编号10和11通过消息确认报文告知服务器丢包信息。
通过以上应用场景实例,可实现如下效果:通过在终端发送的请求消息中携带流标识集合,使得服务器基于不同的流标识传输不同类型的音视频流量数据;因为终端收到的音视频报文具备不同的流标识,因此可以直接上送至应用层,缓解了因流内阻塞而无法上送应用层致使音视频卡顿的问题;若出现丢包,服务器优先回传丢失的关键内容报文,保证对用户终端用户体验质量影响最大的数据报文尽快发送至终端,有效改善终端用户体验质量,有利于提升音视频流量的传输性能,提升云服务提供商的核心竞争力。
由以上可知,本申请实施例可确定目标终端在传输服务层中可用的多个传输流标识,以按照数据时序关系和数据属性类别选取每个待传输媒体数据对应的目标传输流标识,实现以多个流通道分别将每个待传输媒体数据传输至目标终端,提高对网络带宽的资源利用率和数据传输效率;进而,在接收到目标终端反馈的丢包数据时,确定丢包数据在当前时间的数据优先级,以限定丢包数据在当前的传输顺序,并按照该数据优先级将丢包数据重新传输至目标终端,以确保重要的媒体数据优先被目标终端接收,保证目标终端在播放音视频文件时的质量,从而有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户的观感体验。
为了更好地实施以上方法,本申请实施例还提供一种数据传输装置。例如,如图15所示,该数据传输装置可以包括获取单元401、确定单元402、分配单元403、第一传输单元404和第二传输单元405。
获取单元401,用于获取包含数据时序关系的多个待传输媒体数据;
确定单元402,用于确定目标终端在传输服务中选定的多个传输流标识;
分配单元403,用于按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;
第一传输单元404,用于将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;
第二传输单元405,用于当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。
在一些实施方式中,数据传输装置还包括检测单元,用于:当检测到当前未传输的待传输媒体数据时,将当前未传输的待传输媒体数据确定为待排序媒体数据;
则第二传输单元405,还用于:识别丢包数据对应的属性类别,以及识别待排序媒体数据对应的属性类别;根据属性类别和数据时序关系,确定丢包数据和待排序媒体数据之间的数据优先级;按照数据优先级,对丢包数据和待排序媒体数据进行传输。
在一些实施方式中,第二传输单元405,还用于:根据数据时序关系,建立丢包数据和待排序媒体数据对应的初始数据传输序列;根据属性类别对初始数据传输序列进行调整,得到调整后的目标数据传输序列;根据目标数据传输序列,确定丢包数据和待排序媒体数据之间的数据优先级。
在一些实施方式中,属性类别包括关键内容类别和非关键内容类别,第二传输单元405,还用于:根据初始数据传输序列中关键内容类别对应的数据确定第一数据序列,以及根据初始数据传输序列中非关键内容类别对应的数据确定第二数据序列;将第一数据序列的传输顺序调整至第二数据序列之前,得到调整后的目标数据传输序列。
在一些实施方式中,第二传输单元405,还用于:按照数据时序关系对第一数据序列进行传输顺序调整,得到第一目标数据序列;按照数据时序关系对第二数据集合进行传输顺序调整,得到第二目标数据序列;将第一目标数据序列的传输顺序调整至第二目标数据序列之前,得到调整后的目标数据传输序列。
在一些实施方式中,第二传输单元405,还用于:确定丢包数据在上一次分配时所占用的目标传输流标识,并将丢包数据占用的目标传输流标识确定为第一目标传输流标识;从多个传输流标识中筛选出未占用的多个第二传输流标识;按照数据优先级,从多个第二传输流标识中为每个待排序媒体数据分配对应的第二目标传输流标识;基于数据优先级,按照第一目标传输流标识指示的流通道对丢包数据进行传输,以及按照对应的第二目标传输流标识指示的流通道对待排序媒体数据进行传输。
在一些实施方式中,第二传输单元405,还用于:获取待排序媒体数据对应的编码格式信息;读取编码格式信息中的数据类型字段,并根据数据类型字段确定待排序媒体数据对应的目标数据类型;根据目标数据类型,确定待排序媒体数据所属的属性类别。
在一些实施方式中,目标数据类型包括视频数据类型,第二传输单元405,还用于:针对视频数据类型对应的待排序媒体数据,从编码格式信息中提取帧类别字段信息;获取预设帧类别列表,预设帧类别列表中包含预设帧字段数值与属性类别之间的对应关系;将帧类别字段信息中目标帧字段数值与预设帧类别列表中的预设帧字段数值进行匹配,得到目标帧字段数值所属的属性类别。
在一些实施方式中,第一传输单元404,还用于:根据数据时序关系生成每个待传输媒体数据对应的数据内容报文,数据内容报文携带有报文编号;基于报文编号之间的顺序,将每个数据内容报文按照对应的目标传输流标识指示的目标流通道传输至目标终端。
由以上可知,本申请实施例可以通过获取单元401获取包含数据时序关系的多个待传输媒体数据;通过确定单元402确定目标终端在传输服务中选定的多个传输流标识;通过分配单元403按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;通过第一传输单元404将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;通过第二传输单元405当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。由此可得,本方案可确定目标终端在传输服务层中可用的多个传输流标识,以按照数据时序关系和数据属性类别选取每个待传输媒体数据对应的目标传输流标识,实现以多个流通道分别将每个待传输媒体数据传输至目标终端,提高对网络带宽的资源利用率和数据传输效率;进而,在接收到目标终端反馈的丢包数据时,确定丢包数据在当前时间的数据优先级,以限定丢包数据在当前的传输顺序,并按照该数据优先级将丢包数据重新传输至目标终端,以确保重要的媒体数据优先被目标终端接收,保证目标终端在播放音视频文件时的质量,从而有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户的观感体验。
本申请实施例还提供一种计算机设备,如图16所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图16中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器501是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据传输。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
计算机设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本申请实施例中,计算机设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,如下:
获取包含数据时序关系的多个待传输媒体数据;确定目标终端在传输服务中选定的多个传输流标识;按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由此可得,本方案可确定目标终端在传输服务层中可用的多个传输流标识,以按照数据时序关系和数据属性类别选取每个待传输媒体数据对应的目标传输流标识,实现以多个流通道分别将每个待传输媒体数据传输至目标终端,提高对网络带宽的资源利用率和数据传输效率;进而,在接收到目标终端反馈的丢包数据时,确定丢包数据在当前时间的数据优先级,以限定丢包数据在当前的传输顺序,并按照该数据优先级将丢包数据重新传输至目标终端,以确保重要的媒体数据优先被目标终端接收,保证目标终端在播放音视频文件时的质量,从而有效避免终端在播放音视频时出现延时、卡顿的现象,提高用户的观感体验。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种数据传输方法中的步骤。例如,该指令可以执行如下步骤:
获取包含数据时序关系的多个待传输媒体数据;确定目标终端在传输服务中选定的多个传输流标识;按照数据时序关系,从多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;将每个待传输媒体数据按照对应的目标传输流标识指示的目标流通道传输至目标终端,并接收目标终端反馈的数据传输报文;当检测到数据传输报文中包含丢包数据时,按照丢包数据的数据优先级对丢包数据进行重新传输。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种数据传输方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据传输方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种数据传输方法、装置、设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种数据传输方法,其特征在于,包括:
获取包含数据时序关系的多个待传输媒体数据;
确定目标终端在传输服务中选定的多个传输流标识;
按照所述数据时序关系,从所述多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;
将每个待传输媒体数据按照所述对应的目标传输流标识指示的目标流通道传输至所述目标终端,并接收所述目标终端反馈的数据传输报文;
当检测到所述数据传输报文中包含丢包数据时,按照所述丢包数据的数据优先级对所述丢包数据进行重新传输。
2.根据权利要求1所述的方法,其特征在于,所述按照所述丢包数据的数据优先级对所述丢包数据进行数据传输之前,还包括:
当检测到当前未传输的待传输媒体数据时,将所述当前未传输的待传输媒体数据确定为待排序媒体数据;
则所述按照所述丢包数据的数据优先级对所述丢包数据进行重新传输,包括:
识别所述丢包数据对应的属性类别,以及识别所述待排序媒体数据对应的属性类别;
根据所述属性类别和所述数据时序关系,确定所述丢包数据和所述待排序媒体数据之间的数据优先级;
按照所述数据优先级,对所述丢包数据和待排序媒体数据进行传输。
3.根据权利要求2所述的方法,其特征在于,所述根据所述属性类别和所述数据时序关系,确定所述丢包数据和所述待排序媒体数据之间的数据优先级,包括:
根据所述数据时序关系,建立所述丢包数据和所述待排序媒体数据对应的初始数据传输序列;
根据所述属性类别对所述初始数据传输序列进行调整,得到调整后的目标数据传输序列;
根据所述目标数据传输序列,确定所述丢包数据和所述待排序媒体数据之间的数据优先级。
4.根据权利要求3所述的方法,其特征在于,所述属性类别包括关键内容类别和非关键内容类别,所述根据所述属性类别对所述初始数据传输序列进行调整,得到调整后的目标数据传输序列,包括:
根据所述初始数据传输序列中所述关键内容类别对应的数据确定第一数据序列,以及根据所述初始数据传输序列中所述非关键内容类别对应的数据确定第二数据序列;
将所述第一数据序列的传输顺序调整至所述第二数据序列之前,得到调整后的目标数据传输序列。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一数据序列的传输顺序调整至所述第二数据序列之前,得到调整后的目标数据传输序列,包括:
按照数据时序关系对第一数据序列进行传输顺序调整,得到第一目标数据序列;
按照数据时序关系对第二数据集合进行传输顺序调整,得到第二目标数据序列;
将第一目标数据序列的传输顺序调整至第二目标数据序列之前,得到调整后的目标数据传输序列。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述按照所述数据优先级,对所述丢包数据和待排序媒体数据进行传输,包括:
确定所述丢包数据在上一次分配时所占用的目标传输流标识,并将所述丢包数据占用的目标传输流标识确定为第一目标传输流标识;
从所述多个传输流标识中筛选出未占用的多个第二传输流标识;
按照所述数据优先级,从所述多个第二传输流标识中为每个待排序媒体数据分配对应的第二目标传输流标识;
基于所述数据优先级,按照所述第一目标传输流标识指示的流通道对所述丢包数据进行传输,以及按照所述对应的第二目标传输流标识指示的流通道对所述待排序媒体数据进行传输。
7.根据权利要求2所述的方法,其特征在于,所述识别所述待排序媒体数据对应的属性类别,包括:
获取所述待排序媒体数据对应的编码格式信息;
读取所述编码格式信息中的数据类型字段,并根据所述数据类型字段确定所述待排序媒体数据对应的目标数据类型;
根据所述目标数据类型,确定所述待排序媒体数据所属的属性类别。
8.根据权利要求7所述的方法,其特征在于,所述目标数据类型包括视频数据类型,所述根据所述目标数据类型,确定所述待排序媒体数据所属的属性类别,包括:
针对所述视频数据类型对应的待排序媒体数据,从所述编码格式信息中提取帧类别字段信息;
获取预设帧类别列表,所述预设帧类别列表中包含预设帧字段数值与属性类别之间的对应关系;
将所述帧类别字段信息中目标帧字段数值与预设帧类别列表中的预设帧字段数值进行匹配,得到所述目标帧字段数值所属的属性类别。
9.根据权利要求1所述的方法,其特征在于,所述将每个待传输媒体数据按照所述对应的目标传输流标识指示的目标流通道传输至所述目标终端,包括:
根据所述数据时序关系生成每个待传输媒体数据对应的数据内容报文,所述数据内容报文携带有报文编号;
基于所述报文编号之间的顺序,将每个数据内容报文按照所述对应的目标传输流标识指示的目标流通道传输至目标终端。
10.一种数据传输装置,其特征在于,包括:
获取单元,用于获取包含数据时序关系的多个待传输媒体数据;
确定单元,用于确定目标终端在传输服务中选定的多个传输流标识;
分配单元,用于按照所述数据时序关系,从所述多个传输流标识中为每个待传输媒体数据分配对应的目标传输流标识;
第一传输单元,用于将每个待传输媒体数据按照所述对应的目标传输流标识指示的目标流通道传输至所述目标终端,并接收所述目标终端反馈的数据传输报文;
第二传输单元,用于当检测到所述数据传输报文中包含丢包数据时,按照所述丢包数据的数据优先级对所述丢包数据进行重新传输。
11.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,实现权利要求1至9任一项所述的数据传输方法中的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的数据传输方法中的步骤。
CN202211091509.2A 2022-09-07 2022-09-07 数据传输方法、装置、设备和计算机可读存储介质 Active CN115209231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211091509.2A CN115209231B (zh) 2022-09-07 2022-09-07 数据传输方法、装置、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211091509.2A CN115209231B (zh) 2022-09-07 2022-09-07 数据传输方法、装置、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN115209231A true CN115209231A (zh) 2022-10-18
CN115209231B CN115209231B (zh) 2024-03-22

Family

ID=83572589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211091509.2A Active CN115209231B (zh) 2022-09-07 2022-09-07 数据传输方法、装置、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115209231B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117354257A (zh) * 2023-12-05 2024-01-05 苏州萨沙迈半导体有限公司 数据处理方法、装置、电子设备及存储介质
CN117560528A (zh) * 2024-01-11 2024-02-13 腾讯科技(深圳)有限公司 音视频数据发送方法、装置、计算机设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2627054A1 (en) * 2012-02-10 2013-08-14 Polycom, Inc. System and method for handling the loss of critical packets in multi-hop RTP streaming
CN104768081A (zh) * 2015-04-17 2015-07-08 武汉兴图新科电子股份有限公司 一种实现流量控制的丢包重传方法
CN112838992A (zh) * 2019-11-22 2021-05-25 华为技术有限公司 报文调度方法及网络设备
CN113037440A (zh) * 2021-05-25 2021-06-25 腾讯科技(深圳)有限公司 数据重传处理方法、装置、计算机设备和存储介质
CN113392667A (zh) * 2021-08-17 2021-09-14 深圳市成为信息技术有限公司 一种读写器的数据传输方法、数据接收器及存储介质
CN114978433A (zh) * 2022-05-20 2022-08-30 百度时代网络技术(北京)有限公司 数据传输方法、装置、设备、存储介质及计算机程序产品

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2627054A1 (en) * 2012-02-10 2013-08-14 Polycom, Inc. System and method for handling the loss of critical packets in multi-hop RTP streaming
CN104768081A (zh) * 2015-04-17 2015-07-08 武汉兴图新科电子股份有限公司 一种实现流量控制的丢包重传方法
CN112838992A (zh) * 2019-11-22 2021-05-25 华为技术有限公司 报文调度方法及网络设备
CN113037440A (zh) * 2021-05-25 2021-06-25 腾讯科技(深圳)有限公司 数据重传处理方法、装置、计算机设备和存储介质
CN113392667A (zh) * 2021-08-17 2021-09-14 深圳市成为信息技术有限公司 一种读写器的数据传输方法、数据接收器及存储介质
CN114978433A (zh) * 2022-05-20 2022-08-30 百度时代网络技术(北京)有限公司 数据传输方法、装置、设备、存储介质及计算机程序产品

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117354257A (zh) * 2023-12-05 2024-01-05 苏州萨沙迈半导体有限公司 数据处理方法、装置、电子设备及存储介质
CN117354257B (zh) * 2023-12-05 2024-01-30 苏州萨沙迈半导体有限公司 数据处理方法、装置、电子设备及存储介质
CN117560528A (zh) * 2024-01-11 2024-02-13 腾讯科技(深圳)有限公司 音视频数据发送方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN115209231B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN109218654B (zh) 一种视联网会议控制方法及系统
CN109889543B (zh) 视频传输的方法、根节点、子节点、p2p服务器和系统
CN115209231B (zh) 数据传输方法、装置、设备和计算机可读存储介质
CN110502259B (zh) 服务器版本升级方法、视联网系统、电子设备及存储介质
US7200654B2 (en) Method of constructing and managing overlay multicast tree on Internet
US8203989B2 (en) Distributing content in a communication network
CN108810657B (zh) 一种设置视频封面的方法和系统
EP1131935B1 (en) Announced session control
US20170187986A1 (en) Live streaming media method, publish side live, server and terminal
US8812718B2 (en) System and method of streaming data over a distributed infrastructure
CN110572607A (zh) 一种视频会议方法、系统及装置和存储介质
CN110191315B (zh) 一种基于视联网的监控查看方法和装置
CN102185856A (zh) 组队游戏中组队视频方法、装置及系统
CN114040232B (zh) 投屏系统、方法、电子设备和存储介质
CN112511783A (zh) 音视频流的混合显示方法、装置、服务器和存储介质
CN111327868B (zh) 设置会议发言方角色的方法、终端、服务器、设备及介质
CN113926185A (zh) 一种数据处理方法、装置、设备及存储介质
US10270708B2 (en) Aggregated adaptive bit rate streaming
CN110457575B (zh) 文件推送方法、装置及存储介质
CN113132194A (zh) 一种信息流转方法、装置、设备、服务器及存储介质
CN110519549B (zh) 一种会议终端列表获取方法和系统
CN110519331B (zh) 一种视联网资源处理方法及装置
CN114501053B (zh) 直播流获取方法及装置
US10587569B2 (en) Streaming service providing method and device
US20210227005A1 (en) Multi-user instant messaging method, system, apparatus, and electronic device

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40077104

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant