CN112954255A - 视频会议码流的传输方法、装置、计算机设备和存储介质 - Google Patents
视频会议码流的传输方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112954255A CN112954255A CN202110126459.6A CN202110126459A CN112954255A CN 112954255 A CN112954255 A CN 112954255A CN 202110126459 A CN202110126459 A CN 202110126459A CN 112954255 A CN112954255 A CN 112954255A
- Authority
- CN
- China
- Prior art keywords
- packet
- data packet
- data
- packets
- original
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000004806 packaging method and process Methods 0.000 claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012856 packing Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- 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/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- 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/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及一种视频会议码流的传输方法、装置、计算机设备和存储介质。所述方法包括:接收到发送端发送的数据包;对所述数据包进行冗余解码,得到对应的原始数据包;根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。采用本方法能够有效的解决FEC模式下造成延时大的问题,从而有效的提高视频会议码流的传输效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频会议码流的传输方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,5G时代的来临,互联网的出现给现代生活带来了极大的便利,越来越多的企业可以通过使用在线平台与多个用户终端进行实时的视频通讯,例如,视频直播、视频会议等。
然而,目前的视频会议码流的传输方式中,视频数据包传输所经过的网络,往往是许多复杂的异构的网络所组成,而数据包一般采用明文传输方式,使得传输不可靠,常常伴随丢包的现象。当出现丢包情况时,通常采用前向纠错(FEC)技术进行丢包恢复,为了恢复有效的原始包,会进行一定数量的屯包处理,屯包恢复时数据无法进行实时的处理,这样便会引入延时,屯包数量越多,延时就越大,因而容易导致视频会议码流的传输效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高传输效率的视频会议码流的传输方法、装置、计算机设备和存储介质。
一种视频会议码流的传输方法,所述方法包括:
接收到发送端发送的数据包;
对所述数据包进行冗余解码,得到对应的原始数据包;
根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。
在其中一个实施例中,所述接收到发送端发送的数据包之前,所述方法还包括:
接收到所述发送端发送的视频会话的呼叫请求,所述呼叫请求中携带所述发送端的能力集参数;
将所述发送端的能力参数与自身支持的能力集参数取交集,得到目标能力集参数;所述目标能力集参数包括拆分包的数量;
与所述发送端建立呼叫连接,并按照所述目标能力集参数中的拆分包的数量进行数据传输。
在其中一个实施例中,所述原始数据包头部信息中的标识信息包括所述原始数据包对应的分组号和组内编号;
所述根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理包括:
根据所述分组号和组内编号,判断所述原始数据包是否为当前分组内的第一个数据包;
若所述原始数据包是当前分组内的第一个数据包,则将所述原始数据包进行保存,并继续校验下一个数据包,直至接收到当前分组内所有连续编号的数据包进行组包处理。
在其中一个实施例中,所述判断所述原始数据包是否为当前分组内的第一个数据包,还包括:
若所述原始数据包不是当前分组内的第一个数据包,则判断所述原始数据包与上一个数据包的组号是否一致;
若组号一致,则判断所述原始数据包是否为同分组内连续编号的数据包;
若是所述同分组内连续编号的数据包,则对所述原始数据包进行组包处理;
若不是所述同分组内连续编号的数据包,则将所述原始数据包所在的组内的所有数据包丢弃,并继续校验下一个数据包。
在其中一个实施例中,所述判断所述原始数据包与上一个数据包的组号是否一致包括:
若组号不一致,则判断是否为新的分组;
若是新的分组,则判断是否为所述新的分组内的第一个数据包;
若是所述新的分组内的第一个数据包,则将所述原始数据包进行保存,并继续校验下一个数据包,直至接收到同组内所有连续编号的数据包进行组包处理。
一种视频会议码流的传输装置,所述装置包括:
接收模块,用于接收到发送端发送的数据包;
解码模块,用于对所述数据包进行冗余解码,得到对应的原始数据包;
组包模块,用于根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收到发送端发送的数据包;
对所述数据包进行冗余解码,得到对应的原始数据包;
根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收到发送端发送的数据包;
对所述数据包进行冗余解码,得到对应的原始数据包;
根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。
一种视频会议码流的传输方法,所述方法包括:
根据与所述接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包;
在所述拆分后的数据包的头部信息中添加标识信息;所述标识信息包括分组信息和组内编号信息;
对所述拆分后的数据包进行冗余编码,得到对应的冗余包;
将所述拆分后的数据包和所述冗余包发送至所述接收端。
一种视频会议码流的传输装置,所述装置包括:
拆分模块,用于根据与所述接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包;
添加模块,用于在所述拆分后的数据包的头部信息中添加标识信息;所述标识信息包括分组信息和组内编号信息;
编码模块,用于对所述拆分后的数据包进行冗余编码,得到对应的冗余包;
发送模块,用于将所述拆分后的数据包和所述冗余包发送至所述接收端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据与所述接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包;
在所述拆分后的数据包的头部信息中添加标识信息;所述标识信息包括分组信息和组内编号信息;
对所述拆分后的数据包进行冗余编码,得到对应的冗余包;
将所述拆分后的数据包和所述冗余包发送至所述接收端。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
根据与所述接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包;
在所述拆分后的数据包的头部信息中添加标识信息;所述标识信息包括分组信息和组内编号信息;
对所述拆分后的数据包进行冗余编码,得到对应的冗余包;
将所述拆分后的数据包和所述冗余包发送至所述接收端。
上述视频会议码流的传输方法、装置、计算机设备和存储介质,通过接收到发送端发送的数据包,在一定条件下对数据包进行冗余解码,得到对应的原始数据包,并根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据,标识信息包括分组信息和组内编号信息。由此使得,当出现丢包情况恢复有效的原始包时,能够根据数据包的包头信息重组为一帧数据,每发送一帧数据引入的延时被拆分,虽然会引入少量的带宽,但大大减少了丢包恢复时引入的延迟时间,解决了基于FEC方式下的音频传输延迟过大的问题,从而有效的提高了视频会议码流的传输效率。
上述视频会议码流的传输方法、装置、计算机设备和存储介质,发送端根据与接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包。发送端在拆分后的数据包的头部信息中添加标识信息,标识信息包括分组信息和组内编号信息。发送端对拆分后的一定量的原始数据包进行冗余编码,得到对应的冗余包,并将拆分后的一定量的原始数据包和冗余包发送至接收端。由此,通过已协商的拆包策略,使得每发送一帧数据引入的延时被拆分,虽然会引入少量的带宽,但大大减少了丢包恢复时引入的延迟时间,即利用拆分包功能来实现降延时处理,从而有效的提高了视频会议码流的传输效率。
附图说明
图1为一个实施例中视频会议码流的传输方法的应用环境图;
图2为一个实施例中视频会议码流的传输方法的流程示意图;
图3为一个实施例中与发送端建立呼叫连接步骤的流程示意图;
图4为一个实施例中根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理步骤的流程示意图;
图5为一个实施例中判断原始数据包是否为当前分组内的第一个数据包步骤的流程示意图;
图6A为另一个实施例中视频会议码流的传输方法的流程示意图;
图6B为一个实施例中发送端与接收端进行视频会话时的处理流程示意图;
图7为一个实施例中视频会议码流的传输装置的结构框图;
图8为另一个实施例中视频会议码流的传输装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的视频会议码流的传输方法,可以应用于如图1所示的应用环境中。其中,发送端102通过网络与接收端104通过网络进行通信。接收端104接收到发送端102发送的数据包。在一定条件下接收端104对数据包进行冗余解码,得到对应的原始数据包。接收端104根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据,标识信息包括分组信息和组内编号信息。其中,发送端102和接收端104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,如图2所示,提供了一种视频会议码流的传输方法,以该方法应用于图1中的接收端为例进行说明,包括以下步骤:
步骤202,接收到发送端发送的数据包。
在H.323和SIP标准音视频会议系统中,通话双方能及时听清对端的声音是很有必要的。但当网络状况不太好时,则会出现数据包丢失的情况,对于这种丢包现象,可以采用前向纠错(FEC)技术来进行丢包恢复。前向纠错也叫前向纠错码(Forward ErrorCorrection,简称FEC),是增加数据通讯可信度的方法。前向纠错编码(FEC)技术通过在传输码列中加入冗余纠错码,在一定条件下,通过解码可以自动纠正传输误码,降低接收信号的误码率(BER)。即FEC是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许接收器再建数据。FEC技术的基本原理是:发送方通过输入N个原始包的分组后,进行FEC编码引入一定数量的冗余包,将这些原始包和冗余包一起进行传输,接收方总共只需要收到不少于N个包(即不少于原始包的个数),即可进行FEC解码并恢复丢失的原始包,从而抵抗信道带来的干扰,增加数据通讯可信度。
具体的,接收端可以接收到发送端发送的数据包,即接收端接收到对端发送的数据包。其中,数据包是指Packet,是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。本申请中基于FEC模式下的数据包可以包括原始数据包和冗余数据包。视频会话呼叫的双方可以预先通过协议栈协商出双方支持的拆分包功能,并确定对应的拆分包个数。根据FEC原理可知,同一个FEC分组内,丢包后接收端需要收到不少于原始包的个数才能进行恢复,少于这个数量则无法进行恢复,所以需要屯包进行FEC解码恢复原始包后,再统一发给下一个环节进行处理。例如,接收端与发送端预先协商的拆分包个数为5,发送端输入12个原始包进行冗余编码后,将原始包和得到的冗余包进行发送,则接收端可以接收到对端按照预先协商的拆分包个数进行拆包处理后传输的数据包,在丢包情况下,当接收端接收到的数据包(同一FEC分组内)不少于12个包时,即可进行下一个环节的冗余解码处理。
步骤204,对数据包进行冗余解码,得到对应的原始数据包。
接收端接收到对端发送的数据包之后,在丢包情况下接收端可以对数据包进行冗余解码,得到对应的原始数据包。其中,在FEC控制方式下,信号在被送入传输信道之前预先按一定的算法进行编码处理,加入带有信号本身特征的冗码,冗余解码是指接收端按照相应算法对接收到的信号进行解码,得到对应的原始数据包。即接收端基于FEC技术,对数据包进行冗余解码,得到对应的原始数据包。具体的,假设接收端与发送端预先协商的拆分包个数为5,发送端输入的原始包的个数为12,则接收端可以接收到对端按照预先协商的拆分包个数进行拆包处理后传输的数据包,当出现丢包时,接收端对接收到的数据包进行屯包,当同一FEC分组内不少于12个包时(即不少于原始包的个数),即可进行FEC解码并恢复丢失的原始包。
步骤206,根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据,标识信息包括分组信息和组内编号信息。
接收端对数据包进行冗余解码,得到对应的原始数据包之后,接收端可以根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据,标识信息包括分组信息和组内编号信息。具体的,发送端可以根据协商好的能力集参数中的拆分包个数进行拆包处理,再根据一定量的拆分后的原始数据包进行冗余编码,得到一定量的冗余包,再将原始包和冗余包进行数据传输。发送端将每一帧数据拆分为预设数量的数据包,再通过冗余编码处理后,对原始包和冗余包进行发送,接收端接收到数据包后,需要将拆分后的数据包组成一帧数据,再进行后面的数据处理。例如,发送端将一帧数据拆分为5个数据包,并在每个数据包的头部信息中添加四个字节的标识信息,即该标识信息包括分组信息和组内编号信息,发送端将上述拆分后的一定量的原始数据包和冗余包进行发送。接收端接收到发送端传输的数据之后,接收端可以根据每个原始数据包头部信息中的分组信息和组内编号信息,对原始数据包进行组包处理,即接收端根据每个原始数据包的前四个字节的头部信息,解析出对应的分组号和组内编号,根据解析出的每个原始数据包对应的分组号和组内编号,将已拆分的数据包进行组包处理,得到对应的一帧数据。
本实施例中,通过接收到发送端发送的数据包,在丢包情况下对数据包进行冗余解码,得到对应的原始数据包,并根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据,标识信息包括分组信息和组内编号信息。由此,通过头部信息中的标识信息,能够快速判断是否为同一帧数据,实现了更加准确的进行组包处理,有效的解决了FEC模式下造成延时大的问题,从而有效的提高了视频会议码流的传输效率。
在一个实施例中,如图3所示,与发送端建立呼叫连接的步骤,包括:
步骤302,接收到发送端发送的视频会话的呼叫请求,呼叫请求中携带发送端的能力集参数。
步骤304,将发送端的能力参数与自身支持的能力集参数取交集,得到目标能力集参数,目标能力集参数包括拆分包的数量。
步骤306,与发送端建立呼叫连接,并按照目标能力集参数中的拆分包的数量进行数据传输。
接收端接收到对端发送的数据包之前,接收端与发送端建立呼叫连接。具体的,接收端接收到发送端发送的视频会话的呼叫请求,呼叫请求中携带发送端的能力集参数。接收端将发送端的能力参数与自身支持的能力集参数取交集,得到目标能力集参数,目标能力集参数包括拆分包的数量。接收端与发送端建立呼叫连接,并按照目标能力集参数中的拆分包的数量进行拆包和冗余编码处理后的数据包进行数据传输。即当发送端与接收端建立呼叫连接之后,发送端按照目标能力集参数中的拆分包的数量进行拆包和冗余编码处理,再对原始包和冗余包进行数据传输,在丢包情况下,当接收端收到不少于原始包的个数的数据包(同一个FEC分组内的数据包)时,接收端对接收到的数据包进行冗余解码,恢复丢失的原始包。在FEC模式下,当出现丢包情况时,为了恢复有效的原始包,会进行一定数量的屯包进行处理,这样便会引入一定的延时,数据包发送是实时的,并有一定的时间周期,屯包进行恢复则会使数据无法进行实时的处理,这样屯的包数越大延时就越大,使得用户体验变差,容易造成会议无法正常进行。而本实施例中,通过协商拆分包的数量,使得每发送一帧数据引入的延时被拆分,虽然会引入少量的带宽,但大大减少了丢包恢复时引入的延迟时间,即利用拆分包功能来实现降延时处理,从而有效解决了FEC下造成延时大的问题。
在一个实施例中,如图4所示,原始数据包头部信息中的标识信息包括原始数据包对应的分组号和组内编号,根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理的步骤,包括:
步骤402,根据分组号和组内编号,判断原始数据包是否为当前分组内的第一个数据包。
步骤404,若原始数据包是当前分组内的第一个数据包,则将原始数据包进行保存,并继续校验下一个数据包,直至接收到当前分组内所有连续编号的数据包进行组包处理。
接收端可以根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据。其中,原始数据包头部信息中的标识信息包括原始数据包对应的分组号和组内编号,则接收端可以根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理。分组号是指同一个FEC分组对应的编号,同一个FEC分组指的是进行FEC编码时,同一时刻进行编码的一组数据为同一组数据。
具体的,接收端可以根据原始数据包头部信息中的分组号和组内编号,判断该原始数据包是否为当前分组内的第一个数据包。若该原始数据包是当前分组内的第一个数据包,则将原始数据包进行保存,并继续校验下一个数据包,直至接收到当前分组内所有连续编号的数据包进行组包处理。例如,当接收端解码得到对应的原始数据包之后,接收端可以根据每个数据包前四个字节的头部信息,解析出该数据包对应的分组号和组内编号。假设分组编号和组内编号均从0开始,则第一个组对应的分组号为0,同组内第一个数据包对应的组内编号为0。接收端可以根据该数据包头部信息的前四个字节解析出的分组号和组内编号,根据组内编号来判断该数据包是否为当前分组内的第一个数据包。假设已协商的目标能力集参数对应的拆分包的数量为5,则每个拆分后的数据包的组内编号为0~4。进一步的,接收端可以根据该数据包对应的组内编号,判断该原始数据包是否为当前分组(分组号为0)内的第一个数据包(即组内编号是否为0)。若判定该原始数据包是当前分组内的第一个数据包,则将该原始数据包进行保存,并继续校验下一个数据包,直至接收到当前分组内所有连续编号的数据包进行组包处理。若判定该原始数据包不是当前分组内的第一个数据包,即判断该原始数据包对应的组内编号不为0时,则需要进一步判断该原始数据包与上一个数据包的组号是否一致。由此,通过头部信息中的标识信息,能够快速判断是否为同一帧数据,实现了更加准确的进行组包处理,有效的解决了FEC模式下造成延时大的问题。
在一个实施例中,如图5所示,判断原始数据包是否为当前分组内的第一个数据包的步骤,还包括:
步骤502,若原始数据包不是当前分组内的第一个数据包,则判断原始数据包与上一个数据包的组号是否一致。
步骤504,若组号一致,则判断原始数据包是否为同分组内连续编号的数据包。
步骤506,若是同分组内连续编号的数据包,则对原始数据包进行组包处理。
步骤508,若不是同分组内连续编号的数据包,则将原始数据包所在的组内的所有数据包丢弃,并继续校验下一个数据包。
接收端可以根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据。具体的,接收端可以根据原始数据包头部信息中的分组号和组内编号,判断该原始数据包是否为当前分组内的第一个数据包,若是,则表明该数据包有效即为当前组内的第一组内编号对应的数据包,将该数据包保存后进行组包处理并继续校验下一个数据包。若该原始数据包不是当前分组内的第一个数据包,则接收端可以判断该数据包与上一个数据包的组号是否一致。若组号一致,则接收端进一步判断该数据包是否为同分组内连续编号的数据包。若是同分组内连续编号的数据包,则判断是否已收到同组内所有连续的数据包,若是,则接收端对该数据包进行组包处理,若不是则继续校验下一个数据包。若不是同分组内连续编号的数据包,则接收端将该数据包所在的组内的已收到的所有数据包丢弃,并继续校验下一个数据包。
例如,假设上一个数据包对应的分组号为0,组内编号为0。接收端根据当前接收到的数据包头部信息中的前四个字节解析出的分组号为0,即接收端判定该数据包与上一个数据包的组号一致(均为0),则接收端进一步判断该数据包是否为同分组内连续编号的数据包。即判断该数据包对应的组内编号是否为上一个数据包对应的组内编号基础上加1,上一个数据包对应的组内编号为0,则判断当前数据包对应的组内编号是否为1,若是,则为连续包。即接收端判定当前数据包是同分组内连续编号的数据包,则判断是否已收到同组内所有连续的数据包,若是则接收端对该数据包进行组包处理,若不是则继续校验下一个数据包。若接收端判定当前数据包不是同分组内连续编号的数据包,即当前数据包对应的组内编号不为1,则说明当前数据包不为连续包,则接收端将该数据包所在的组内的已收到的所有数据包丢弃,并继续校验下一个数据包。由此,通过头部信息中的标识信息,能够快速判断是否为同一帧数据,实现了更加准确的进行组包处理,有效的解决了FEC模式下造成延时大的问题。
在其中一个实施例中,判断原始数据包与上一个数据包的组号是否一致的步骤,包括:
若组号不一致,则判断是否为新的分组。
若是新的分组,则判断是否为新的分组内的第一个数据包。
若是新的分组内的第一个数据包,则将原始数据包进行保存,并继续校验下一个数据包,直至接收到同组内所有连续编号的数据包进行组包处理。
接收端可以根据原始数据包头部信息中的分组号和组内编号,判断该原始数据包是否为当前分组内的第一个数据包,若是,则表明该数据包有效即为当前组内的第一组内编号对应的数据包,将该数据包保存后进行组包处理并继续校验下一个数据包。进一步的,接收端可以继续校验下一个接收到的数据包。接收端可以判断该数据包与上一个数据包的组号是否一致。具体的,若组号不一致,则接收端判断该数据包是否为新的分组。若是新的分组,则接收端进一步判断是否为新的分组内的第一个数据包。若是新的分组内的第一个数据包,则接收端将该数据包进行保存,并继续校验下一个数据包,直至接收到同组内所有连续编号的数据包进行组包处理。即当判定该数据包不是与上一个记录下来的数据包为同一分组内的连续编号,则进一步判断该数据包是否为新的分组,若不是新的分组,则说明该数据包与上一个数据包为同一分组且不连续,即同组内出现数据包丢失的情况,需要丢掉该组内所有的数据包。若是新的分组,则进一步判断是否为新的组内的第一个数据包,若不是组内第一个数据包,说明同组内数据包丢失,需要丢掉该组数据包,进行下一个数据包的校验。若是新的组内的第一个数据包,则保存下来,并继续进行下一个数据包的校验,直至收到同组内所有连续编号的数据包后进行组包处理,组包为一帧数据进行下一个环节的处理。即接收端在处理数据包时,会记录前一个数据包的分组号和组内编号,当再次收到数据包时会判断当前数据包的分组号与前一个数据包的分组号是否一致,不一致则是新的分组。由此,通过头部信息中的分组号信息,能够快速判断是否为同一帧数据,实现了更加准确的进行组包处理,有效的解决了FEC模式下造成延时大的问题。
在一个实施例中,如图6A所示,提供了一种视频会议码流的传输方法,以该方法应用于图1中的发送端为例进行说明,包括以下步骤:
步骤602,根据与接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包。
步骤604,在拆分后的数据包的头部信息中添加标识信息,标识信息包括分组信息和组内编号信息。
步骤606,对拆分后的数据包进行冗余编码,得到对应的冗余包。
步骤608,将拆分后的数据包和冗余包发送至接收端。
视频会话呼叫的双方可以预先协商对应的标准,即呼叫请求时会分别向双方请求各自支持的能力集参数,当确认双方都有相同的能力集参数时,则下发打开此功能的参数和拆分包个数。即视频会话呼叫的双方可以通过协议栈协商出拆分包功能,并确定对应的拆分包数量,发送端根据与接收端已协商确定的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包。发送端在拆分后的数据包的头部信息中添加标识信息,标识信息包括分组信息和组内编号信息。进一步的,发送端对拆分后的一定量的原始数据包进行冗余编码,得到对应的冗余包,并将拆分后的一定量的原始数据包和冗余包发送至接收端。
如图6B所示,为发送端与接收端进行视频会话时的处理流程示意图。假设呼叫双方协商确定的拆分包的数量为a。当视频会话呼通后,即发送端与接收端建立呼叫连接之后,发送端将每一帧数据拆分为a个数据包,并在每个数据包中添加四个字节的头部信息,即前两个字节填充分组号,后两个字节填充组内编号,从而将一帧数据拆分后得到对应的a个数据包。进一步的,发送端可以基于FEC的编码功能,根据拆分后的N个数据包,计算出额外的冗余包个数K,然后再将(N+K)个数据包发送至对端。假设发送端输入的原始包的个数为12,则当对端接收到不少于12个数据包(即同一个FEC分组内的不少于原始包的个数)时,对端对接收到的数据包进行冗余解码,恢复丢失的原始包。每一帧数据在发送前,发送端可以根据已协商好的拆包个数分别计算出拆包后各个包的长度,并在每个数据包前添加四个字节的信息,其中前两个字节为分组号赋值,后两个字节根据拆包时的同一帧数据包中的包序(即每一帧数据的第一个包都是以0开始,自然数进行累加)进行赋值。例如,以12+8模式为例,即以同一个FEC分组内的12个原始包和8个冗余包为例进行延时空间大小计算。若采用G711A协议对20ms帧长的数据进行处理,当出现丢包情况时,接收端最大屯包数为12个数据包(第一个数据包丢失),在未采用拆分包功能时,最大延时将为240ms(12x 20ms)。若采用本申请中的处理方式,发送端对每一帧数据进行拆分包处理,假设已协商好的拆包个数为3,此时最大延时为80ms,即12x(20/3)ms。由此使得,通过发送端将一帧数据拆分为n个数据包并添加四个字节的包头信息发送到对端,接收端根据收到数据包的包头信息重组为一帧数据,每发送一帧数据引入的延时被分成n份,虽然会引入少量的带宽,但大大减少了丢包恢复时引入的延迟时间,解决了基于FEC方式下的音频传输延迟过大的问题。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种视频会议码流的传输装置,包括:接收模块702、解码模块704和组包模块706,其中:
接收模块702,用于接收到发送端发送的数据包。
解码模块704,用于对数据包进行冗余解码,得到对应的原始数据包。
组包模块706,用于根据原始数据包头部信息中的标识信息,对原始数据包进行组包处理,得到对应的每一帧数据,标识信息包括分组信息和组内编号信息。
在一个实施例中,该装置还包括:计算模块和连接模块。
接收模块还用于接收到发送端发送的视频会话的呼叫请求,呼叫请求中携带发送端的能力集参数。计算模块用于将发送端的能力参数与自身支持的能力集参数取交集,得到目标能力集参数,目标能力集参数包括拆分包的数量。连接模块用于与发送端建立呼叫连接,并按照目标能力集参数中的拆分包的数量进行数据传输。
在一个实施例中,该装置还包括:判断模块。
判断模块用于根据分组号和组内编号,判断原始数据包是否为当前分组内的第一个数据包;若原始数据包是当前分组内的第一个数据包,则将原始数据包进行保存,并继续校验下一个数据包,直至接收到当前分组内所有连续编号的数据包进行组包处理。
在一个实施例中,判断模块还用于若原始数据包不是当前分组内的第一个数据包,则判断原始数据包与上一个数据包的组号是否一致;若组号一致,则判断原始数据包是否为同分组内连续编号的数据包;若是同分组内连续编号的数据包,则对原始数据包进行组包处理;若不是同分组内连续编号的数据包,则将原始数据包所在的组内的所有数据包丢弃,并继续校验下一个数据包。
在一个实施例中,判断模块还用于若组号不一致,则判断是否为新的分组;若是新的分组,则判断是否为新的分组内的第一个数据包;若是新的分组内的第一个数据包,则将原始数据包进行保存,并继续校验下一个数据包,直至接收到同组内所有连续编号的数据包进行组包处理。
在一个实施例中,如图8所示,提供了一种视频会议码流的传输装置,包括:拆分模块802、添加模块804、编码模块806和发送模块808,其中:
拆分模块802,用于根据与接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包。
添加模块804,用于在拆分后的数据包的头部信息中添加标识信息,标识信息包括分组信息和组内编号信息。
编码模块806,用于对拆分后的数据包进行冗余编码,得到对应的冗余包。
发送模块808,用于将拆分后的数据包和冗余包发送至接收端。
关于视频会议码流的传输装置的具体限定可以参见上文中对于视频会议码流的传输方法的限定,在此不再赘述。上述视频会议码流的传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频会议码流的传输方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各个方法实施例的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种视频会议码流的传输方法,所述方法包括:
接收到发送端发送的数据包;
对所述数据包进行冗余解码,得到对应的原始数据包;
根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。
2.根据权利要求1所述的方法,其特征在于,所述接收到发送端发送的数据包之前,所述方法还包括:
接收到所述发送端发送的视频会话的呼叫请求,所述呼叫请求中携带所述发送端的能力集参数;
将所述发送端的能力参数与自身支持的能力集参数取交集,得到目标能力集参数;所述目标能力集参数包括拆分包的数量;
与所述发送端建立呼叫连接,并按照所述目标能力集参数中的拆分包的数量进行数据传输。
3.根据权利要求1所述的方法,其特征在于,所述原始数据包头部信息中的标识信息包括所述原始数据包对应的分组号和组内编号;
所述根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理包括:
根据所述分组号和组内编号,判断所述原始数据包是否为当前分组内的第一个数据包;
若所述原始数据包是当前分组内的第一个数据包,则将所述原始数据包进行保存,并继续校验下一个数据包,直至接收到当前分组内所有连续编号的数据包进行组包处理。
4.根据权利要求3所述的方法,其特征在于,所述判断所述原始数据包是否为当前分组内的第一个数据包,还包括:
若所述原始数据包不是当前分组内的第一个数据包,则判断所述原始数据包与上一个数据包的组号是否一致;
若组号一致,则判断所述原始数据包是否为同分组内连续编号的数据包;
若是所述同分组内连续编号的数据包,则对所述原始数据包进行组包处理;
若不是所述同分组内连续编号的数据包,则将所述原始数据包所在的组内的所有数据包丢弃,并继续校验下一个数据包。
5.根据权利要求4所述的方法,其特征在于,所述判断所述原始数据包与上一个数据包的组号是否一致包括:
若组号不一致,则判断是否为新的分组;
若是新的分组,则判断是否为所述新的分组内的第一个数据包;
若是所述新的分组内的第一个数据包,则将所述原始数据包进行保存,并继续校验下一个数据包,直至接收到同组内所有连续编号的数据包进行组包处理。
6.一种视频会议码流的传输方法,所述方法包括:
根据与所述接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包;
在所述拆分后的数据包的头部信息中添加标识信息;所述标识信息包括分组信息和组内编号信息;
对所述拆分后的数据包进行冗余编码,得到对应的冗余包;
将所述拆分后的数据包和所述冗余包发送至所述接收端。
7.一种视频会议码流的传输装置,其特征在于,所述装置包括:
接收模块,用于接收到发送端发送的数据包;
解码模块,用于对所述数据包进行冗余解码,得到对应的原始数据包;
组包模块,用于根据所述原始数据包头部信息中的标识信息,对所述原始数据包进行组包处理,得到对应的每一帧数据;所述标识信息包括分组信息和组内编号信息。
8.一种视频会议码流的传输装置,其特征在于,所述装置包括:
拆分模块,用于根据与所述接收端协商的拆包策略,将每一帧数据拆分为预设数量的数据包,得到拆分后的数据包;
添加模块,用于在所述拆分后的数据包的头部信息中添加标识信息;所述标识信息包括分组信息和组内编号信息;
编码模块,用于对所述拆分后的数据包进行冗余编码,得到对应的冗余包;
发送模块,用于将所述拆分后的数据包和所述冗余包发送至所述接收端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110126459.6A CN112954255B (zh) | 2021-01-29 | 2021-01-29 | 视频会议码流的传输方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110126459.6A CN112954255B (zh) | 2021-01-29 | 2021-01-29 | 视频会议码流的传输方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112954255A true CN112954255A (zh) | 2021-06-11 |
CN112954255B CN112954255B (zh) | 2024-04-16 |
Family
ID=76239758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110126459.6A Active CN112954255B (zh) | 2021-01-29 | 2021-01-29 | 视频会议码流的传输方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112954255B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7017102B1 (en) * | 2001-12-27 | 2006-03-21 | Network Equipment Technologies, Inc. | Forward Error Correction (FEC) for packetized data networks |
CN101202604A (zh) * | 2007-08-14 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种网络数据的发送与接收方法、系统及设备 |
WO2010081430A1 (zh) * | 2009-01-19 | 2010-07-22 | 华为终端有限公司 | 一种媒体码流的传输方法、终端和系统 |
CN101834700A (zh) * | 2010-05-12 | 2010-09-15 | 北京邮电大学 | 一种基于数据包的单向可靠传输方法及收发装置 |
US20130007552A1 (en) * | 2011-06-30 | 2013-01-03 | Brother Kogyo Kabushiki Kaisha | Data processing devices, computer readable storage media, and methods |
WO2014086222A1 (zh) * | 2012-12-05 | 2014-06-12 | 小米科技有限责任公司 | 设置视频通话参数、和发送能力参数的方法及装置 |
CN105684334A (zh) * | 2013-10-31 | 2016-06-15 | 三星电子株式会社 | 用于在通信系统中发送和接收分组的方法和装置 |
WO2016090904A1 (zh) * | 2014-12-12 | 2016-06-16 | 中兴通讯股份有限公司 | 媒体数据流的传输方法和装置 |
CN108632565A (zh) * | 2018-05-25 | 2018-10-09 | 苏州科达科技股份有限公司 | 视频码流的传输方法、播放方法、装置及会议设备 |
CN109905697A (zh) * | 2019-02-27 | 2019-06-18 | 苏州科达科技股份有限公司 | 视频会议测试方法、装置及存储介质 |
CN111586098A (zh) * | 2020-04-01 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-01-29 CN CN202110126459.6A patent/CN112954255B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7017102B1 (en) * | 2001-12-27 | 2006-03-21 | Network Equipment Technologies, Inc. | Forward Error Correction (FEC) for packetized data networks |
CN101202604A (zh) * | 2007-08-14 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种网络数据的发送与接收方法、系统及设备 |
WO2010081430A1 (zh) * | 2009-01-19 | 2010-07-22 | 华为终端有限公司 | 一种媒体码流的传输方法、终端和系统 |
CN101834700A (zh) * | 2010-05-12 | 2010-09-15 | 北京邮电大学 | 一种基于数据包的单向可靠传输方法及收发装置 |
US20130007552A1 (en) * | 2011-06-30 | 2013-01-03 | Brother Kogyo Kabushiki Kaisha | Data processing devices, computer readable storage media, and methods |
WO2014086222A1 (zh) * | 2012-12-05 | 2014-06-12 | 小米科技有限责任公司 | 设置视频通话参数、和发送能力参数的方法及装置 |
CN105684334A (zh) * | 2013-10-31 | 2016-06-15 | 三星电子株式会社 | 用于在通信系统中发送和接收分组的方法和装置 |
WO2016090904A1 (zh) * | 2014-12-12 | 2016-06-16 | 中兴通讯股份有限公司 | 媒体数据流的传输方法和装置 |
CN108632565A (zh) * | 2018-05-25 | 2018-10-09 | 苏州科达科技股份有限公司 | 视频码流的传输方法、播放方法、装置及会议设备 |
CN109905697A (zh) * | 2019-02-27 | 2019-06-18 | 苏州科达科技股份有限公司 | 视频会议测试方法、装置及存储介质 |
CN111586098A (zh) * | 2020-04-01 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112954255B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7029471B2 (ja) | アップリンクデータ解凍、圧縮方法および装置 | |
CN110943800B (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
CN113037440B (zh) | 数据重传处理方法、装置、计算机设备和存储介质 | |
KR102295788B1 (ko) | 데이터 스트리밍의 순방향 오류 정정 | |
US20230071243A1 (en) | Conserving network resources during transmission of packets of interactive services | |
US20230060066A1 (en) | Data transmission method and apparatus, computer readable medium, and electronic device | |
KR20100021990A (ko) | 가속화된 처리율을 달성하는 시스템 및 방법 | |
CN110336645A (zh) | 数据传输方法、装置、系统、设备和存储介质 | |
KR101118194B1 (ko) | 손실된 패킷 재건을 위한 방법 및 상기 방법을 수행하기 위한 디바이스 | |
WO2022017529A1 (zh) | 数据传输方法、系统、电子设备及存储介质 | |
CN111629210A (zh) | 一种数据处理的方法、装置及电子设备 | |
CN112887429A (zh) | 一种数据传输的方法、装置、电子设备及存储介质 | |
JP2012129751A (ja) | 受信装置及び、受信装置による処理方法 | |
CN111371887B (zh) | 物联网日志传输方法、客户端、服务端、设备及存储介质 | |
CN115037416A (zh) | 数据前向纠错处理方法、装置、电子设备和存储介质 | |
CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN112804028B (zh) | 一种数据包的传输方法、设备及存储介质 | |
CN113612516A (zh) | 一种卫星通信数据包的压缩测试方法、系统及设备 | |
CN112954255B (zh) | 视频会议码流的传输方法、装置、计算机设备和存储介质 | |
CN116634187A (zh) | 基于合流发送机制的视频流处理方法、装置、设备和介质 | |
CN111478864A (zh) | 数据包的处理方法、装置、电子设备及存储介质 | |
CN115550459A (zh) | 语音数据的发送和接收方法以及相关设备 | |
CN113541853B (zh) | 数据传输方法、终端及计算机可读存储介质 | |
CN115208864A (zh) | 数据传输方法、装置、设备、车辆及存储介质 | |
CN114513418A (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 |