CN117082266A - 直播中继方法、直播数据接收方法、装置、设备和介质 - Google Patents
直播中继方法、直播数据接收方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117082266A CN117082266A CN202310876412.0A CN202310876412A CN117082266A CN 117082266 A CN117082266 A CN 117082266A CN 202310876412 A CN202310876412 A CN 202310876412A CN 117082266 A CN117082266 A CN 117082266A
- Authority
- CN
- China
- Prior art keywords
- live broadcast
- live
- frame
- image group
- group information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000001360 synchronised effect Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 24
- 238000012546 transfer Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method 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
- 238000001454 recorded image Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及一种直播中继方法、直播数据接收方法、装置、计算机设备和存储介质。通过将从直播源获取的直播流通过主路发送至直播客户端,根据直播流缓存直播视频帧的图像组信息得到直播缓存信息,记录图像组信息对应的帧索引,通过备用路接收到直播客户端的丢帧重传请求时,根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息,并通过备用路发送至直播客户端。相较于传统的通过切换低码率的方式实现直播的中继,本方案通过同时建立主路和备用路,通过缓存直播视频帧及其帧索引,直播中断时通过备用路发送缓存的图像组信息至客户端,提高了直播中继时直播画面的质量。
Description
技术领域
本申请涉及网络直播技术领域,特别是涉及一种直播中继方法、直播数据接收方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在原有的互联网视频直播场景下,其一般是通过云中心对直播流进行中继转发。然而,这样会导致直播时延增大,在用户出现丢包时,需要从中心端重新获取媒资,从而进一步加速视频质量劣化。为保证用户观看直播的画面质量,通常通过多路径传输承载视频多码率的数据流,在用户侧丢包时,切换到低码率以保证直播视频流畅。然而,通过低码率切换的方式进行直播中继,仍然会导致直播视频画质降低。
因此,目前的直播中继方法、直播数据接收方法存在使画质降低的缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高画面质量的直播中继方法、直播数据接收方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种直播中继方法,所述方法包括:
建立与直播客户端之间的主路和备用路的连接;
从直播源获取直播流,将所述直播流通过所述主路发送至所述直播客户端,及根据所述直播流缓存直播视频帧的图像组信息得到直播缓存信息,并记录图像组信息对应的帧索引;
通过所述备用路接收到所述直播客户端的丢帧重传请求时,根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从所述直播缓存信息中获取对应的图像组信息;
通过所述备用路发送所述对应的图像组信息至所述直播客户端。
在其中一个实施例中,所述从直播源获取直播流,包括:
将所述直播客户端发起的直播请求转发至对应的直播源;
接收所述直播源发送的一路直播流。
在其中一个实施例中,所述记录图像组信息对应的帧索引,包括:
根据所述直播流在所述主路的帧包头,得到直播视频帧的时间戳和同步标识符;
将所述直播视频帧的时间戳和同步标识符作为对应图像组信息的帧索引进行记录。
在其中一个实施例中,所述根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从所述直播缓存信息中获取对应的图像组信息,包括:
根据所述丢帧重传请求中携带的时间戳和同步标识符,与记录的时间戳和同步标识符的比对,从所述直播缓存信息中获取所述丢帧重传请求中携带的时间戳和同步标识符对应的图像组信息。
在其中一个实施例中,所述建立与直播客户端之间的主路和备用路的连接,包括:
建立与直播客户端之间的基于快速用户数据报协议的连接,作为主路;
建立与所述直播客户端之间的基于超文本传输协议的连接,作为备用路。
第二方面,本申请提供了一种直播数据接收方法,所述方法包括:
建立与网络设备之间的主路和备用路的连接;
通过所述主路接收所述网络设备发送的直播流;所述直播流由所述网络设备从直播源获取;
检测到直播丢帧时,将携带帧索引的丢帧重传请求通过所述备用路发送所述网络设备;
通过所述备用路接收所述网络设备发送的所述帧索引对应的图像组信息;
其中,所述对应的图像组信息由所述网络设备根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取;所述直播缓存信息由所述网络设备根据从所述直播源获取的直播流缓存直播视频帧的图像组信息得到,所述记录的帧索引由所述网络设备缓存所述图像组信息时记录得到。
在其中一个实施例中,所述检测到直播丢帧时,将携带帧索引的丢帧重传请求通过所述备用路发送所述网络设备,包括:
检测到来自所述主路的直播流连续丢帧数超过阈值时,根据丢失的直播视频帧对应的时间戳和同步标识符,生成携带所述时间戳和同步标识符的丢帧重传请求;
通过所述备用路发送所述丢帧重传请求至所述网络设备。
第三方面,本申请提供了一种直播中继装置,所述装置包括:
第一建立模块,用于建立与直播客户端之间的主路和备用路的连接;
直播记录模块,用于从直播源获取直播流,将所述直播流通过所述主路发送至所述直播客户端,及根据所述直播流缓存直播视频帧的图像组信息得到直播缓存信息,并记录图像组信息对应的帧索引;
丢帧重传模块,用于通过所述备用路接收到所述直播客户端的丢帧重传请求时,根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从所述直播缓存信息中获取对应的图像组信息;
发送模块,用于通过所述备用路发送所述对应的图像组信息至所述直播客户端。
第四方面,本申请提供了一种直播数据接收装置,所述装置包括:
第二建立模块,用于建立与网络设备之间的主路和备用路的连接;
直播模块,用于通过所述主路接收所述网络设备发送的直播流;所述直播流由所述网络设备从直播源获取;
请求模块,用于检测到直播丢帧时,将携带帧索引的丢帧重传请求通过所述备用路发送所述网络设备;
接收模块,用于通过所述备用路接收所述网络设备发送的所述帧索引对应的图像组信息;
其中,所述对应的图像组信息由所述网络设备根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取;所述直播缓存信息由所述网络设备根据从所述直播源获取的直播流缓存直播视频帧的图像组信息得到,所述记录的帧索引由所述网络设备缓存所述图像组信息时记录得到。
第五方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第六方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第七方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述直播中继方法、直播数据接收方法、装置、计算机设备、存储介质和计算机程序产品,通过将从直播源获取的直播流通过主路发送至直播客户端,根据直播流缓存直播视频帧的图像组信息得到直播缓存信息,记录图像组信息对应的帧索引,通过备用路接收到直播客户端的丢帧重传请求时,根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息,并通过备用路发送至直播客户端。相较于传统的通过切换低码率的方式实现直播的中继,本方案通过同时建立主路和备用路,通过缓存直播视频帧及其帧索引,直播中断时通过备用路发送缓存的图像组信息至客户端,提高了直播中继时直播画面的质量。
附图说明
图1为一个实施例中直播中继方法的应用环境图;
图2为一个实施例中直播中继方法的流程示意图;
图3为一个实施例中直播缓存信息的结构示意图;
图4为一个实施例中直播数据接收方法的示意图;
图5为另一个实施例中直播中继方法的流程示意图;
图6为一个实施例中直播中继装置的结构框图;
图7为一个实施例中直播数据接收装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的直播中继方法、直播数据接收方法,可以应用于如图1所示的应用环境中。其中,直播源通过主路与网络设备连接,网络设备可以通过主路和备用路与直播客户端连接。网络设备中可以包括多个模块,直播流转发模块可以通过主路将直播流发送至直播客户端,网络设备通过主路将直播视频帧进行缓存,当直播客户端发生丢帧时,通过备用路向网络设备的流调度模块发送丢帧重传请求,网络设备将视频帧缓存模块中缓存的直播视频帧发送至直播客户端。
另外,在一些实施例中,上述网络设备也可以与其他网络设备连接,网络设备多级串联时,网络设备可以通过主路获取其上一级网络设备或直播源的直播流,并通过备用路转发给相应的直播客户端。其中,直播客户端可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑。
在一个实施例中,如图2所示,提供了一种直播中继方法、直播数据接收方法,以该方法应用于图1中的网络设备为例进行说明,包括以下步骤:
步骤S202,建立与直播客户端之间的主路和备用路的连接。
其中,直播客户端可以是用户所使用的设备终端,用户可以通过直播客户端触发直播请求以及观看直播。直播客户端与网络设备之间可以通过建立双路连接,实现直播流的转发和丢帧重传。其中,上述双路连接包括主路和备用路,即网络设备可以建立与直播客户端之间的主路的连接和备用路的连接。
其中,直播客户端可以通过向网络设备发起直播请求,使得网络设备在接收到直播请求后,与直播客户端建立主路的连接和备用路的连接。其中,上述主路和备用路的连接可以分别基于不同协议建立。例如,在一个实施例中,网络设备可以建立与直播客户端之间的基于QUIC-UDP(Quick User Datagram Protocol Internet Connections,快速用户数据报协议)的连接,作为主路。网络设备还可以建立与直播客户端之间的基于HTTP(HypertextTransfer Protocol,超文本传输协议)的连接,作为备用路。直播客户端发送的直播请求,可以是针对快速用户数据报协议的请求,也可以是针对超文本传输协议的请求。
步骤S204,从直播源获取直播流,将直播流通过主路发送至直播客户端,及根据直播流缓存直播视频帧的图像组信息得到直播缓存信息,并记录图像组信息对应的帧索引。
其中,直播客户端发起的直播请求可以就近接入相应的网络设备,网络设备可以与上一级网络设备连接,也可以与直播源连接。则网络设备可以从上一级网络设备获取直播源的直播流,也可以直接从直播源中获取直播源。其中,网络设备从直播源获取的直播流可以是与直播客户端的直播请求对应的直播流,例如直播请求中携带有对应的直播流的信息,则网络设备可以基于该信息从直播源中获取对应的直播流。
网络设备获取直播流后,可以将直播流通过主路发送至直播客户端,同时保持与直播客户端的备用路的连接。例如,网络设备通过主路将直播流快速透传转发至直播客户端,使得提高直播客户端播放直播流的速度。同时,网路设备将直播流发送至直播客户端后,还可以对直播流进行缓存。其中,直播客户端可以在接收到直播流后,对直播流进行解码播放,上述直播流中可以包括多个直播视频帧,网络设备可以根据上述直播流缓存直播视频帧的图像组信息,得到直播缓存信息,网络设备还可以记录图像组信息对应的帧索引。
其中,上述图像组信息中可以包括多个直播视频帧,这些直播视频帧可以是直播流中的视频关键帧。即网络设备可以通过缓存直播流中的多个直播视频关键帧,形成图像组信息,进而得到直播缓存信息。上述帧索引可以是图像组信息中包含的直播视频帧的索引,例如直播视频帧的时间戳和同步标识符等。具体地,上述图像组信息可以是GOP(Groupof Pictures,图像组)的形式。即网络设备可以将上述直播流中的直播视频帧,以Group ofPictures图像组信息的方式进行缓存。则上述网络设备记录的帧索引可以是各Group ofPictures图像组信息对应的帧索引。
步骤S206,通过备用路接收到直播客户端的丢帧重传请求时,根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息。
其中,直播客户端的直播流可能会因为网络原因等中断。例如直播客户端与网络设备之间的主路的连接发生故障,直播流无法传输至直播客户端,直播客户端出现针对直播流的丢帧情况。当直播客户端出现丢帧时,直播客户端可以通过备用路向网络设备发送丢帧重传请求。其中,直播客户端可以基于丢失的直播视频帧的帧索引,生成丢帧重传请求。即上述丢帧重传请求中携带有丢失的直播视频帧的帧索引。上述网络设备中记录有直播流对应的图像组信息的帧索引,则网络设备可以根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息。即上述对应的图像组信息中包含有直播客户端丢失的直播视频帧的信息。
步骤S208,通过备用路发送对应的图像组信息至直播客户端。
其中,网络设备基于帧索引之间的比对,可以得到上述对应的图像组信息。网络设备可以通过备用路,发送上述对应的图像组信息至直播客户端。直播客户端接收到图像组信息后,可以对图像组信息进行解码播放,例如直播客户端对图像组信息中的直播视频帧进行解码,进而对解码后的直播视频帧进行播放,实现直播中断后的中继。
上述直播中继方法、直播数据接收方法中,通过将从直播源获取的直播流通过主路发送至直播客户端,根据直播流缓存直播视频帧的图像组信息得到直播缓存信息,记录图像组信息对应的帧索引,通过备用路接收到直播客户端的丢帧重传请求时,根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息,并通过备用路发送至直播客户端。相较于传统的通过切换低码率的方式实现直播的中继,本方案通过同时建立主路和备用路,通过缓存直播视频帧及其帧索引,直播中断时通过备用路发送缓存的图像组信息至客户端,提高了直播中继时直播画面的质量。
在一个实施例中,从直播源获取直播流,包括:将直播客户端发起的直播请求转发至对应的直播源;接收直播源发送的一路直播流。
本实施例中,网络设备可以基于直播客户端的直播请求,获取对应的直播流。其中,网络设备可以在接收到直播客户端发送的直播请求后,确定直播请求对应的直播源,网络设备可以将上述直播请求转发至对应的直播源。其中,在一些实施例中,网络设备可以通过直接转发至与网络设备连接的直播源的方式进行转发。在另外一些实施例中,网络设备可以通过与该网络设备相连的上一级网络设备,将直播请求转发至对应的直播源。
直播源接收到直播请求后,可以向上述网络设备发送一路直播流。例如,直播源仅发送一路基于快速用户数据报协议的连接的直播流至网络设备。具体地,上述直播流可以包括多个基于用户数据报协议的直播视频帧。其中,各直播视频帧的帧包头可以包含时间戳和同步标识符等信息。其中,时间戳可以32bit的格式,具体可以是Unix时间。同步标识符可以是以每个用户数据报的数据包自增预设大小的32bit整数。例如每个用户数据报的数据包自增1。上述同步标识符可以由直播源随机产生。其中,每个用户数据报的数据包中可以包含对应的直播视频帧。例如每个同步标识符对应一个直播视频帧。上述网络设备可以接收直播源发送的一路直播流,从而网络设备可以基于该直播流,通过基于快速用户数据报的连接的方式,将直播流转发至直播客户端。
通过本实施例,网络设备可以基于直播请求,从直播源中获取一路直播流,从而网络设备可以基于该直播流,通过主路和备用路的连接向直播客户端发送对应的直播流,在直播中断时通过备用路向直播客户端发送直播流,提高了直播中继时画面的质量。
在一个实施例中,记录图像组信息对应的帧索引,包括:根据直播流在主路的帧包头,得到直播视频帧的时间戳和同步标识符;将直播视频帧的时间戳和同步标识符作为对应图像组信息的帧索引进行记录。
本实施例中,上述通过主路传输的直播流中可以包括多个直播视频帧,各直播视频帧可以包括帧包头,帧包头中包含直播视频帧的时间戳和同步标识符,则网络设备可以基于在主路的直播流中的帧包头,得到直播视频帧的时间戳和同步标识符。网络设备在将直播流通过主路发送至直播客户端时,还可以将上述直播流中的直播视频帧的时间戳和同步标识符作为对应图像组信息的进行记录。网络设备可以按照预设的选取规则,记录多个直播视频帧的时间戳同步标识符,从而得到这些直播视频帧的图像组信息对应的帧索引。
具体地,网络设备记录的帧索引可以是图像组信息Group of Pictures对应的用户数据报协议的帧包头信息,包括时间戳和同步标识符等。如图3所示,图3为一个实施例中直播缓存信息的结构示意图。其中,网络设备可以缓存得到多个图像组信息,各图像组信息对应一个GOP ID,GOP ID是32bit整数,其中,前16bit可以是上述直播客户端的直播的标识,后16bit可以是自增整数,例如网络设备从0自增。每个图像组信息可以对应有相应的帧索引,帧索引包括帧索引对应的GOP ID、多个时间戳、以及每个时间戳可以对应多个同步标识符,每个同步标识符可以对应一帧直播视频帧。例如,一秒内可以包括多个直播视频帧。其中,时间戳的长度可以基于实际情况进行设定。同步标识符可以表示各直播视频帧在直播流中的位置。
通过本实施例,网络设备可以在将直播流通过主路发送至直播客户端时,对直播流中的直播视频帧进行缓存,以及对直播流中直播视频帧的时间戳和同步标识符作为帧索引进行记录,从而在直播中断时,可以与帧索引确定直播客户端请求的图像组信息,提高了直播中继时的画面质量。
在一个实施例中,根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息,包括:根据丢帧重传请求中携带的时间戳和同步标识符,与记录的时间戳和同步标识符的比对,从直播缓存信息中获取丢帧重传请求中携带的时间戳和同步标识符对应的图像组信息。
本实施例中,直播客户端因主路中断发生丢帧时,例如直播客户端连续丢失的帧的数量达到预设阈值,上述直播客户端可以通过备用路向网络设备发送丢帧重传请求,丢帧重传请求中携带有时间戳和同步标识符。网络设备可以将丢帧重传请求中携带的时间戳和同步标识符,与记录的时间戳和同步标识符进行比对,基于该比对,网络设备可以从直播缓存信息中获取与上述丢帧重传请求中携带的时间戳和同步标识符对应的图像组信息。网络设备可以将上述图像组信息通过备用路的连接发送至直播客户端,从而直播客户端可以基于接收到的图像组信息进行解码播放。
具体地,直播客户端可以通过超文本传输协议的get请求,在超文本传输协议的HEAD字段生成丢帧重传请求X-Stream-restransmit,并携带需要重传的时间戳和同步标识符。网络设备接收到丢帧重传请求后,可以基于超文本传输协议的HEAD字段携带的扩展字段中的时间戳和同步标识符,查询图像组信息表,例如查询如图3所示的表,比对表中对应的时间戳和同步标识符,得到对应的图像组信息,并通过备用路的方式,例如基于TCP(Transmission Control Protocol,传输控制协议)的超文本传输协议的方式,发送上述对应的图像组信息至直播客户端。另外,在一些实施例中,网络设备还可以在将对应的图像组信息发送至直播客户端后,进行传输控制协议的拥塞流控,以防通过备用路传输至直播客户端的数据量过大导致线路拥塞。
通过本实施例,网络设备可以在主路中断时,通过丢帧重传请求,查询对应的缓存的图像组信息,并通过备用路发送至直播客户端,提高了直播中继时的画面质量。
在一个实施例中,如图4所示,提供了一种直播数据接收方法,以该方法应用于图1中的直播客户端为例进行说明,包括以下步骤:
步骤S302,建立与网络设备之间的主路和备用路的连接。
其中,直播客户端可以是用户所使用的设备终端,用户可以通过直播客户端触发直播请求以及观看直播。直播客户端与网络设备之间可以通过建立双路连接,实现直播流的转发和丢帧重传。其中,上述双路连接包括主路和备用路,即网络设备可以建立与直播客户端之间的主路的连接和备用路的连接。
其中,直播客户端可以通过向网络设备发起直播请求,使得网络设备在接收到直播请求后,与直播客户端建立主路的连接和备用路的连接。其中,上述主路和备用路的连接可以分别基于不同协议建立。例如,在一个实施例中,网络设备可以建立与直播客户端之间的基于QUIC-UDP(Quick User Datagram Protocol Internet Connections,快速用户数据报协议)的连接,作为主路。网络设备还可以建立与直播客户端之间的基于HTTP(HypertextTransfer Protocol,超文本传输协议)的连接,作为备用路。直播客户端发送的直播请求,可以是针对快速用户数据报协议的请求,也可以是针对超文本传输协议的请求。
步骤S304,通过主路接收网络设备发送的直播流;直播流由网络设备从直播源获取。
其中,直播客户端发起的直播请求可以就近接入相应的网络设备。网络设备从直播源获取的直播流,可以是与直播客户端的直播请求对应的直播流,例如直播请求中携带有对应的直播流的信息,则网络设备可以基于该信息从直播源中获取对应的直播流。
具体地,直播客户端通过基于快速用户数据报协议的连接,接收到直播流后,可以检查接收到的直播流中的快速用户数据报的数据包中的帧包头信息,确定各个直播视频帧对应的时间戳和同步标识符,从而直播客户端对直播流进行解码播放。
步骤S306,检测到直播丢帧时,将携带帧索引的丢帧重传请求通过备用路发送网络设备。
其中,当直播客户端与网络设备之间的主路的连接发生故障时,直播客户端播放的直播流会出现丢帧。其中,直播客户端和网络设备之间还通过备用路进行连接。当直播客户端检测到直播丢帧时,直播客户端可以基于丢失的直播视频帧的帧索引,生成对应的丢帧重传请求。直播客户端可以将携带帧索引的丢帧重传请求通过备用路发送至上述网络设备。
其中,直播客户端可以基于丢帧的数量,确定发送丢帧重传请求的时机。例如,在一个实施例中,直播客户端可以检测来自主路的直播流连续丢帧数是否超过阈值,若直播客户端检测到来自主路的直播流连续丢帧数超过阈值时,直播客户端可以根据丢失的直播视频帧对应的时间戳和同步标识符,生成携带时间戳和同步标识符的丢帧重传请求,并通过备用路发送丢帧重传请求至网络设备。具体地,直播客户端可以通过基于超文本传输协议的连接,将上述携带帧索引的丢帧重传请求发送至网络设备。
步骤S308,通过备用路接收网络设备发送的帧索引对应的图像组信息;其中,对应的图像组信息由网络设备根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取;直播缓存信息由网络设备根据从直播源获取的直播流缓存直播视频帧的图像组信息得到,记录的帧索引由网络设备缓存图像组信息时记录得到。
其中,直播客户端将丢帧重传请求发送至网络设备后,网络设备可以记录有直播流对应的图像组信息的帧索引,则网络设备可以根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息。即上述对应的图像组信息中包含有直播客户端丢失的直播视频帧的信息。
网络设备可以通过备用路,发送上述对应的图像组信息至直播客户端。直播客户端接收到图像组信息后,可以对图像组信息进行解码播放,例如直播客户端对图像组信息中的直播视频帧进行解码,进而对解码后的直播视频帧进行播放,实现直播中断后的中继。
上述直播数据接收方法中,通过将从直播源获取直播流,检测到直播丢帧时,发送丢帧重传请求到网路设备时,网络设备根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息,并通过备用路发送至直播客户端。相较于传统的通过切换低码率的方式实现直播的中继,本方案通过同时建立主路和备用路,通过缓存直播视频帧及其帧索引,直播中断时通过备用路发送缓存的图像组信息至客户端,提高了直播中继时直播画面的质量。
在一个实施例中,如图5所示,图5为另一个实施例中直播中继方法的流程示意图。本实施例中,上述网络设备可以是直播中继设备,上述主路的连接可以是基于快速用户数据报协议的连接,上述备用路连接可以是基于超文本传输协议的连接。直播客户端需要播放直播视频时,可以向直播中继设备发送快速直播请求,直播中继设备将直播请求转发至直播源,并通过一路快速用户数据报协议的连接,从直播源中获取到直播流,其中直播流中的各用户数据报帧包头包含时间戳和同步标识符。直播中继设备建立与直播客户端的基于快速用户数据报协议的连接,以及基于超文本传输协议的连接。
在直播中继设备得到直播流后,直播中继设备可以通过上述基于快速用户数据报协议的连接,将直播流透传至直播客户端。同时,直播中继设备还可以建立图像组信息的缓存信息表,记录当前图像组信息对应的用户数据报协议的包头帧信息,包括时间戳和同步标识符等。
当直播客户端发送丢帧时,例如检测到用户数据报的帧头信息存在丢包情况,直播客户端可以通过超文本传输协议的Get请求,在超文本传输协议的Head中扩展字段,通过上述超文本传输协议的连接,向直播中继设备发送携带丢失的直播视频帧的帧索引的丢帧重传请求。直播中继设备基于上述Head中携带的扩展字段中的帧索引,查询图像组信息的信息表,直播中继设备通过比对丢帧重传请求携带的帧索引与直播中继设备中记录的帧索引,确定与丢帧重传请求中的帧索引对应的图像组信息。直播中继设备将上述对应的图像组信息,通过超文本传输协议的连接,发送至直播客户端,从而直播客户端可以对上述对应的图像组信息进行解码播放,恢复直播。
通过上述实施例,终端通过同时建立主路和备用路,引入QUIC直播中继的双路方式,构建满足直播质量要求的QUIC-UDP快发及HTTP丢包重传流的机制,通过缓存直播视频帧及其帧索引,直播中断时通过备用路发送缓存的图像组信息至客户端,提高了直播中继时直播画面的质量。并且,直播中继设备的双路流中,一路流快发保持视频流稳定持续发送,另外一路流采用按需TCP有保障的发送,降低直播服务压力,同时也可以保证视频服务质量。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的直播中继方法、直播数据接收方法的直播中继装置和直播数据接收装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个直播中继装置和直播数据接收装置实施例中的具体限定可以参见上文中对于直播中继方法、直播数据接收方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种直播中继装置,包括:第一建立模块500、直播记录模块502、丢帧重传模块504和发送模块506,其中:
第一建立模块500,用于建立与直播客户端之间的主路和备用路的连接。
直播记录模块502,用于从直播源获取直播流,将直播流通过主路发送至直播客户端,及根据直播流缓存直播视频帧的图像组信息得到直播缓存信息,并记录图像组信息对应的帧索引。
丢帧重传模块504,用于通过备用路接收到直播客户端的丢帧重传请求时,根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取对应的图像组信息。
发送模块506,用于通过备用路发送对应的图像组信息至直播客户端。
在一个实施例中,上述直播记录模块502,用于将直播客户端发起的直播请求转发至对应的直播源;接收直播源发送的一路直播流。
在一个实施例中,上述直播记录模块502,用于根据直播流在主路的帧包头,得到直播视频帧的时间戳和同步标识符;将直播视频帧的时间戳和同步标识符作为对应图像组信息的帧索引进行记录。
在一个实施例中,上述丢帧重传模块504,用于根据丢帧重传请求中携带的时间戳和同步标识符,与记录的时间戳和同步标识符的比对,从直播缓存信息中获取丢帧重传请求中携带的时间戳和同步标识符对应的图像组信息。
在一个实施例中,上述第一建立模块500,用于建立与直播客户端之间的基于快速用户数据报协议的连接,作为主路;建立与直播客户端之间的基于超文本传输协议的连接,作为备用路。
在一个实施例中,如图7所示,提供了一种直播数据接收装置,包括:第二建立模块600、直播模块602、请求模块604和接收模块606,其中:
第二建立模块600,用于建立与网络设备之间的主路和备用路的连接。
直播模块602,用于通过主路接收网络设备发送的直播流;直播流由网络设备从直播源获取。
请求模块604,用于检测到直播丢帧时,将携带帧索引的丢帧重传请求通过备用路发送网络设备。
接收模块606,用于通过备用路接收网络设备发送的帧索引对应的图像组信息;其中,对应的图像组信息由网络设备根据丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取;直播缓存信息由网络设备根据从直播源获取的直播流缓存直播视频帧的图像组信息得到,记录的帧索引由网络设备缓存图像组信息时记录得到。
在一个实施例中,上述请求模块604,用于检测到来自主路的直播流连续丢帧数超过阈值时,根据丢失的直播视频帧对应的时间戳和同步标识符,生成携带时间戳和同步标识符的丢帧重传请求;通过备用路发送丢帧重传请求至网络设备。
上述直播中继装置和直播数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是网络设备或客户端,其内部结构图可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种直播中继方法、直播数据接收方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的直播中继方法、直播数据接收方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的直播中继方法、直播数据接收方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的直播中继方法、直播数据接收方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (12)
1.一种直播中继方法,其特征在于,所述方法包括:
建立与直播客户端之间的主路和备用路的连接;
从直播源获取直播流,将所述直播流通过所述主路发送至所述直播客户端,及根据所述直播流缓存直播视频帧的图像组信息得到直播缓存信息,并记录图像组信息对应的帧索引;
通过所述备用路接收到所述直播客户端的丢帧重传请求时,根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从所述直播缓存信息中获取对应的图像组信息;
通过所述备用路发送所述对应的图像组信息至所述直播客户端。
2.根据权利要求1所述的方法,其特征在于,所述从直播源获取直播流,包括:
将所述直播客户端发起的直播请求转发至对应的直播源;
接收所述直播源发送的一路直播流。
3.根据权利要求1所述的方法,其特征在于,所述记录图像组信息对应的帧索引,包括:
根据所述直播流在所述主路的帧包头,得到直播视频帧的时间戳和同步标识符;
将所述直播视频帧的时间戳和同步标识符作为对应图像组信息的帧索引进行记录。
4.根据权利要求3所述的方法,其特征在于,所述根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从所述直播缓存信息中获取对应的图像组信息,包括:
根据所述丢帧重传请求中携带的时间戳和同步标识符,与记录的时间戳和同步标识符的比对,从所述直播缓存信息中获取所述丢帧重传请求中携带的时间戳和同步标识符对应的图像组信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述建立与直播客户端之间的主路和备用路的连接,包括:
建立与直播客户端之间的基于快速用户数据报协议的连接,作为主路;
建立与所述直播客户端之间的基于超文本传输协议的连接,作为备用路。
6.一种直播数据接收方法,其特征在于,所述方法包括:
建立与网络设备之间的主路和备用路的连接;
通过所述主路接收所述网络设备发送的直播流;所述直播流由所述网络设备从直播源获取;
检测到直播丢帧时,将携带帧索引的丢帧重传请求通过所述备用路发送所述网络设备;
通过所述备用路接收所述网络设备发送的所述帧索引对应的图像组信息;
其中,所述对应的图像组信息由所述网络设备根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取;所述直播缓存信息由所述网络设备根据从所述直播源获取的直播流缓存直播视频帧的图像组信息得到,所述记录的帧索引由所述网络设备缓存所述图像组信息时记录得到。
7.根据权利要求6所述的方法,其特征在于,所述检测到直播丢帧时,将携带帧索引的丢帧重传请求通过所述备用路发送所述网络设备,包括:
检测到来自所述主路的直播流连续丢帧数超过阈值时,根据丢失的直播视频帧对应的时间戳和同步标识符,生成携带所述时间戳和同步标识符的丢帧重传请求;
通过所述备用路发送所述丢帧重传请求至所述网络设备。
8.一种直播中继装置,其特征在于,所述装置包括:
第一建立模块,用于建立与直播客户端之间的主路和备用路的连接;
直播记录模块,用于从直播源获取直播流,将所述直播流通过所述主路发送至所述直播客户端,及根据所述直播流缓存直播视频帧的图像组信息得到直播缓存信息,并记录图像组信息对应的帧索引;
丢帧重传模块,用于通过所述备用路接收到所述直播客户端的丢帧重传请求时,根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从所述直播缓存信息中获取对应的图像组信息;
发送模块,用于通过所述备用路发送所述对应的图像组信息至所述直播客户端。
9.一种直播数据接收装置,其特征在于,所述装置包括:
第二建立模块,用于建立与网络设备之间的主路和备用路的连接;
直播模块,用于通过所述主路接收所述网络设备发送的直播流;所述直播流由所述网络设备从直播源获取;
请求模块,用于检测到直播丢帧时,将携带帧索引的丢帧重传请求通过所述备用路发送所述网络设备;
接收模块,用于通过所述备用路接收所述网络设备发送的所述帧索引对应的图像组信息;
其中,所述对应的图像组信息由所述网络设备根据所述丢帧重传请求携带的帧索引与记录的帧索引的比对,从直播缓存信息中获取;所述直播缓存信息由所述网络设备根据从所述直播源获取的直播流缓存直播视频帧的图像组信息得到,所述记录的帧索引由所述网络设备缓存所述图像组信息时记录得到。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310876412.0A CN117082266A (zh) | 2023-07-17 | 2023-07-17 | 直播中继方法、直播数据接收方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310876412.0A CN117082266A (zh) | 2023-07-17 | 2023-07-17 | 直播中继方法、直播数据接收方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117082266A true CN117082266A (zh) | 2023-11-17 |
Family
ID=88703281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310876412.0A Pending CN117082266A (zh) | 2023-07-17 | 2023-07-17 | 直播中继方法、直播数据接收方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117082266A (zh) |
-
2023
- 2023-07-17 CN CN202310876412.0A patent/CN117082266A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889543B (zh) | 视频传输的方法、根节点、子节点、p2p服务器和*** | |
JP5746392B2 (ja) | モバイルデバイスからワイヤレスディスプレイにコンテンツを送信するシステムおよび方法 | |
JP4585479B2 (ja) | サーバ装置および映像配信方法 | |
KR102106298B1 (ko) | 추가 콘텐츠 및 관련된 클라이언트 장치 | |
WO2016049987A1 (zh) | 一种数据处理方法、装置及相关服务器 | |
CN107819809B (zh) | 对内容进行同步操作的方法及装置 | |
CN109068147A (zh) | 一种多媒体数据传输方法、装置以及相关设备 | |
JP2006174045A (ja) | 画像配信装置、プログラム及び方法 | |
US9232244B2 (en) | Efficient frame forwarding in large scale real-time screen content sharing meetings | |
US20220014574A1 (en) | Data distribution method and network device | |
KR20120011969A (ko) | Rtsp 세션에 기초해 스트리밍 데이터를 송수신하는 방법 및 장치 | |
US20070160048A1 (en) | Method for providing data and data transmission system | |
WO2020052017A1 (zh) | 数据分发***、方法及计算机可读存储介质 | |
CN105027572A (zh) | 用于通过丢弃视频帧来降低在网络上传送视频所需的比特率的方法 | |
US11848973B2 (en) | Media stream sending method, apparatus, system and device | |
JP2015138990A (ja) | 受信装置、送信装置及び通信システム | |
CN117082266A (zh) | 直播中继方法、直播数据接收方法、装置、设备和介质 | |
WO2019217127A1 (en) | Client side data stream processing | |
JP3927486B2 (ja) | ストリーミング配信装置、ストリーミング配信システム、及びストリーミング配信方法 | |
KR20150075132A (ko) | 패킷을 전송하는 네트워크 장치 및 방법, 그리고 패킷을 수신하는 디바이스 | |
JP2007150755A (ja) | データ送信装置及び方法 | |
CN116264619A (zh) | 资源处理方法、装置、服务器、终端、***及存储介质 | |
JP2013207431A (ja) | 送信端末装置、データ送受信システム、データ送信方法、及び、プログラム | |
WO2015153723A1 (en) | A method and system for real-time cloud storage of video content | |
WO2018012591A1 (ja) | アプリケーション層マルチキャスト配信方法 |
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 |