CN117750149A - 音视频数据传输方法、装置、存储介质、电子设备及产品 - Google Patents
音视频数据传输方法、装置、存储介质、电子设备及产品 Download PDFInfo
- Publication number
- CN117750149A CN117750149A CN202211111754.5A CN202211111754A CN117750149A CN 117750149 A CN117750149 A CN 117750149A CN 202211111754 A CN202211111754 A CN 202211111754A CN 117750149 A CN117750149 A CN 117750149A
- Authority
- CN
- China
- Prior art keywords
- audio
- message
- video
- key
- frame
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 456
- 238000000034 method Methods 0.000 title claims abstract description 71
- 239000012634 fragment Substances 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000006798 recombination Effects 0.000 claims abstract description 27
- 238000005215 recombination Methods 0.000 claims abstract description 27
- 238000012790 confirmation Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 230000002457 bidirectional effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000006855 networking Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 101000946275 Homo sapiens Protein CLEC16A Proteins 0.000 description 8
- 102100034718 Protein CLEC16A Human genes 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 238000010791 quenching Methods 0.000 description 3
- 101100122750 Caenorhabditis elegans gop-2 gene Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101150097128 tag-151 gene Proteins 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种音视频数据传输方法、装置、存储介质、电子设备及产品,涉及云技术领域,本申请可以应用于区块链及地图车联网等领域,该方法包括:识别出待发送音视频数据中的音视频帧;对音视频帧进行类型重配置,得到音视频帧对应的关键性类型;根据音视频帧对应的关键性类型,对音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;根据至少一个重组装报文对应的音视频帧对应的关键性类型,在重组装报文中添加报文关键性信息,得到至少一个传输报文;向终端发送至少一个传输报文,终端根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。本申请可以提升音视频流量的传输性能,提升用户体验。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种音视频数据传输方法、装置、存储介质、电子设备及产品。
背景技术
音视频业务中通常需要进行音视频数据的传输,例如,实时音视频通话或者音视频直播业务中通常需要进行音视频数据的传输。
目前,音视频数据传输的方案中,针对音视频数据从音视频帧本身的层面进行简单地传输控制,例如,对不同类型的音视频帧本身所生成的报文进行简单地丢弃或重传等控制。
目前的方案下,由于音视频业务的多样性,从音视频帧本身的层面进行简单地传输控制,存在对不同音视频业务的适配度低,传输灵活性较弱,容易出现音视频卡顿率低等问题,导致音视频流量的传输性能较差,用户体验较差。
发明内容
本申请实施例提供一种音视频数据传输方法及相关装置,可以实现音视频传输对不同音视频业务的高适配度、传输灵活性强以及音视频卡顿率低等优势,有效提升音视频流量的传输性能,提升用户体验。
为解决上述技术问题,本申请实施例提供以下技术方案:
根据本申请的一个实施例,一种音视频数据传输方法,该方法应用于服务器,包括:根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息,确定是否等待所述服务器重传丢失的传输报文。
根据本申请的一个实施例,一种音视频数据传输装置,应用于服务器,其包括:检测模块,用于根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;配置模块,用于对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;组装模块,用于根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;添加模块,用于根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;传输模块,用于向终端发送所述至少一个传输报文,所述传输报文用于所述终端根据接收到的传输报文中的报文关键性信息,确定是否等待所述服务器重传丢失的传输报文。
在本申请的一些实施例中,所述音视频帧包括至少一个视频帧,所述至少一个视频帧包括帧内编码帧、前向预测帧及双向预测帧;所述关键性类型包括关键帧类型以及非关键帧类型;所述配置模块,用于:将所述帧内编码帧的类型配置为关键帧类型;将候选视频帧的类型配置为关键帧类型,所述候选视频帧为两个关键帧类型的音视频帧之间预定范围内的所述前向预测帧及双向预测帧;将剩余视频帧的类型配置为非关键帧类型,所述剩余视频帧为所述至少一个视频帧中除所述候选视频帧之外的所述前向预测帧及双向预测帧。
在本申请的一些实施例中,所述音视频帧包括至少一个音频帧;所述配置模块,用于:将所述至少一个音频帧的类型配置为关键帧类型。
在本申请的一些实施例中,所述关键性类型包括关键帧类型和非关键帧类型,所述组装模块,用于:将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,各所述关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将非关键帧类型的音视频帧中的音视频片段划分为至少一个非关键音视频片段组,各所述非关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将划分得到的所述关键音视频片段组及所述非关键音视频片段组分别打包组装成报文,得到所述至少一个重组装报文。
在本申请的一些实施例中,所述关键帧类型的音视频帧包括帧内编码帧、候选视频帧以及音频帧中至少一种;所述关键音视频片段组包括关键视频片段组及关键音频片段组中至少一种;所述组装模块,用于:将所述帧内编码帧中的视频片段分组,得到至少一个关键视频片段组;将所述候选视频帧中的视频片段分组,得到至少一个关键视频片段组;将所述音频帧中的音频片段分组,得到至少一个关键音频片段组。
在本申请的一些实施例中,所述关键性类型包括关键帧类型;添加模块,用于:在每个所述重组装报文中添加报文关键性信息,得到所述至少一个传输报文,其中,每个所述传输报文中的报文关键性信息指向每个所述传输报文之前的关键帧报文,所述关键帧报文为包括关键帧类型的音视频帧中音视频片段的传输报文。
在本申请的一些实施例中,每个所述重组装报文中包括对应的排序字段;所述添加模块,用于:在每个所述重组装报文中增加报文关键性信息对应的关键信息字段,得到所述至少一个包括排序字段及关键信息字段的传输报文,其中,每个所述传输报文中的关键信息字段指向每个所述传输报文之前的关键帧报文中的所述排序字段。
在本申请的一些实施例中,所述装置还包括重传模块,用于:接收所述终端发送的消息确认报文;若根据所述消息确认报文确认所述终端中丢失的传输报文为关键帧报文,则向所述终端重传丢失的传输报文,所述关键帧报文为包括关键帧类型的音视频帧中音视频片段的报文;若根据所述消息确认报文确认所述终端中丢失的传输报文为非关键帧报文,则不向所述终端重传丢失的传输报文,所述非关键帧报文为除所述关键帧报文之外的传输报文。
在本申请的一些实施例中,所述装置还包括规则确认模块,用于:接收所述终端发送的音视频请求,所述音视频请求中携带是否支持半可靠传输的传输标识;若所述传输标识指示所述终端支持半可靠传输,则基于传输所述传输报文的方式向所述终端传输所述待发送音视频数据。
在本申请的一些实施例中,检测模块,用于:将所述待发送音视频数据从应用层传递至传输层;在所述传输层根据待发送音视频数据中的相关字段识别出所述所述待发送音视频数据中的音视频帧,以在所述传输层基于检测到的所述音视频帧生成所述传输报文向所述终端发送。
根据本申请的一个实施例,一种音视频数据传输方法,该方法应用于终端,包括:接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
根据本申请的一个实施例,一种音视频数据传输装置,应用于终端,其包括:接收模块,用于接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;确定模块,用于根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
在本申请的一些实施例中,确定模块,用于:检测接收到的传输报文中是否存在丢失的传输报文;若存在,则根据接收到的传输报文中的报文关键性信息,确定丢失的传输报文是否为关键帧报文;若丢失的传输报文为关键帧报文,向服务器发送携带丢失的传输报文的报文信息的消息确认报文,并暂停将接收到的传输报文上送应用层播放器的进程,等待所述服务器重传丢失的传输报文。
根据本申请的另一实施例,一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行本申请实施例所述的方法。
根据本申请的另一实施例,一种电子设备,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行本申请实施例所述的方法。
根据本申请的另一实施例,一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所述的各种可选实现方式中提供的方法。
本申请实施例的音视频传输方案中,根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;对所述音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息确定是否等待所述服务器重传丢失的传输报文。
以这种方式,服务器中,针对待发送音视频数据,通过对音视频帧的类型重配置、音视频片段的重组装处理以及报文关键性信息的添加得到至少一个传输报文,向终端传输该传输报文,终端根据报文关键性信息确定是否等待服务器重传丢失的传输报文,对待发送音视频数据实现细粒度的高可靠传输控制,可以实现音视频传输对不同音视频业务的高适配度、传输灵活性强以及音视频卡顿率低等优势,有效提升音视频流量的传输性能,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种可以应用本申请实施例的系统的示意图。
图2示出了根据本申请的一个实施例的音视频数据传输方法的流程图。
图3示出了根据本申请的一个实施例的音视频请求的传输流程图。
图4示出了根据本申请的一个实施例的音视频数据的传输流程图。
图5示出了根据本申请的一个实施例的音视频帧的重组装示意图。
图6示出了根据本申请的一个实施例的报文传输流程图。
图7示出了根据本申请的一个实施例的传输报文的结构示意图。
图8示出了根据本申请的一个实施例的报文传输流程图。
图9示出了根据本申请的一个实施例的报文传输流程图。
图10示出了根据本申请的一个实施例的音视频数据传输方法的流程图。
图11示出了根据本申请的一个实施例的报文传输流程图。
图12示出了根据本申请的一个实施例的报文传输流程图。
图13示出了一种场景下应用本申请的实施例进行音视频数据传输的流程图。
图14示出了根据本申请的一个实施例的音视频数据传输装置的框图。
图15示出了根据本申请的另一个实施例的音视频数据传输装置的框图。
图16示出了根据本申请的一个实施例的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可以理解的是,在本申请的具体实施方式中,涉及到音视频数据等相关的数据,当本申请中实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
图1示出了可以应用本申请实施例的系统100的示意图。如图1所示,系统100可以包括服务器101及终端102。
服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。本示例的一种实施方式中,服务器101可以包括云端服务器以及该云端服务器的代理服务器。
终端102可以是任意的设备,终端102包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、VR/AR设备、智能手表以及计算机等等。一种实施方式中,服务器101或终端102可以是区块链网络或地图车联网平台中的节点设备。
本申请的应用场景可以包括:实时音视频通话(如多人视频会议、微信视频与语音等)、音视频直播业务(如各类直播平台中的直播业务等)、音视频点播业务(如腾讯视频、qq音乐等)、网络游戏(如王者荣耀、穿越火线等)以及虚拟现实(如AR/VR技术)、同声传译、元宇宙等场景。
本示例的一种实施方式中,服务器101可以:根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;对所述音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息确定是否等待所述服务器重传丢失的传输报文。
本示例的一种实施方式中,终端102可以:接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
图2示意性示出了根据本申请的一个实施例的音视频数据传输方法的流程图。该音视频数据传输方法的执行主体可以是任意的服务器,例如图1所示的服务器101。
如图2所示,该音视频数据传输方法可以包括步骤S210至步骤S230。
步骤S210,根据待发送音视频数据中的相关字段,识别出待发送音视频数据中的音视频帧;步骤S220,对音视频数据中的音视频帧进行类型重配置,得到音视频数据中的音视频帧对应的关键性类型;步骤S230,根据音视频帧对应的关键性类型,对音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;步骤S240,根据至少一个重组装报文对应的音视频帧对应的关键性类型,在至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;步骤S250,向终端发送至少一个传输报文,传输报文用于使终端根据接收到的传输报文中的报文关键性信息确定是否等待服务器重传丢失的传输报文。
待发送音视频数据即服务器中待发送至终端的音视频数据,例如,用户进入直播间到离开直播间的这段时间内直播间中的音视频数据。待发送音视频数据中可以包括至少一个音视频帧,音视频帧可以包括音频数据对应的音频帧及视频数据对应的视频帧,每个音视频中可以包括至少一个音频片段,每个视频帧中可以包括至少一个视频片段。
服务器中可以检测待发送音视频数据中的相关字段而识别出音视频帧,以基于HTTP-FLV协议的待发送音视频数据为例,根据待发送音视频数据中FLV头部中的Flags字段,可以判断是否存在音视频帧(包括音频帧及视频帧);根据Tag头部中的Type字段,判断出每个音视频片段(Tag,包括音频片段及视频片段)属于音频帧还是属于视频帧;进一步的,根据每个音视频片段(Tag)中的Frame_type字段,可以判断每个音视频片段(Tag)所属的音视频帧(包括音频帧及视频帧),进而,检测出待发送音视频数据中的音视频帧。
对音视频数据中的每个音视频帧(包括音频帧及视频帧)进行类型重配置,可以将每个音视频帧(包括音频帧及视频帧)原定的类型进行重新配置,得到适合当前传输需求的重配置后的关键性类型,该关键性类型可以是描述音视频帧的关键性的类型,例如关键性类型包括关键帧类型及非关键帧类型。
根据音视频帧对应的重配置后的关键性类型,可以对音视频帧中的音视频片段进行重组装处理,例如,将相同关键性类型的视频帧中的视频片段重新分组及组装,进而可以得到至少一个重组装报文。根据每个重组装报文中音视频片段所来源的音视频帧对应的关键性类型,可以在每个重组装报文中添加报文关键性信息,得到至少一个传输报文,其中,报文关键性信息可以是描述报文的关键性的信息。
服务器中打包得到传输报文后,向终端发送得到的至少一个传输报文,终端可以根据接收到的传输报文中的报文关键性信息确定传输过程中丢失的传输报文,进一步可以确定是否暂停将接收到的传输报文上送应用层播放器的进程来等待服务器重传丢失的传输报文。
以这种方式,基于步骤S210至步骤S250,服务器中,针对待发送音视频数据,通过对音视频帧的类型重配置、音视频片段的重组装处理以及报文关键性信息的添加得到至少一个传输报文,向终端传输该传输报文,终端根据报文关键性信息确定是否等待服务器重传丢失的传输报文,对待发送音视频数据实现细粒度的高可靠传输控制,可以实现音视频传输对不同音视频业务的高适配度、传输灵活性强以及音视频卡顿率低等优势,有效提升音视频流量的传输性能,提升用户体验。
下面描述图2中实施例进行音视频数据传输时,所进行的各步骤下进一步的具体可选实施例。
一种实施例中,在步骤S210,根据待发送音视频数据中的相关字段,识别出待发送音视频数据中的音视频帧之前,还包括:接收终端发送的音视频请求,音视频请求中携带是否支持半可靠传输的传输标识;若传输标识指示终端支持半可靠传输,则基于传输传输报文的方式向终端传输待发送音视频数。
例如,参阅图3,终端可以向服务器发送音视频请求对应请求报文req_pkt,该请求报文req_pkt中可以携带用于描述终端是否支持半可靠传输的传输标识,该传输标识可以是PART字段,其中,PART字段的长度可以为至少为1bit(如图3中PART字段0x01长度为2bits)。若PART字段为0x01,则传输标识指示终端支持或开启半可靠传输,终端支持或开启半可靠传输的情况下,服务器可以进一步基于图2所对应的实施例基于传输传输报文的方式向终端传输待发送音视频数据,进一步提升音视频传输的可靠性。
一种实施例中,步骤S210,根据待发送音视频数据中的相关字段,识别出待发送音视频数据中的音视频帧,包括:将待发送音视频数据从应用层传递至传输层;在传输层根据待发送音视频数据中的相关字段识别出待发送音视频数据中的音视频帧,以在传输层基于检测到的音视频帧生成传输报文向终端发送。
该实施例下,服务器中将待发送音视频数据从应用层(L7)传递至传输层(L4),如图4所示,将基于HTTP-FLV协议的待发送音视频数据(其中包括多个音视频片段tag1、tag2等)可以从应用层(L7)传递至传输层(L4)。进一步的,在传输层(L4)执行图2所对应的实施例中步骤,根据待发送音视频数据中的相关字段识别出待发送音视频数据中的音视频帧,基于识别到的音视频帧生成传输报文向终端发送,实现对传输层(L4)的音视频传输改进,将相较于在应用层(L7)等基于传输报文传递的方式进一步提升音视频数据传输性能。
一种实施例中,音视频帧包括至少一个视频帧,至少一个视频帧包括帧内编码帧、前向预测帧及双向预测帧;关键性类型包括关键帧类型以及非关键帧类型;步骤S220,对待发送音视频数据中的音视频帧进行类型重配置,得到音视频数据中的音视频帧对应的关键性类型,包括:
将帧内编码帧的类型配置为关键帧类型;将候选视频帧的类型配置为关键帧类型,候选视频帧为两个关键帧类型的音视频帧之间预定范围内的前向预测帧及双向预测帧;将剩余视频帧的类型配置为非关键帧类型,剩余视频帧为至少一个视频帧中除候选视频帧之外的前向预测帧及双向预测帧。
帧内编码帧即视频I帧、前向预测帧即视频P帧,双向预测帧即视频B帧。关键帧类型的音视频帧对应的关键性高于非关键帧类型的音视频帧。该实施例下,通过类型重配置,将待发送音视频数据中的帧内编码帧以及候选视频帧的类型可以在类型记录表中配置为关键性类型,将待发送音视频数据中的剩余视频帧的类型可以在类型记录表中配置为非关键帧类型。
其中,候选视频帧为两个关键类型的音视频帧之间预定范围内的前向预测帧及双向预测帧,例如参阅图5,音视频帧组(GOP1)中第1帧为视频I帧,若音视频帧组(GOP1)后为音视频帧组(GOP2),音视频帧组(GOP2)中第1帧为视频I帧,这两个视频I帧为两个关键帧类型的视频帧,这两个视频I帧之间为音视频帧组(GOP1)中的视频P帧及视频B帧,这两个视频I帧之间预定范围T内的视频P帧及视频B帧的类型被配置为关键帧类型。剩余视频帧即至少一个视频帧中除候选视频帧(被配置为关键帧类型的前向预测帧及双向预测帧)之外所剩余的前向预测帧及双向预测帧。
一种实施例中,音视频帧包括至少一个音频帧;步骤S220,对待发送音视频数据中的音视频帧进行类型重配置,得到音视频数据中的音视频帧对应的关键性类型,包括:将至少一个音频帧的类型配置为关键帧类型。进而,该实施例下,进一步将待发送音视频数据中所有的音频帧的类型配置为关键帧类型。
一种实施例中,关键性类型包括关键帧类型和非关键帧类型,步骤S230,根据音视频帧对应的关键性类型,对音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文,包括:
将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,各关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将非关键帧类型的音视频帧中的音视频片段划分为至少一个非关键音视频片段组,各非关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将划分得到的关键音视频片段组及非关键音视频片段组分别打包组装成报文,得到至少一个重组装报文。
例如,参阅图5,音视频帧组(GOP1)中存在一个关键帧类型的音视频帧为视频I帧,该视频I帧中包括100个视频片段(tag1至tag100),可以将该100个视频片段(tag1至tag100)划分为50个关键音视频片段组,每个关键音视频片段组包括2个连续的视频片段,例如,关键音视频片段组pkt.1中包括2个连续的视频片段tag1和tag2。音视频帧组(GOP1)中还存在关键帧类型的音视频帧为视频P帧或视频B帧,该将该关键帧类型的视频P帧或视频B帧中的视频片段也可以划分为若干个关键音视频片段组,例如,关键音视频片段组pkt.j中包括2个连续的视频片段tag150和tag151。音视频帧组(GOP1)中还存在非关键帧类型的音视频帧为视频P帧或视频B帧,将该非关键帧类型的视频P帧或视频B帧中的视频片段也可以划分为若干个非关键音视频片段组,例如,非关键音视频片段组pkt.i+1中包括2个连续的视频片段tag101和tag102。
进一步的,将划分得到的关键音视频片段组及非关键音视频片段组分别打包组装成报文,可以得到至少一个重组装报文,例如,将关键音视频片段组pkt.1打包组装成报文得到一个重组装报文,将非关键音视频片段组pkt.i+1打包组装成报文得到一个重组装报文。
一种实施例中,关键帧类型的音视频帧包括帧内编码帧、候选视频帧以及音频帧中至少一种;关键音视频片段组包括关键视频片段组及关键音频片段组中至少一种;将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,包括以下方式中至少一种:将帧内编码帧中的视频片段分组,得到至少一个关键视频片段组;将候选视频帧中的视频片段分组,得到至少一个关键视频片段组;将音频帧中的音频片段分组,得到至少一个关键音频片段组。
该实施例下,关键帧类型的音视频帧包括帧内编码帧、候选视频帧以及音频帧中至少一种,针对帧内编码帧、候选视频帧以及音频帧可以分别进行片段分组。
将帧内编码帧中的所有视频片段进行分组,可以得到帧内编码帧对应的至少一个关键视频片段组,例如,参阅图5,音视频帧组(GOP1)中存在一个关键帧类型的音视频帧为视频I帧(即帧内编码帧),该视频I帧中包括100个视频片段(tag1至tag100),可以将该100个视频片段(tag1至tag100)划分为50个关键音视频片段组,每个关键音视频片段组包括2个连续的视频片段,例如,关键音视频片段组pkt.1中包括2个连续的视频片段tag1和tag2。
将候选视频帧中的视频片段分组,得到候选视频帧对应的至少一个关键视频片段组,候选视频帧为两个关键类型的音视频帧之间预定范围内的前向预测帧及双向预测帧,例如,参阅图5,音视频帧组(GOP1)中还存在关键帧类型的音视频帧为视频P帧或视频B帧(即候选视频帧),该将该关键帧类型的视频P帧或视频B帧中的视频片段也可以划分为若干个关键音视频片段组,例如,关键音视频片段组pkt.j中包括2个连续的视频片段tag150和tag151。
将音频帧中的音频片段分组,得到音频帧对应的至少一个关键音频片段组。例如,一个音频帧中包括20个音频片段,可以将该20个音频片段划分为若干个关键音频片段组。
一种实施例中,关键性类型包括关键帧类型;步骤S240,根据至少一个重组装报文对应的音视频帧对应的关键性类型,在至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文,包括:
在每个重组装报文中添加报文关键性信息,得到至少一个传输报文,其中,每个传输报文中的报文关键性信息指向每个传输报文之前的关键帧报文,关键帧报文为包括关键帧类型的音视频帧中音视频片段的传输报文。
每个重组装报文中分别添加对应的报文关键性信息,得到每个重组装报文对应的传输报文,进而得到至少一个传输报文,每个传输报文中包括报文关键性信息。例如,参阅图6,至少一个传输报文包括pkt.i-1、pkt.i、pkt.i+1及pkt.i+2对应的传输报文。其中,将关键音视频片段组pkt.i-1打包组装成报文得到一个pkt.i-1对应的重组装报文,在pkt.i-1对应的重组装报文中添加报文关键性信息得到pkt.i-1对应的传输报文;将关键音视频片段组pkt.i打包组装成报文得到一个pkt.i对应的重组装报文,在pkt.i对应的重组装报文中添加报文关键性信息得到pkt.i对应的传输报文;将非关键音视频片段组pkt.i+1打包组装成报文得到一个pkt.i+1对应的重组装报文,在pkt.i+1对应的重组装报文中添加报文关键性信息得到pkt.i+1对应的传输报文;将非关键音视频片段组pkt.i+2打包组装成报文得到一个pkt.i+2对应的重组装报文,在pkt.i+2对应的重组装报文中添加对应的报文关键性信息得到pkt.i+2对应的传输报文。
关键帧报文为包括关键帧类型的音视频帧中音视频片段的传输报文,例如,pkt.i-1对应的传输报文中包括关键音视频片段组pkt.i-1(即关键帧类型的音视频帧中音视频片段),也即pkt.i-1对应的传输报文为一个关键帧报文,同理,pkt.i对应的传输报文为一个关键帧报文。
每个传输报文中的报文关键性信息指向每个传输报文之前的关键帧报文,例如,参阅图6,按照报文顺序,pkt.i对应的传输报文指向其之前的关键帧报文(pkt.i-1对应的传输报文),pkt.i+1对应的传输报文指向其之前的关键帧报文(pkt.i对应的传输报文),pkt.i+2对应的传输报文指向其之前的关键帧报文(pkt.i对应的传输报文)。
进一步的,一种实施例中,每个重组装报文中包括对应的排序字段;在每个重组装报文中添加报文关键性信息,得到至少一个传输报文,其中,每个传输报文中的报文关键性信息指向每个传输报文之前的关键帧报文,包括:
在每个重组装报文中增加报文关键性信息对应的关键信息字段,得到至少一个包括排序字段及关键信息字段的传输报文,其中,每个传输报文中的关键信息字段指向每个传输报文之前的关键帧报文中的排序字段。
该实施例下,每个重组装报文中包括对应的排序字段,该排序字段可以标识每个重组装报文的报文排序,如图7所示,3个连续的报文中的排序字段,按照报文右前之后的顺序,依次为Offseti-1、Offseti及Offseti+1。在每个重组装报文中增加报文关键性信息对应的关键信息字段,得到至少一个包括排序字段的传输报文,每个传输报文中的关键信息字段指向每个传输报文之前的关键帧报文中的排序字段,如图7所示,3个报文中的关键信息字段依次为Key_offseti-1、Key_offseti及Key_offseti+1,其中,关键信息字段Key_offseti与排序字段Offseti-1可以具有映射关系,关键信息字段Key_offseti可以指向排序字段Offseti-1。
具体地,一种实施方式中,参阅图7,重组装报文为基于QUIC协议的QUIC报文,每个QUIC报文中可以包括排序字段Offset。在每个QUIC报文中增加报文关键性信息对应的关键信息字段Key_offset,得到包括排序字段Offset及关键信息字段Key_offset的传输报文。
进一步的,每个传输报文中的关键信息字段指向每个传输报文之前的关键帧报文中的排序字段。如图7所示,pkt.i对应的传输报文中的关键信息字段Key_offseti,指向其之前的关键帧报文(pkt.i-1对应的传输报文)中的排序字段Offseti-1。pkt.i+1对应的传输报文中的关键信息字段Key_offseti+1,指向其之前的关键帧报文(pkt.i对应的传输报文)的排序字段Offseti。
进一步的,一种实施例中,服务器还可以:接收终端发送的消息确认报文;若根据消息确认报文确认终端中丢失的传输报文为关键帧报文,则向终端重传丢失的传输报文,关键帧报文为包括关键帧类型的音视频帧中音视频片段的报文;若根据消息确认报文确认终端中丢失的传输报文为非关键帧报文,则不向终端重传丢失的传输报文,非关键帧报文为除关键帧报文之外的传输报文。
终端在接收到传输报文后,根据传输报文中的报文关键性信息可以确定传输过程中是否丢失传输报文以及丢失的传输报文是否为关键帧报文。
一种方式中,若接收到的传输报文中的报文关键性信息所指向的传输报文不存在,则终端中可以确定该不存在的某个传输报文丢失且其为关键帧报文,例如,pkt.i对应的传输报文中的关键信息字段Key_offseti是指向排序字段Offseti-1,但是排序字段Offseti-1对应的传输报文不存在,则排序字段Offseti-1对应的传输报文(即pkt.i-1对应的传输报文)丢失且其为关键帧报文。
另一种方式中,接收到的传输报文A中的报文关键性信息指向的某个传输报文C,但是,传输报文A和传输报文C之间的传输报文B不存在,则确定传输报文B为丢失的非关键帧报文。
终端中根据传输报文的丢失情况,可以生成携带丢失的传输报文的报文信息的消息确认报文,并将该消息确认报文传输至服务器,其中报文信息可以根据实际情况设定。
服务器中,若根据消息确认报文确认终端中丢失的传输报文为关键帧报文,则即刻向终端重传丢失的传输报文,该关键帧报文即包括关键帧类型的音视频帧中音视频片段的传输报文。参阅图8,例如,终端中丢失的pkt.1对应的传输报文为关键帧报文,服务器即刻向终端重传pkt.1对应的传输报文。
服务器中,若根据消息确认报文确认所终端中丢失的传输报文为非关键帧报文,则不向终端重传丢失的传输报文,而可以将未传输的传输报文向终端发送,该非关键帧报文即指的是至少一个传输报文中除关键帧报文之外的传输报文。参阅图9,例如,终端中丢失的pkt.i+1对应的传输报文为非关键帧报文,服务器继续向终端发送未传输的传输报文(例如pkt.j对应的传输报文)。
图10示意性示出了根据本申请的一个实施例的音视频数据传输方法的流程图。该音视频数据传输方法的执行主体可以是任意的终端,例如图1所示的终端102。
如图10所示,该音视频数据传输方法可以包括步骤S310至步骤S320。
步骤S310,接收服务器发送的传输报文,传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,重组装报文为根据音视频帧对应的关键性类型对音视频帧中的音视频片段进行重组装处理得到的,关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;步骤S320,根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
终端中根据接收到的传输报文中的报文关键性信息确定是否等待服务器重传丢失的传输报文,其中,传输报文可以是服务器中根据图2对应的前述实施例,针对待发送音视频数据,通过对音视频帧的类型重配置、音视频片段的重组装处理以及报文关键性信息的添加得到的。以这种方式,基于步骤S310至步骤S320,可以实现对待发送音视频数据实现细粒度的高可靠传输控制,可以实现音视频传输对不同音视频业务的高适配度、传输灵活性强以及音视频卡顿率低等优势,有效提升音视频流量的传输性能,提升用户体验。
一种实施例中,步骤S320,根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文,包括:
检测接收到的传输报文中是否存在丢失的传输报文;若存在,则根据接收到的传输报文中的报文关键性信息,确定丢失的传输报文是否为关键帧报文;若丢失的传输报文为关键帧报文,向服务器发送携带丢失的传输报文的报文信息的消息确认报文,并暂停将接收到的传输报文上送应用层播放器的进程,等待服务器重传丢失的传输报文。
终端中根据接收到的传输报文中的报文排序信息(例如排序字段)等信息可以确定是否存在丢失的传输报文,例如,两个排序之间的传输报文不存在则确定该传输报文丢失。
进一步的,若接收到的传输报文中的报文关键性信息所指向的传输报文指向该丢失的传输报文,则确定丢失的传输报文为关键帧报文,例如,pkt.i对应的传输报文中的关键信息字段Key_offseti是指向排序字段Offseti-1,但是排序字段Offseti-1对应的传输报文不存在,则排序字段Offseti-1对应的传输报文(即pkt.i-1对应的传输报文)为丢失的关键帧报文。
终端中根据传输报文的丢失情况,可以生成携带丢失的传输报文的报文信息的消息确认报文,并将该消息确认报文传输至服务器,其中报文信息可以根据实际情况设定。
进一步的,终端中暂停将接收到的传输报文上送应用层播放器的进程,等待服务器重传丢失的传输报文,参阅图11,例如,终端中在传输层(L4)接收到pkt.2和pkt.3对应的传输报文,但是,丢失pkt.1对应的传输报文,终端中暂停将接收到的pkt.2和pkt.3传输报文上送应用层播放器(App.player),等待服务器重传丢失的pkt.1对应的传输报文。等到接收到pkt.1对应的传输报文,将pkt.1、pkt.2和pkt.3对应的传输报文,从传输层(L4)上送至应用层播放器(App.player)。
进一步的,步骤S320,根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文,还可以包括:若检测到丢失的传输报文为非关键帧报文,则忽略丢失的传输报文,并继续向应用层播放器上送接收到的传输报文。参阅图12,例如,终端中在传输层(L4)接收到pkt.i和pkt.i+2对应的传输报文,但是,丢失pkt.i+1对应的传输报文,pkt.i+1对应的传输报为非关键帧报文,则终端中忽略丢失的pkt.i+1对应的传输报文,并继续将后续的pkt.i+2对应的传输报文上送应用层播放器。
以下结合一种场景下进行音视频数据传输进一步描述前述实施例,该场景下,通过应用本申请的前述实施例进行音视频传输。参阅图13,该场景下音视频传输的步骤包括步骤S410至步骤S4100。该场景下音视频传输的系统架构可以包括终端及服务器,服务器具体可以包括云端服务器及其代理服务器。
步骤S410,终端发送请求。具体地,终端向服务器发送音视频请求,该音视频请求中携带是否支持半可靠传输的传输标识。
步骤S420,服务器判断终端是否支持半可靠传输。具体地,服务器根据接收到的音视频请求中的传输标识判断终端是否支持半可靠传输。
进一步的,若是,则执行步骤S430,即若传输标识指示终端支持半可靠传输,则基于传输传输报文的方式向终端传输待发送音视频数据。若否,则执行步骤S4100,即若传输标识指示终端不支持半可靠传输,则基于原有规则发送,该原有规则可以时现有技术中音视频传输的规则。
步骤S430,识别音视频类型。具体地,服务器中,根据待发送音视频数据中的相关字段,识别出待发送音视频数据中的音视频帧。
步骤S440,组装报文。具体地,服务器中,对待发送音视频数据中的音视频帧进行类型重配置,得到音视频数据中的音视频帧对应的关键性类型;根据音视频帧对应的关键性类型,对音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;根据至少一个重组装报文对应的音视频帧对应的关键性类型,在至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文。
音视频帧包括至少一个视频帧,至少一个视频帧包括帧内编码帧、前向预测帧及双向预测帧;关键性类型包括关键帧类型以及非关键帧类型;对待发送音视频数据中的音视频帧进行类型重配置,得到音视频数据中的音视频帧对应的关键性类型,包括:将帧内编码帧的类型配置为关键帧类型;将候选视频帧的类型配置为关键帧类型,候选视频帧为两个关键帧类型的音视频帧之间预定范围内的前向预测帧及双向预测帧;将剩余视频帧的类型配置为非关键帧类型,剩余视频帧为至少一个视频帧中除候选视频帧之外的前向预测帧及双向预测帧。
音视频帧进一步包括至少一个音频帧;对待发送音视频数据中的音视频帧进行类型重配置,得到音视频数据中的音视频帧对应的关键性类型,进一步包括:将至少一个音频帧的类型配置为关键帧类型。
关键性类型包括关键帧类型和非关键帧类型,根据音视频帧对应的关键性类型,对音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文,包括:将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,各关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将非关键帧类型的音视频帧中的音视频片段划分为至少一个非关键音视频片段组,各非关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将划分得到的关键音视频片段组及非关键音视频片段组分别打包组装成报文,得到至少一个重组装报文。
关键帧类型的音视频帧包括帧内编码帧、候选视频帧以及音频帧中至少一种;关键音视频片段组包括关键视频片段组及关键音频片段组中至少一种;将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,包括以下方式中至少一种:将帧内编码帧中的视频片段分组,得到至少一个关键视频片段组;将候选视频帧中的视频片段分组,得到至少一个关键视频片段组;将音频帧中的音频片段分组,得到至少一个关键音频片段组。
关键性类型包括关键帧类型;根据至少一个重组装报文对应的音视频帧对应的关键性类型,在至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文,包括:在每个重组装报文中添加报文关键性信息,得到至少一个传输报文,其中,每个传输报文中的报文关键性信息指向每个传输报文之前的关键帧报文,关键帧报文为包括关键帧类型的音视频帧中音视频片段的传输报文。
每个重组装报文中包括对应的排序字段;在每个重组装报文中添加报文关键性信息,得到至少一个传输报文,其中,每个传输报文中的报文关键性信息指向每个传输报文之前的关键帧报文,包括:在每个重组装报文中增加报文关键性信息对应的关键信息字段,得到至少一个包括排序字段及关键信息字段的传输报文,其中,每个传输报文中的关键信息字段指向每个传输报文之前的关键帧报文中的排序字段。
步骤S450,发送音频数据。具体地,服务器向终端发送至少一个传输报文。
步骤S460,判断是否丢包,若否,则执行步骤S480,若是,则执行步骤S470。具体地,终端中,检测接收到的传输报文中是否存在丢失的传输报文;若不存在,继续执行步骤步骤S480;若存在,则执行步骤S470。
步骤S470,判断是否关键帧丢失,若否,则执行步骤S480,若是,则执行步骤S490。具体地,终端中,根据接收到的传输报文中的报文关键性信息,确定丢失的传输报文是否为关键帧报文;若丢失的传输报文是关键帧报文,则执行步骤S490;若丢失的传输报文不是关键帧报文,则执行步骤S480。
步骤S480,数据上送应用层。具体地,终端忽略丢失的传输报文,并继续向应用层播放器上送接收到的传输报文。
步骤S490,等待重传。具体地,终端向服务器发送携带丢失的传输报文的报文信息的消息确认报文,并暂停将接收到的传输报文上送应用层播放器的进程,等待服务器重传丢失的传输报文。其中,服务器中,接收终端发送的消息确认报文;若根据消息确认报文确认终端中丢失的传输报文为关键帧报文,则向终端重传丢失的传输报文,关键帧报文为包括关键帧类型的音视频帧中音视频片段的报文;若根据消息确认报文确认终端中丢失的传输报文为非关键帧报文,则不向终端重传丢失的传输报文,非关键帧报文为除关键帧报文之外的传输报文。
以这种方式,该场景下,通过应用本申请的前述实施例,至少具有如下有益效果:实现音视频传输对不同音视频业务的高适配度、传输灵活性强以及音视频卡顿率低等优势,有效提升音视频流量的传输性能,提升用户体验。
为便于更好的实施本申请实施例提供的音视频数据传输方法,本申请实施例还提供一种基于上述音视频数据传输方法的音视频数据传输装置。其中名词的含义与上述音视频数据传输方法中相同,具体实现细节可以参考方法实施例中的说明。图14示出了根据本申请的一个实施例的音视频数据传输装置的框图。
如图14所示,音视频数据传输装置500中可以包括检测模块510、配置模块520、组装模块530、添加模块540以及传输模块550。
检测模块,用于根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;配置模块,用于对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;组装模块,用于根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;添加模块,用于根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;传输模块,用于向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息,确定是否等待所述服务器重传丢失的传输报文。
在本申请的一些实施例中,所述音视频帧包括至少一个视频帧,所述至少一个视频帧包括帧内编码帧、前向预测帧及双向预测帧;所述关键性类型包括关键帧类型以及非关键帧类型;所述配置模块,用于:将所述帧内编码帧的类型配置为关键帧类型;将候选视频帧的类型配置为关键帧类型,所述候选视频帧为两个关键帧类型的音视频帧之间预定范围内的所述前向预测帧及双向预测帧;将剩余视频帧的类型配置为非关键帧类型,所述剩余视频帧为所述至少一个视频帧中除所述候选视频帧之外的所述前向预测帧及双向预测帧。
在本申请的一些实施例中,所述音视频帧包括至少一个音频帧;所述配置模块,用于:将所述至少一个音频帧的类型配置为关键帧类型。
在本申请的一些实施例中,所述关键性类型包括关键帧类型和非关键帧类型,所述组装模块,用于:将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,各所述关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将非关键帧类型的音视频帧中的音视频片段划分为至少一个非关键音视频片段组,各所述非关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;将划分得到的所述关键音视频片段组及所述非关键音视频片段组分别打包组装成报文,得到所述至少一个重组装报文。
在本申请的一些实施例中,所述关键帧类型的音视频帧包括帧内编码帧、候选视频帧以及音频帧中至少一种;所述关键音视频片段组包括关键视频片段组及关键音频片段组中至少一种;所述组装模块,用于:将所述帧内编码帧中的视频片段分组,得到至少一个关键视频片段组;将所述候选视频帧中的视频片段分组,得到至少一个关键视频片段组;将所述音频帧中的音频片段分组,得到至少一个关键音频片段组。
在本申请的一些实施例中,所述关键性类型包括关键帧类型;添加模块,用于:在每个所述重组装报文中添加报文关键性信息,得到所述至少一个传输报文,其中,每个所述传输报文中的报文关键性信息指向每个所述传输报文之前的关键帧报文,所述关键帧报文为包括关键帧类型的音视频帧中音视频片段的传输报文。
在本申请的一些实施例中,每个所述重组装报文中包括对应的排序字段;所述添加模块,用于:在每个所述重组装报文中增加报文关键性信息对应的关键信息字段,得到所述至少一个包括排序字段及关键信息字段的传输报文,其中,每个所述传输报文中的关键信息字段指向每个所述传输报文之前的关键帧报文中的所述排序字段。
在本申请的一些实施例中,所述装置还包括重传模块,用于:接收所述终端发送的消息确认报文;若根据所述消息确认报文确认所述终端中丢失的传输报文为关键帧报文,则向所述终端重传丢失的传输报文,所述关键帧报文为包括关键帧类型的音视频帧中音视频片段的报文;若根据所述消息确认报文确认所述终端中丢失的传输报文为非关键帧报文,则不向所述终端重传丢失的传输报文,所述非关键帧报文为除所述关键帧报文之外的传输报文。
在本申请的一些实施例中,所述装置还包括规则确认模块,用于:接收所述终端发送的音视频请求,所述音视频请求中携带是否支持半可靠传输的传输标识;若所述传输标识指示所述终端支持半可靠传输,则基于传输所述传输报文的方式向所述终端传输所述待发送音视频数据。
在本申请的一些实施例中,检测模块,用于:将所述待发送音视频数据从应用层传递至传输层;在所述传输层根据待发送音视频数据中的相关字段识别出所述所述待发送音视频数据中的音视频帧,以在所述传输层基于检测到的所述音视频帧生成所述传输报文向所述终端发送。
参阅图15,根据本申请的另一个实施例,一种音视频数据传输装置600,应用于终端,其包括:接收模块610,用于接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;确定模块620,用于根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
在本申请的一些实施例中,确定模块,用于:检测接收到的传输报文中是否存在丢失的传输报文;若存在,则根据接收到的传输报文中的报文关键性信息,确定丢失的传输报文是否为关键帧报文;若丢失的传输报文为关键帧报文,向服务器发送携带丢失的传输报文的报文信息的消息确认报文,并暂停将接收到的传输报文上送应用层播放器的进程,等待所述服务器重传丢失的传输报文。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图16所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703和输入单元704等部件。本领域技术人员可以理解,图16中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器701是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行检测。可选的,处理器701可包括一个或多个处理核心;优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
电子设备还包括给各个部件供电的电源703,优选的,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元704,该输入单元704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器701会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的计算机程序,从而实现本申请前述实施例的各种功能。
如处理器701可以执行:根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;对所述音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息确定是否等待所述服务器重传丢失的传输报文。
如处理器701可以执行:接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请上述实施例中各种可选实现方式中提供的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。
Claims (17)
1.一种音视频数据传输方法,其特征在于,应用于服务器,所述方法包括:
根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;
对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;
根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;
根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;
向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息,确定是否等待所述服务器重传丢失的传输报文。
2.根据权利要求1所述的方法,其特征在于,所述音视频帧包括至少一个视频帧,所述至少一个视频帧包括帧内编码帧、前向预测帧及双向预测帧;所述关键性类型包括关键帧类型以及非关键帧类型;
所述对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型,包括:
将所述帧内编码帧的类型配置为关键帧类型;
将候选视频帧的类型配置为关键帧类型,所述候选视频帧为两个关键帧类型的音视频帧之间预定范围内的所述前向预测帧及双向预测帧;
将剩余视频帧的类型配置为非关键帧类型,所述剩余视频帧为所述至少一个视频帧中除所述候选视频帧之外的所述前向预测帧及双向预测帧。
3.根据权利要求2所述的方法,其特征在于,所述音视频帧包括至少一个音频帧;所述对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型,包括:
将所述至少一个音频帧的类型配置为关键帧类型。
4.根据权利要求1所述的方法,其特征在于,所述关键性类型包括关键帧类型和非关键帧类型,所述根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文,包括:
将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,各所述关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;
将非关键帧类型的音视频帧中的音视频片段划分为至少一个非关键音视频片段组,各所述非关键音视频片段组中的音视频片段满足个数相等及连续中至少一种;
将划分得到的所述关键音视频片段组及所述非关键音视频片段组分别打包组装成报文,得到所述至少一个重组装报文。
5.根据权利要求4所述的方法,其特征在于,所述关键帧类型的音视频帧包括帧内编码帧、候选视频帧以及音频帧中至少一种;所述关键音视频片段组包括关键视频片段组及关键音频片段组中至少一种;
所述将关键帧类型的音视频帧中的音视频片段划分为至少一个关键音视频片段组,包括以下方式中至少一种:
将所述帧内编码帧中的视频片段分组,得到至少一个关键视频片段组;
将所述候选视频帧中的视频片段分组,得到至少一个关键视频片段组;
将所述音频帧中的音频片段分组,得到至少一个关键音频片段组。
6.根据权利要求1所述的方法,其特征在于,所述关键性类型包括关键帧类型;所述根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文,包括:
在每个所述重组装报文中添加报文关键性信息,得到所述至少一个传输报文,其中,每个所述传输报文中的报文关键性信息指向每个所述传输报文之前的关键帧报文,所述关键帧报文为包括关键帧类型的音视频帧中音视频片段的传输报文。
7.根据权利要求6所述的方法,其特征在于,每个所述重组装报文中包括对应的排序字段;所述在每个所述重组装报文中添加报文关键性信息,得到所述至少一个传输报文,其中,每个所述传输报文中的报文关键性信息指向每个所述传输报文之前的关键帧报文,包括:
在每个所述重组装报文中增加报文关键性信息对应的关键信息字段,得到所述至少一个包括排序字段及关键信息字段的传输报文,其中,每个所述传输报文中的关键信息字段指向每个所述传输报文之前的关键帧报文中的所述排序字段。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述终端发送的消息确认报文;
若根据所述消息确认报文确认所述终端中丢失的传输报文为关键帧报文,则向所述终端重传丢失的传输报文,所述关键帧报文为包括关键帧类型的音视频帧中音视频片段的报文;
若根据所述消息确认报文确认所述终端中丢失的传输报文为非关键帧报文,则不向所述终端重传丢失的传输报文,所述非关键帧报文为除所述关键帧报文之外的传输报文。
9.根据权利要求1所述的方法,其特征在于,在所述检测待发送音视频数据中的音视频帧之前,所述方法还包括:
接收所述终端发送的音视频请求,所述音视频请求中携带是否支持半可靠传输的传输标识;
若所述传输标识指示所述终端支持半可靠传输,则基于传输所述传输报文的方式向所述终端传输所述待发送音视频数据。
10.根据权利要求1至9任一项所述的方法,其特征在于,根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧,包括:
将所述待发送音视频数据从应用层传递至传输层;
在所述传输层根据所述待发送音视频数据中的相关字段识别出所述待发送音视频数据中的音视频帧,以在所述传输层基于检测到的所述音视频帧生成所述传输报文向所述终端发送。
11.一种音视频数据传输方法,其特征在于,应用于终端,所述方法包括:
接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;
根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
12.根据权利要求11所述的方法,其特征在于,所述根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文,包括:
检测接收到的传输报文中是否存在丢失的传输报文;
若存在,则根据接收到的传输报文中的报文关键性信息,确定丢失的传输报文是否为关键帧报文;
若丢失的传输报文为关键帧报文,向服务器发送携带丢失的传输报文的报文信息的消息确认报文,并暂停将接收到的传输报文上送应用层播放器的进程,等待所述服务器重传丢失的传输报文。
13.一种音视频数据传输装置,其特征在于,应用于服务器,所述装置包括:
检测模块,用于根据待发送音视频数据中的相关字段,识别出所述待发送音视频数据中的音视频帧;
配置模块,用于对所述待发送音视频数据中的音视频帧进行类型重配置,得到所述音视频数据中的音视频帧对应的关键性类型;
组装模块,用于根据所述音视频帧对应的关键性类型,对所述音视频帧中的音视频片段进行重组装处理,得到至少一个重组装报文;
添加模块,用于根据所述至少一个重组装报文对应的音视频帧对应的关键性类型,在所述至少一个重组装报文中添加报文关键性信息,得到至少一个传输报文;
传输模块,用于向终端发送所述至少一个传输报文,所述传输报文用于使所述终端根据接收到的传输报文中的报文关键性信息,确定是否等待所述服务器重传丢失的传输报文。
14.一种音视频数据传输装置,其特征在于,应用于终端,所述装置包括:
接收模块,用于接收服务器发送的传输报文,所述传输报文为根据重组装报文对应的音视频帧对应的关键性类型在重组装报文中添加报文关键性信息得到的,所述重组装报文为根据音视频帧对应的关键性类型对所述音视频帧中的音视频片段进行重组装处理得到的,所述关键性类型为对待发送音视频数据中的音视频帧进行类型重配置得到的;
确定模块,用于根据接收到的传输报文中的报文关键性信息,确定是否等待服务器重传丢失的传输报文。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至12任一项所述的方法。
16.一种电子设备,其特征在于,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行权利要求1至12任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至12任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211111754.5A CN117750149A (zh) | 2022-09-13 | 2022-09-13 | 音视频数据传输方法、装置、存储介质、电子设备及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211111754.5A CN117750149A (zh) | 2022-09-13 | 2022-09-13 | 音视频数据传输方法、装置、存储介质、电子设备及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117750149A true CN117750149A (zh) | 2024-03-22 |
Family
ID=90259642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211111754.5A Pending CN117750149A (zh) | 2022-09-13 | 2022-09-13 | 音视频数据传输方法、装置、存储介质、电子设备及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117750149A (zh) |
-
2022
- 2022-09-13 CN CN202211111754.5A patent/CN117750149A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218654B (zh) | 一种视联网会议控制方法及系统 | |
CN109889543B (zh) | 视频传输的方法、根节点、子节点、p2p服务器和系统 | |
CN110502259B (zh) | 服务器版本升级方法、视联网系统、电子设备及存储介质 | |
CN108540816B (zh) | 一种直播视频获取方法、装置及存储介质 | |
CN112804707B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
US20110085602A1 (en) | Video Communication System, Device and Method Based on Feedback Reference Frames | |
CN107819833B (zh) | 一种接入直播连麦的方法及装置 | |
CN112787945B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
CN108574818B (zh) | 一种信息显示的方法、装置和服务器 | |
CN111263239B (zh) | 视频帧丢包的处理方法及相关装置 | |
CN115209231B (zh) | 数据传输方法、装置、设备和计算机可读存储介质 | |
US20070160048A1 (en) | Method for providing data and data transmission system | |
CN109788247B (zh) | 一种监控指令识别的方法和装置 | |
CN112804710A (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
CN111866526A (zh) | 一种直播业务处理方法和装置 | |
CN110166742B (zh) | 基于视联网的视频发布方法和装置 | |
CN111596940B (zh) | 一种版本升级方法、装置、电子设备及存储介质 | |
CN117750149A (zh) | 音视频数据传输方法、装置、存储介质、电子设备及产品 | |
CN114979793B (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
CN113489786B (zh) | 一种长连接网络弱网重连方法、重发方法 | |
CN102325249B (zh) | 应用于视频监控系统的实时监控方法及视频管理服务器 | |
CN103051962B (zh) | 录制节目方法和设备 | |
CN110691214B (zh) | 一种业务对象的数据处理方法和装置 | |
CN101409832B (zh) | 一种视频数据的传输方法和装置 | |
CN109525870A (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 |