CN112995182A - 媒体流传输方法、装置、设备及介质 - Google Patents
媒体流传输方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112995182A CN112995182A CN202110240892.2A CN202110240892A CN112995182A CN 112995182 A CN112995182 A CN 112995182A CN 202110240892 A CN202110240892 A CN 202110240892A CN 112995182 A CN112995182 A CN 112995182A
- Authority
- CN
- China
- Prior art keywords
- communication protocol
- media stream
- sending
- protocol
- switching
- 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 47
- 230000005540 biological transmission Effects 0.000 title abstract description 45
- 238000004891 communication Methods 0.000 claims abstract description 159
- 238000001514 detection method Methods 0.000 claims description 38
- 230000009977 dual effect Effects 0.000 claims description 21
- 239000000523 sample Substances 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/80—Responding to QoS
-
- 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/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例公开一种媒体流传输方法、装置、设备及介质,包括:在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件;在检测到网络质量满足将所述第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段;在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文;在所述双发时间段结束后,停止基于所述第一通信协议发送媒体流报文,并继续基于所述第二通信协议发送媒体流报文。其是在媒体流报文传输期间实时去探测是否能够将第一通信协议切换为第二通信协议,避免了网络带宽的浪费。
Description
技术领域
本公开涉及通信技术领域,更具体地,涉及一种媒体流传输方法、装置、设备及介质。
背景技术
通常,在直播场景下对于媒体流的实时性和可靠性要求较高,常见的传输媒体流的传输层通信协议包括:用户数据报协议(User Datagram Protocol,UDP)和传输控制协议(Transmission Control Protocol,TCP)。
相关技术中,为了充分利用网络条件良好的情况下TCP协议可靠传输的准确性和性能优势,以及,利用网络条件差的情况下UDP协议的实时性和可用性,其是先探测网络质量,然后再决定是基于TCP协议或者是基于UDP协议进行媒体流传输,这浪费了大量的网络带宽。
发明内容
本公开实施例提供了一种媒体流传输方法、装置、设备及介质,可以避免网络带宽的浪费。
根据本公开实施例的第一方面,提供了一种媒体流传输方法,包括:
在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件;
在检测到网络质量满足将所述第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段;
在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文;
在所述双发时间段结束后,停止基于所述第一通信协议发送媒体流报文,并继续基于所述第二通信协议发送媒体流报文。
根据本公开的第二方面,提供了一种媒体流传输装置,包括:
检测模块,用于在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件;
获取模块,用于在检测到网络质量满足将所述第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段;
发送模块,用于在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文;
切换模块,用于在所述双发时间段结束后,停止基于所述第一通信协议发送媒体流报文,并继续基于所述第二通信协议发送媒体流报文。
根据本公开的第三方面,提供一种电子设备,其包括存储器和处理器,所述存储器用于存储可执行的指令;所述处理器用于在所述指令的控制下执行根据以上第一方面所述的媒体流传输方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如本公开第一方面所述的媒体流传输方法。
根据本公开实施例的方法、装置、设备及介质,其是在基于第一通信协议进行媒体流报文传输期间,实时去探测网络质量是否满足将第一通信协议切换为第二通信协议的切换条件,避免了网络带宽的浪费。而且,其在网络质量满足将第一通信协议切换为第二通信协议的切换条件的情况下,会在一双发时间段内分别基于第一通信协议和第二通信协议发送媒体流报文,并在双发时间段结束后,停止基于第一通信协议发送媒体流报文,并继续基于第二通信协议发送媒体流报文,即,其在网络质量满足将第一通信协议切换为第二通信协议的切换条件的情况下,采用双发策略,以确保第一通信协议至第二通信协议间的无缝切换。即,本公开实施例的方法相比于现有技术中的先探测网络质量再切换通信协议更加简单和高效。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是根据本公开实施例的媒体流传输方法的示意性流程图;
图2是根据本公开另一实施例的媒体流传输方法的示意性流程图;
图3是根据本公开另一实施例的媒体流传输方法的示意性流程图;
图4是根据本公开实施例的媒体流传输装置的原理框图;
图5是根据本公开实施例的电子设备的硬件配置的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<方法实施例>
图1为根据本公开实施例的媒体流传输方法的示意性流程图。
根据图1所示,本实施例的媒体流传输方法由电子设备实施,该电子设备可以是服务器,本公开实施例的媒体流传输方法可以包括如下步骤S1100~S1400:
步骤S1100,在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将第一通信协议切换为第二通信协议的第一切换条件。
第一通信协议为UDP协议,UDP协议为无连接的传输层通信协议,一般用于一点对多点的数据业务,比如视频会议。基于UDP进行数据传输,发送端不需要与接收端进行任何的协商,就可以将数据发出,接收端在接收到数据后,也不会给发送端确认。在基于UDP协议进行媒体流报文传输时,该媒体流报文可称之为UDP报文。
第二通信协议为TCP协议,TCP协议为面向连接的传输层通信协议,发送端需要与接收端联系,并通过联系来维持一个对话,包括在建立连接时进行连接协商联系,在关闭连接时进行关闭协商联系等;而且,在发送端发出一报文后,接收端如果正确接收到该报文,会向发送端进行接收确认,发送端如果没有接收到相应的确认,将会在满足协议所规定的条件时重传该报文至接收端。在基于TCP协议进行媒体流报文传输时,该媒体流报文可称之为TCP报文。
媒体流是指采用流式传输的方式在互联网播放媒体格式,例如,音频、视频或多媒体文件,媒体流在传输时,是以媒体流报文的形式由发送端发送至接收端。
在一个直播场景的例子中,直播端在需要发送媒体流报文时,会将该媒体流报文传输至服务器,并由服务器决定传输方式例如基于TCP协议或UDP协议进行传输,进而基于所决定的传输方式发送媒体流报文至用户端。
本实施例中,当服务器是首次发送媒体流报文至用户端时,其默认基于UDP协议向用户端发送媒体流报文。同时,当基于UDP协议向用户端发送媒体流报文时,服务器会采用拥塞控制算法,以在网络差的情况下进行优化,例如放弃旧的媒体流报文以保证实时性和流畅性。该拥塞控制算法可以为TCP友好速率控制算法(TFRC,TCP-Friendly RateControl)。
本实施例中,当服务器基于UDP协议向用户端发送媒体流报文期间,会基于TCP协议发送探测包以探测网络质量,并在网络质量良好即传输链路不拥塞的情况下将UDP协议切换至TCP协议。在此,本步骤S2100中在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将第一通信协议切换为第二通信协议的第一切换条件可以进一步包括如下步骤S1110~S1140:
步骤S1110,在基于第一通信协议发送媒体流报文期间,基于第二通信协议发送第一探测报文,以及,基于第一通信协议发送第二探测报文。
本步骤S1110中,在基于UDP协议向用户端发送媒体流报文期间,服务器会基于TCP协议发送探测报文,同时,会基于UDP协议发送探测报文,以基于这两种探测报文来决定能否将UDP协议切换为TCP协议,进而基于TCP协议发送媒体流报文。
可以理解的是,当服务器基于TCP协议发送探测报文至用户端后,如果用户端接收到该探测报文,会向服务器进行接收确认,即,服务器会在接收到探测报文后,发送确认报文至服务器。
步骤S1120,获取发送第一探测报文的参考往返时间。
本步骤S1120中,参考往返时间反映基于第二通信协议发送报文的拥塞程度。即,参考往返时间反映基于TCP协议发送报文的拥塞程度,参考往返时间越小,则表明基于TCP协议发送报文时越不拥塞,表明可以尝试切换至TCP协议;参考往返时间越大,则表明基于TCP协议发送报文时越拥塞,表明尽量不要尝试切换至TCP协议。
本步骤S1120中获取发送第一探测报文的参考往返时间可以进一步包括:获取发送第一探测报文的第二往返时间;获取处理完当前第一探测报文及当前第一探测报文之前的所有第一探测报文的总时间;以及,根据总时间和第二往返时间,获得参考往返时间。
以上第二往返时间为基于TCP协议发送报文的往返延时(Round-Trip Time,RTT),可以将该第二往返时间称之为TCP RTT。
以上参考往返时间可称之为TCP拥塞RTT,参考往返时间为服务器基于TCP协议发送探测报文的RTT及服务器的应用层处理完当前探测报文之前的所有探测报文的总时间的和值,从而,其可以很好的反映当前TCP拥塞及应用层的处理情况。
步骤S1130,获取发送第二探测报文的第一往返时间。
以上第一往返时间为基于UDP协议发送报文的RTT,可以将该第一往返时间称之为UDP RTT。
步骤S1140,在参考往返时间和第一往返时间满足设定条件的情况下,将第一通信协议切换为第二通信协议。
本步骤S1140中,设定条件可以包括参考往返时间和第一往返时间的差值的绝对值小于或等于设定的时间阈值,或者,参考往返时间小于或等于第一往返时间之中的任意一项。
本步骤S1140中,在满足任意设定条件时,表明TCP拥塞RTT相比于UDP RTT更优或相似,便可尝试将UDP协议切换为TCP协议发送媒体流报文。
根据以上步骤S1110~S1140,其在检测到任意设定条件的情况下,确定将UDP协议切换为TCP协议,这种检测设定条件将UDP协议切换为TCP协议的方式,可以提高切换的靶向性。
本实施例中,在基于UDP协议向发送媒体流报文期间,如果检测到网络质量满足将UDP协议切换为TCP协议的切换条件,便可尝试切换至TCP协议,反之,则继续基于UDP协议发送媒体流报文。
步骤1200,在检测到网络质量满足将第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段。
本实施例中,其在基于UDP协议发送媒体流报文期间,如果检测到网络质量满足将UDP协议切换为TCP协议的第一切换条件,并不是直接将UDP协议切换为TCP协议,而是采用以下的双发策略,以保证UDP协议至TCP协议的无缝切换。
双发时间段包括双发起始时间和双发时长,其中,该双发时间段为相比于当前发送的下次双发时间段,对应的,该双发起始时间即为下次双发起始时间,该双发时长即为下次双发时长。
在一个例子中,本步骤S1200获取双发时间段可以包括确定双发起始时间,该确定双发起始时间可以进一步包括:获取前一双发时长内所发送的媒体流报文的第一总数量;获取前一双发时长内所发送的媒体流报文的第二总数量;以及,根据第一总数量、第二总数量和设定的流量超限比例,获得双发起始时间。
前一双发时长为,相比于当前发送的前一次分别基于UDP协议和TCP协议发送媒体流报文的时长。本实施例中,由于网络带宽的动态变化,导致该前一双发时长和该下次双发时长可能相同,也可能不同。
以上第一总数量为在前一双发时长内发送媒体流报文的总报文数量。例如,该第一总数量可以为10,即,在前一双发时长内发送媒体流报文的总数量为10。
以上第二总数量为在前一双发时长内有效发送媒体流报文的总报文数量。可以理解的是,在双发时长内,服务器是分别基于UDP协议和TCP协议发送媒体流报文,在此,会存在基于UDP协议和TCP协议重复发送同一媒体流报文的情况,此时,该媒体流报文可以计数为一个。继续上述示例,服务器在前一双发时长内发送媒体流报文的总数量为10,然而,其中存在2个重复的媒体流报文,则该第二总数量为9,即,在前一双发时长内有效发送媒体流报文的总数量为9。
设定的流量超限比例可以是根据实际应用场景和实际需求设置的数值。
本例子中,例如可以是先计算前一双发时长内所发送媒体流报文的总数量和有效发送媒体流报文的总数量这二者之间的差值,然后将该差值和设定的流量超限比例相除,获得一个间隔媒体流报文数量,即,在间隔多少个媒体流报文后,可以尝试双发。
在一个例子中,本步骤S1200获取双发时间段可以包括确定双发起始时间,该确定双发起始时间也可以进一步包括:获取前一双发时长;以及,根据前一双发时长和设定的探测时长比例,获得双发起始时间。
设定的探测时长比例可以是根据实际应用场景和实际需求设置的数值。
本例子中,例如可以是先将前一双发时长和设定的探测时长比例相除,以获得一个时间段,然后在将时间段后,可以尝试双发。
在一个例子中,本步骤S1200获取双发时间段可以包括确定双发时长,该确定双发时长可以进一步包括:根据参考往返时间、第一往返时间和第二往返时间,获得双发时长。
本例子中,例如可以是选取TCP拥塞RTT、UDP RTT和TCP RTT中的最小值,作为双发时长。
本实施例中,在获取进行下一次双发的双发时间段后,便可在该双发时间段内,分别基于UDP协议和TCP协议发送媒体流报文,以实现UDP协议和TCP协议的双发策略。
步骤S1300,在双发时间段,分别基于第一通信协议和第二通信协议发送媒体流报文。
本实施例中,在该双发时间段内,服务器会分别基于TCP协议和UDP协议向用户端发送媒体流报文。
例如,服务器可以是以相同的发送频率分别基于TCP协议和UDP协议向用户端发送媒体流报文。
又例如,服务器也可以是以不同的发送频率分别基于TCP协议和UDP协议向用户端发送媒体流报文。
本实施例中,本步骤S1300中在双发时间段,分别基于第一通信协议和第二通信协议发送媒体流报文可以进一步包括:
分别基于第一通信协议和第二通信协议将第一媒体流报文发送至中转端进行去重处理,以通过中转端发送经过去重处理得到的第一媒体流报文。
该中转端进行去重处理可以进一步包括:对接收到的基于第一通信协议发送的第一媒体流报文和基于第二通信协议发送的第一媒体流报文进行过滤,得到第一媒体流报文。
以上中转端可以是另一服务器。例如,在下次双发时间段内,服务器分别基于TCP协议和UDP协议发送媒体流报文A的情况下,该另一服务器可以对该媒体流报文A进行去重处理,以得到一个媒体流报文A发送至用户端,该一个媒体流报文A则为有效发送的媒体流报文。
步骤S1400,在双发时间段结束后,停止基于第一通信协议发送媒体流报文,并继续基于第二通信协议发送媒体流报文。
本实施例中,在双发时间段内,服务器也会持续基于TCP协议发送第一探测报文,以及,基于UDP协议发送第二探测报文;并获取发送第一探测报文的参考往返时长即TCP拥塞RTT,以及,获取发送第二探测报文的往返时间即UDP RTT,并在整个双发时间段内TCP拥塞RTT相比于UDP RTT更优或者相似,即TCP拥塞RTT和UDP RTT的差值的绝对值小于或等于设定的时间阈值,或,TCP拥塞RTT小于或等于UDP RTT的情况下,才会在双发时间段结束后,停止基于UDP协议发送媒体流报文,并继续基于TCP协议向用户端发送媒体流报文。反之,则停止基于TCP协议发送媒体流报文,并继续基于UDP协议向用户端发送媒体流报文。
由于第一通信协议为UDP协议,第二通信协议为TCP协议,即,其在UDP协议切换至TCP协议时,是采用双发策略以实现UDP协议至TCP协议的无缝切换。而且,其是通过拥塞RTT的形式来判断媒体流报文的转发情况,相比于现有技术中的采用RTT探测、丢包率探测、带宽探测后才决定传输方式的方法更加准确和简单,只要媒体流报文不阻塞的通过TCP传输就使用TCP,出现拥塞则切回UDP的拥塞控制算法以保证媒体流报文传输的实时性。
根据本公开实施例的方法,其是在基于第一通信协议进行媒体流报文传输期间,实时去探测网络质量是否满足将第一通信协议切换为第二通信协议的切换条件,避免了网络带宽的浪费。而且,其在网络质量满足将第一通信协议切换为第二通信协议的切换条件的情况下,会在一双发时间段内分别基于第一通信协议和第二通信协议发送媒体流报文,并在双发时间段结束后,停止基于第一通信协议发送媒体流报文,并继续基于第二通信协议发送媒体流报文,即,其在网络质量满足将第一通信协议切换为第二通信协议的切换条件的情况下,采用双发策略,以确保第一通信协议至第二通信协议间的无缝切换。即,本公开实施例的方法相比于现有技术中的先探测网络质量再切换通信协议更加简单和高效。
在一个实施例中,在根据以上步骤S1400继续基于第二通信协议发送媒体流报文期间,本公开实施例的方法还包括如下步骤S2100~S2200:
步骤S2100,在继续基于第二通信协议发送媒体流报文期间,检测网络质量是否满足将第二通信协议切换为第一通信协议的第二切换条件。
本实施例中,服务器在基于TCP协议向用户端发送媒体流报文期间,会基于TCP协议发送探测包以探测网络质量,并在网络质量良好即传输链路不拥塞的情况下继续基于TCP协议向用户端发送媒体流报文,反之,则切换至UDP协议。在此,本步骤S2100中在继续基于第二通信协议发送媒体流报文期间,检测网络质量是否满足将第二通信协议切换为第一通信协议的第二切换条件可以进一步包括如下步骤S2110~S2140:
步骤S2110,在继续基于第二通信协议发送媒体流报文期间,基于第二通信协议发送第一探测报文,以及,基于第一通信协议发送第二探测报文。
本步骤S2110中,在基于TCP协议发送媒体流报文期间,服务器会基于TCP协议发送探测报文,同时,会基于UDP协议发送探测报文,以基于这两种探测报文来决定能否继续基于TCP协议发送媒体流报文。
步骤S2120,获取发送第一探测报文的参考往返时间。
该参考往返时间即为以上的TCP拥塞RTT,关于如何获取参考往返时间可以参见以上步骤S1120。
步骤S2130,获取发送第二探测报文的第一往返时间。
该第一往返时间即为以上的UDP RTT。
步骤S2140,在参考往返时间和第一往返时间满足设定条件的情况下,将第二通信协议切换为第一通信协议。
本步骤S2140中,设定条件可以包括参考往返时间和第一往返时间的差值的绝对值大于设定的时间阈值,或者,参考往返时间大于第一往返时间之中的任意一项。
本步骤S2140中,在满足任意设定条件时,表明UDP RTT相比于TCP拥塞RTT更优,便可确定将TCP协议切换为UDP协议,即,可以切换至UDP协议发送媒体流报文。反之,在不满足设定条件时,表明TCP拥塞RTT相比于UDP RTT更优,则继续基于TCP协议发送媒体流报文。
步骤S2200,在检测到网络质量满足将第二通信协议切换为第一通信协议的第二切换条件的情况下,获取缓冲区缓存的媒体流报文。
本步骤S2200中,当UDP RTT相比于TCP拥塞RTT更优,便可确定将TCP协议切换为UDP协议,即,可以切换至UDP协议发送媒体流报文,由于TCP协议切换至UDP协议并没有采用双发策略,则可能由于TCP网络状态差导致部分媒体流报文实时性差的问题。在此,从TCP协议切换至UDP协议采用的是可靠切换的方式,即补上TCP中阻塞的包以免影响实时性。例如,服务器基于TCP协议发送媒体流报文时,会在缓冲区缓存一定的数据,同时根据TCP发送探测报文时的确认报文和超时超容量等方式对缓冲区所缓存的数据进行清理,当出现TCP协议切换至UDP协议的情况下,服务器可以主动对缓存的媒体流报文通过UDP方式进行发送以免影响实时性。
步骤S2300,基于第一通信协议发送当前缓存的媒体流报文。
本步骤S2300中,服务器可以基于UDP协议发送当前缓存的媒体流报文。
步骤S2400,在基于第二通信协议发送完在先媒体流报文的情况下,停止基于第二通信协议发送媒体流报文。
在先媒体流报文为先于缓存的媒体流报文产生的报文。该缓存的媒体流报文通常在发送完之后便会从缓冲区清除掉。
本实施例中,服务器也可以是在接收到用户端发送的请求重传指令时,重新发送当前缓存的媒体流报文。
根据本公开实施例的方法,其在基于TCP协议发送媒体流报文期间,会实时检测是否能够将TCP协议切换为UDP协议,并在能够将TCP协议切换为UDP协议的情况下,会基于UDP协议发送当前缓存的媒体流报文以免影响实时性,进而实现TCP协议至UDP协议的可靠切换。
<例子>
接下来示出一个例子的媒体流传输方法的流程示意图,该例子中,如图3所示,该媒体流传输方法可以包括:
步骤S3010,服务器基于UDP协议向用户端发送直播端产生的直播视频流报文。
步骤S3020,服务器在基于UDP协议向用户端发送直播视频流报文期间,检测TCP拥塞RTT相比于UDP RTT是否相似或更优,若是,则执行以下步骤S3030,反之,则继续执行以上步骤S3010。
具体的,在基于UDP协议发送直播视频流报文期间,服务器会基于TCP协议发送探测报文以获取TCP拥塞RTT(该TCP拥塞RTT可以反映传输链路的拥塞情况和应用层处理报文的情况),以及,基于UDP协议发送探测报文以获得UDP RTT。当TCP拥塞RTT相比于UDP RTT相似或更优,即TCP拥塞RTT和UDP RTT的差值的绝对值小于或等于设定的时间阈值,或,TCP拥塞RTT小于或等于UDP RTT的情况下,则确定可以尝试切换至TCP协议,即,执行以下步骤S3030。反之,继续执行以上步骤S3010。
步骤S3030,服务器检测到TCP拥塞RTT相比于UDP RTT相似或更优的情况下,获取双发时间段。
步骤S3040,服务器在双发时间段内,分别基于TCP协议和UDP协议向用户端发送直播视频流报文。
步骤S3050,判断双发时间段是否结束,若是,则执行以下步骤S3060,反之,执行以下步骤S3070。
步骤S3060,服务器在双发时间段结束后,停止基于UDP协议发送直播视频流报文,并继续基于TCP协议向用户端发送直播视频流报文,并继续执行以下步骤S3090。
步骤S3070,服务器在双发时间段内,继续检测TCP拥塞RTT相比于UDP RTT是否相似或更优,若是,则继续执行以上步骤S3040,反之,执行以下步骤S3080。
步骤S3080,服务器在检测到UDP RTT相比于TCP拥塞RTT更优的情况下,基于UDP协议发送直播视频流报文,并停止基于TCP协议发送直播视频流报文,即继续执行以上步骤S3010。
步骤S3090,服务器在基于TCP协议向用户端发送直播视频流报文期间,检测TCP拥塞RTT相比于UDP RTT是否相似或更优,若是,则继续基于TCP协议发送直播视频流报文,即继续执行以上步骤S3090,反之,则切换至UDP协议发送直播视频流报文,继续执行以上步骤S3010。
具体的,在基于TCP协议向用户端发送直播视频流报文期间,服务器会基于TCP协议发送探测报文以获取TCP拥塞RTT(该TCP拥塞RTT可以反映传输链路的拥塞情况和应用层处理报文的情况),以及,基于UDP协议发送探测报文以获得UDP RTT。当TCP拥塞RTT相比于UDP RTT相似或更优,即TCP拥塞RTT和UDP RTT的差值的绝对值小于或等于设定的时间阈值,或,TCP拥塞RTT小于或等于UDP RTT的情况下,则确定继续基于TCP协议发送直播视频流报文,即,执行本步骤S3090。反之,则切换至UDP协议,以基于该UDP协议继续发送直播视频流报文,并停止基于TCP协议发送直播视频流报文,该切换过程采用的是可靠切换,即继续执行以上步骤S3010。
根据该例子,其在UDP协议切换至TCP协议时,是采用双发策略以实现UDP协议至TCP协议的无缝切换。而且,其是通过拥塞RTT的形式来判断直播视频流报文的转发情况,相比于现有技术中的采用RTT探测、丢包率探测、带宽探测后才决定传输方式的方法更加准确和简单,只要直播视频流报文不阻塞的通过TCP传输就使用TCP,出现拥塞则切回UDP的拥塞控制算法以保证直播视频流报文传输的实时性。以及,在TCP协议切换至UDP协议时,采用可靠切换的方式以免影响实时性。
<装置实施例>
本实施例中,提供一种媒体流传输装置4000,如图4所示,该媒体流传输装置4000可以包括检测模块4100、获取模块4200、发送模块4300和切换模块4400。
检测模块4100,用于在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件。
获取模块4200,用于在检测到网络质量满足将所述第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段。
发送模块4300,用于在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文。
切换模块4400,用于在所述双发时间段结束后,停止基于所述第一通信协议发送媒体流报文,并继续基于所述第二通信协议发送媒体流报文。
本领域技术人员应当明白,可以通过各种方式来实现媒体流传输装置4000。例如,可以通过指令配置处理器来实现媒体流传输装置4000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现媒体流传输装置4000。例如,可以将媒体流传输装置5000固化到专用器件(例如ASIC)中。可以将媒体流传输装置4000分成相互独立的单元,或者可以将它们合并在一起实现。媒体流传输装置5000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,在本实施例中,媒体流传输装置4000可以具有多种实现形式,例如,媒体流传输装置4000可以是任何的提供媒体流传输服务的软件产品或者应用程序中运行的功能模块,或者是这些软件产品或者应用程序的外设嵌入件、插件、补丁件等,还可以是这些软件产品或者应用程序本身。
<设备实施例>
本公开实施例提供了一种电子设备5000。
如图5所示,电子设备5000包括处理器5100和存储器5200,存储器5200中存储有可执行的指令,处理器5100在指令的控制下执行前述任一实施例提供的媒体流传输方法。
在本实施例中,该电子设备5000可以是服务器。服务器提供处理、数据库、通讯设施的业务点。服务器可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,网络服务器,新闻服务器,邮件服务器,消息服务器,广告服务器,文件服务器,应用服务器,交互服务器,数据库服务器,或代理服务器。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等。
<介质实施例>
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述任一实施例提供的媒体流传输方法。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
Claims (12)
1.一种媒体流传输方法,所述方法包括:
在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件;
在检测到网络质量满足将所述第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段;
在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文;
在所述双发时间段结束后,停止基于所述第一通信协议发送媒体流报文,并继续基于所述第二通信协议发送媒体流报文。
2.根据权利要求1所述的方法,其中,所述在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件,包括:
在基于第一通信协议发送媒体流报文期间,基于所述第二通信协议发送第一探测报文,以及,基于所述第一通信协议发送第二探测报文;
获取发送第一探测报文的参考往返时间;其中,所述参考往返时间反映基于所述第二通信协议发送报文的拥塞程度;
获取发送第二探测报文的第一往返时间;
在所述参考往返时间和所述第一往返时间满足设定条件的情况下,将所述第一通信协议切换为第二通信协议。
3.根据权利要求2所述的方法,其中,所述设定条件满足以下任意一项:
所述参考往返时间和所述第一往返时间的差值的绝对值小于或等于设定的时间阈值;
所述参考往返时间小于或等于所述第一往返时间。
4.根据权利要求2所述的方法,其中,所述获取发送第一探测报文的参考往返时间,包括:
获取发送第一探测报文的第二往返时间;
获取处理完当前第一探测报文及所述当前第一探测报文之前的所有第一探测报文的总时间;
根据所述总时间和所述第二往返时间,获得所述参考往返时间。
5.根据权利要求1所述的方法,其中,所述双发时间段包括双发起始时间和双发时长,所述获取双发时间段包括确定所述双发起始时间,所述确定所述双发起始时间,包括:
获取前一双发时长内所发送的媒体流报文的第一总数量;
获取所述前一双发时长内所发送的媒体流报文的第二总数量;
根据所述第一总数量、所述第二总数量和设定的流量超限比例,获得所述双发起始时间。
6.根据权利要求2所述的方法,其中,所述双发时间段包括双发起始时间和双发时长,所述获取双发时间段包括确定所述双发时长,所述确定所述双发时长,包括:
根据所述参考往返时间、所述第一往返时间和所述第二往返时间,获得所述双发时长。
7.根据权利要求1所述的方法,其中,所述在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文,包括:
分别基于所述第一通信协议和所述第二通信协议将第一媒体流报文发送至中转端进行去重处理,以通过所述中转端发送经过去重处理得到的第一媒体流报文;
其中,所述进行去重处理包括:对接收到的基于所述第一通信协议发送的第一媒体流报文和基于所述第二通信协议发送的第一媒体流报文进行过滤,得到第一媒体流报文。
8.根据权利要求1所述的方法,其中,所述第一通信协议为UDP协议,所述第二通信协议为TCP协议。
9.根据权利要求8所述的方法,其中,所述方法还包括:
在继续基于所述第二通信协议发送媒体流报文期间,检测网络质量是否满足将所述第二通信协议切换为所述第一通信协议的第二切换条件;
在检测到网络质量满足将所述第二通信协议切换为所述第一通信协议的第二切换条件的情况下,获取缓冲区缓存的媒体流报文;
基于所述第一通信协议发送所述当前缓存的媒体流报文;
在基于所述第二通信协议发送完在先媒体流报文的情况下,停止基于所述第二通信协议发送媒体流报文,其中,所述在先媒体流报文为先于所述缓存的媒体流报文产生的报文。
10.一种媒体流传输装置,包括:
检测模块,用于在基于第一通信协议发送媒体流报文期间,检测网络质量是否满足将所述第一通信协议切换为第二通信协议的第一切换条件;
获取模块,用于在检测到网络质量满足将所述第一通信协议切换为第二通信协议的第一切换条件的情况下,获取双发时间段;
发送模块,用于在所述双发时间段,分别基于所述第一通信协议和所述第二通信协议发送媒体流报文;
切换模块,用于在所述双发时间段结束后,停止基于所述第一通信协议发送媒体流报文,并继续基于所述第二通信协议发送媒体流报文。
11.一种电子设备,包括存储器和处理器,所述存储器用于存储可执行的指令;所述处理器用于在所述指令的控制下执行根据权利要求1至9中任一项所述的媒体流传输方法。
12.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至9中任一项所述的媒体流传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110240892.2A CN112995182B (zh) | 2021-03-04 | 2021-03-04 | 媒体流传输方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110240892.2A CN112995182B (zh) | 2021-03-04 | 2021-03-04 | 媒体流传输方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112995182A true CN112995182A (zh) | 2021-06-18 |
CN112995182B CN112995182B (zh) | 2023-04-25 |
Family
ID=76352694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110240892.2A Active CN112995182B (zh) | 2021-03-04 | 2021-03-04 | 媒体流传输方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112995182B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363676A (zh) * | 2022-01-06 | 2022-04-15 | 重庆紫光华山智安科技有限公司 | 视频流传输方法、装置、设备及介质 |
CN114844960A (zh) * | 2022-03-29 | 2022-08-02 | 武汉斗鱼鱼乐网络科技有限公司 | 一种数据传输方法及相关设备 |
CN114844959A (zh) * | 2022-04-29 | 2022-08-02 | 深圳市云语科技有限公司 | 一种自动切换传输协议的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360045A (zh) * | 2007-07-30 | 2009-02-04 | 佳能株式会社 | 通道中传输数据包的方法、存储装置和通道端点 |
US20130346562A1 (en) * | 2012-06-20 | 2013-12-26 | Samsung Electronics Co., Ltd. | Data transmission method and apparatus for mobile terminal |
US20150256654A1 (en) * | 2014-03-06 | 2015-09-10 | Fujitsu Limited | Communication method, recording medium having communication control program recorded therein, and communication apparatus |
US20150295982A1 (en) * | 2014-04-10 | 2015-10-15 | Qualcomm Incorporated | Streaming control for real-time transport protocol |
US20160198021A1 (en) * | 2015-01-02 | 2016-07-07 | Citrix Systems, Inc. | Dynamic protocol switching |
US20170339258A1 (en) * | 2016-05-20 | 2017-11-23 | Citrix Systems, Inc. | Adaptive Session Reliability over Multiple Transports |
CN108965997A (zh) * | 2018-07-06 | 2018-12-07 | 刘雅芸 | 基于移动弱网络环境的流媒体直播方法及装置 |
CN109104408A (zh) * | 2018-06-29 | 2018-12-28 | 努比亚技术有限公司 | 数据传输方法、移动终端及计算机可读存储介质 |
CN111092907A (zh) * | 2019-12-30 | 2020-05-01 | 人和未来生物科技(长沙)有限公司 | 基于udp协议的数据流快速传输方法、系统及介质 |
-
2021
- 2021-03-04 CN CN202110240892.2A patent/CN112995182B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360045A (zh) * | 2007-07-30 | 2009-02-04 | 佳能株式会社 | 通道中传输数据包的方法、存储装置和通道端点 |
US20090034416A1 (en) * | 2007-07-30 | 2009-02-05 | Canon Kabushiki Kaisha | Method for the transmission of data packets in a tunnel, corresponding computer program product, storage means and tunnel end-point |
US20130346562A1 (en) * | 2012-06-20 | 2013-12-26 | Samsung Electronics Co., Ltd. | Data transmission method and apparatus for mobile terminal |
US20150256654A1 (en) * | 2014-03-06 | 2015-09-10 | Fujitsu Limited | Communication method, recording medium having communication control program recorded therein, and communication apparatus |
US20150295982A1 (en) * | 2014-04-10 | 2015-10-15 | Qualcomm Incorporated | Streaming control for real-time transport protocol |
US20160198021A1 (en) * | 2015-01-02 | 2016-07-07 | Citrix Systems, Inc. | Dynamic protocol switching |
US20170339258A1 (en) * | 2016-05-20 | 2017-11-23 | Citrix Systems, Inc. | Adaptive Session Reliability over Multiple Transports |
CN109104408A (zh) * | 2018-06-29 | 2018-12-28 | 努比亚技术有限公司 | 数据传输方法、移动终端及计算机可读存储介质 |
CN108965997A (zh) * | 2018-07-06 | 2018-12-07 | 刘雅芸 | 基于移动弱网络环境的流媒体直播方法及装置 |
CN111092907A (zh) * | 2019-12-30 | 2020-05-01 | 人和未来生物科技(长沙)有限公司 | 基于udp协议的数据流快速传输方法、系统及介质 |
Non-Patent Citations (1)
Title |
---|
蒋翊等: "一种拥塞感知的TFRC协议慢启动算法", 《电子学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363676A (zh) * | 2022-01-06 | 2022-04-15 | 重庆紫光华山智安科技有限公司 | 视频流传输方法、装置、设备及介质 |
CN114844960A (zh) * | 2022-03-29 | 2022-08-02 | 武汉斗鱼鱼乐网络科技有限公司 | 一种数据传输方法及相关设备 |
CN114844959A (zh) * | 2022-04-29 | 2022-08-02 | 深圳市云语科技有限公司 | 一种自动切换传输协议的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112995182B (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112995182B (zh) | 媒体流传输方法、装置、设备及介质 | |
CN109314662B (zh) | 数据传输方法及装置 | |
US20240089187A1 (en) | Packet coding based network communication | |
KR101746056B1 (ko) | 요청 관리자 및 연결 관리자 기능을 수행하는 전송 가속기 | |
US7908393B2 (en) | Network bandwidth detection, distribution and traffic prioritization | |
EP1716658B1 (en) | A method for data repair in a system capable of handling multicast and broadcast transmissions | |
CN107135216B (zh) | 一种加强弱网环境流媒体传输方法 | |
US10623143B2 (en) | Packet coding based network communication | |
CN106612284B (zh) | 一种流数据的传输方法和装置 | |
US10924216B2 (en) | Packet coding based network communication | |
EP1914933A1 (en) | Method and apparatus for retransmission request reduction in a network | |
JPWO2007015428A1 (ja) | 送信装置および送信方法 | |
US10666567B2 (en) | Packet coding based network communication | |
EP3641273B1 (en) | Edge node control | |
US10574706B2 (en) | Method and system for upload optimization | |
Xu et al. | Performance evaluation of distributing real-time video over concurrent multipath | |
Hahm et al. | Dynamic media buffer control scheme for seamless streaming in wireless local area networks | |
CN112511573A (zh) | 一种udp数据包的传输控制方法 | |
JP3848222B2 (ja) | 再送方法 | |
Hurtig et al. | Enhancing SCTP loss recovery: An experimental evaluation of early retransmit | |
Sullivan et al. | A protocol for simultaneous real time playback and full quality storage of streaming media | |
GB2588930A (en) | Multimedia system & method | |
Choi | RATE CONTROL OF REALTIME STREAMING APPLICATIONS IN WIRELESS NETWORKS | |
Landström et al. | TCP-Aix: making TCP robust to reordering and delay variations | |
Sullivan | A protocol for simultaneous real time playback and full quality storage of streaming media |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231012 Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 511402 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |