CN114979793A - 一种直播数据传输方法、装置、系统、设备和介质 - Google Patents

一种直播数据传输方法、装置、系统、设备和介质 Download PDF

Info

Publication number
CN114979793A
CN114979793A CN202210515125.2A CN202210515125A CN114979793A CN 114979793 A CN114979793 A CN 114979793A CN 202210515125 A CN202210515125 A CN 202210515125A CN 114979793 A CN114979793 A CN 114979793A
Authority
CN
China
Prior art keywords
live broadcast
data
live
transmission channel
channel
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
Application number
CN202210515125.2A
Other languages
English (en)
Inventor
陈鉴平
于涌溢
刘强华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202210515125.2A priority Critical patent/CN114979793A/zh
Publication of CN114979793A publication Critical patent/CN114979793A/zh
Priority to PCT/CN2023/093270 priority patent/WO2023217188A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开实施例公开了一种直播数据传输方法、装置、系统、设备和介质。该方法应用于直播服务器,包括:接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。通过本公开实施例的技术方案,可以实现直播数据帧的非可靠传输,保证直播数据的播放效果,提升用户体验。

Description

一种直播数据传输方法、装置、系统、设备和介质
技术领域
本公开实施例涉及互联网技术,尤其涉及一种直播数据传输方法、装置、系统、设备和介质。
背景技术
在直播应用场景中,服务器需要将直播数据传输给直播客户端。一般的,直播数据的传输依赖于传输层的传输协议,使用不同的传输协议相当于使用不同的数据传输方式来传输直播数据。目前,直播数据在传输层传输可以采用的传输协议有TCP(TransmissionControl Protocol)协议或QUIC(Quick UDP Internet Connection)协议。
其中,基于TCP的传输为可靠传输,QUIC协议在本质上也为可靠传输,通过上述协议进行直播数据流的可靠传输时,直播客户端会因网络传输延迟影响直播画面播放,从而影响了直播数据的播放效果,降低直播客户端的用户体验。
发明内容
本公开实施例提供了一种直播数据传输方法、装置、系统、设备和介质,以实现直播数据的非可靠传输,保证直播数据的播放效果,提升用户体验。
第一方面,本公开实施例提供了一种直播数据传输方法,应用于直播服务器,包括:
接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;
创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;
通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;
通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
第二方面,本公开实施例还提供了一种直播数据传输方法,应用于直播客户端,包括:
通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;
接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;
通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
第三方面,本公开实施例还提供了一种直播数据传输装置,集成于直播服务器,包括:
请求接收模块,用于接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;
通道创建模块,用于创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;
信息发送模块,用于通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;
数据帧发送模块,用于通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
第四方面,本公开实施例还提供了一种直播数据传输装置,集成于直播客户端,包括:
请求发送模块,用于通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;
数据包接收模块,用于接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;
直播数据确定模块,用于通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
第五方面,本公开实施例还提供了一种直播数据传输系统,所述系统包括:直播服务器和直播客户端;
其中,所述直播服务器用于实现如第一方面所提供的直播数据传输方法;
所述直播客户端用于实现如第二方面所提供的直播数据传输方法。
第六方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开任意实施例所提供的直播数据传输方法。
第七方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任意实施例所提供的直播数据传输方法。
本公开实施例中的直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流,该直播播放请求是通过直播客户端所建立可靠类型的第一流传输通道传输的。然后直播服务器创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。直播服务器通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端。上述技术方案,基于直播服务器创建的非可靠类型的第二流传输通道,可以实现直播数据帧的非可靠传输,避免会因网络传输延迟影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例一提供的一种直播数据传输方法的流程图;
图2是本公开实施例二提供的一种直播数据传输方法的流程图;
图3为本公开实施例二所涉及的一种直播数据传输过程的示例图;
图4是本公开实施例三提供的一种直播数据传输方法的流程图;
图5是本公开实施例四提供的一种直播数据传输方法的流程图;
图6为本公开实施例四所涉及的缓存偏移指针移动的示例图;
图7是本公开实施例五提供的一种直播数据传输装置的结构示意图;
图8是本公开实施例六提供的一种直播数据传输装置的结构示意图;
图9是本公开实施例七提供的一种直播数据传输系统的结构示意图;
图10是本公开实施例八提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
实施例一
图1为本公开实施例一提供的一种直播数据传输方法的流程图,本实施例可适用于以非可靠类型的流传输通道对直播数据进行传输,以保证直播数据播放效果的情况。该方法可以由直播数据传输装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于直播服务器中。如图1所示,该方法具体包括以下步骤:
S110、接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流。
其中,直播播放请求通过直播客户端所建立可靠类型的第一流传输通道传输。
可以清楚的是,随着互联网技术及智能移动终端设备的发展,直播是时下比较火热的娱乐学习形式,能够给人们带来更实时的社交体验。直播是一种在现场随着事件的发生,同步制作并发布关于事件的发展进程的信息流,具有双向流通过程的信息网络发布方式。为了更好的用户体验,需要保证直播画面不出现延迟。
在直播场景中,一般包括直播客户端、直播服务器、主播客户端。其中,直播客户端是指观众用户所使用的客户端,观众用户是指观看主播用户的直播内容的用户;主播客户端是指主播用户所使用的客户端,主播用户是指进行直播内容的用户;直播服务器是指在直播客户端和主播客户端之间提供信息交互服务的服务器。客户端可以包括但不限于:智能手机、平板电脑、膝上计算机以及台式电脑等终端设备,或者运行于终端设备中具有直播功能的APP(application,应用程序)。主播客户端可以实时地将主播用户的直播内容上传到直播服务器,由直播服务器将直播内容下发至直播客户端进行显示,以供观众用户实时观看主播用户的直播内容。本实施例中主要针对直播客户端和直播服务器之间的交互进行描述。
其中,当用户有观看直播播放需求时,通过在直播客户端针对直播观看提示信息操作,即生成直播播放请求。直播播放请求可以包括待直播数据流标识等内容,本实施例中对直播播放请求的构成形式不做具体限制。例如,可以是包含待直播数据流标识的报文。在发送直播播放请求之前,直播客户端和直播服务端之间应正常建立连接,直播客户端需要基于预设的传输协议先建立与直播服务器之间的流传输通道,用以实现直播客户端与直播服务器之间的通信。
本实施例中,流传输通道包括可靠类型的流传输通道和非可靠类型的流传输通道。可靠类型的流传输通道可以理解为接收端在接收到发送端发送的某个数据包后,可以向发送端发送该接收包对应的确认消息或者发送一个确认帧,使得发送端在接收到该确认消息或者该确认帧后继续发送下一个数据包,从而保证接收端在接收到该数据包后,发送端再继续发送下一数据包。本步骤中,直播客户端可以相对看做是发送端,直播服务器可以相对看做是接收端。
本实施例中,直播客户端建立的流传输通道为可靠类型的流数据传输通道,记为第一流传输通道。考虑到直播播放请求是比较关键的信息,需要知道直播播放请求是否发送成功,也可以理解为需要得到直播服务器的响应,因此,直播客户端发送的直播播放请求通过直播客户端所建立可靠类型的第一流传输通道传输。
需要说明的是,主播客户端可以实时地将主播用户的直播内容上传到直播服务器,即直播服务器需要从主播客户端获取数据流。直播数据流是指进行连续直播所需的连续数据流,直播数据流主要包括音视频数据流。具体的,当直播客户端通过第一流传输通道发送直播播放请求后,直播服务器接收直播播放请求。直播服务器对直播播放请求进行解析,获得直播播放请求中包含的待直播数据流标识。可以理解的是,直播服务器从主播客户端不断获取直播数据流,每个直播数据流对应唯一的标识。根据解析出的待直播数据流标识,从直播服务器中查询到与之匹配的数据流标识,就可以确定与直播播放请求相匹配的直播数据流。该确定出的直播数据流将作为待传输的对象,用于后续传输。
S120、创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。
其中,非可靠类型的流传输通道是相对可靠类型传输通道而言的。非可靠类型传输通道可以理解为通过该传输通道进行数据传输后,接收端对已成功接收的数据不需要发回一个相应的确认给到发送端,允许放弃重传丢包数据,而去发送已经产生的新数据。本步骤中,直播客户端可以相对看做是发送端,直播服务器可以相对看做是接收端。非可靠类型的流传输通道可以实现数据的非可靠传输,从而保证数据的实时性。
本步骤中,直播服务器根据预设的传输协议创建非可靠类型的流传输通道作为第二流传输通道。为了保证该直播播放请求相关的内容通过该直播播放请求对应的第一流传输通道和第二流传输通道传输,第二流传输通道需与第一流传输通道建立关联。建立关联的方式可以是,将第一流传输通道的标识与第二流传输通道的标识进行绑定,使其具有一一对应关系。这样当知道其中一条流传输通道的标识,就可以确定与之关联的另一条流传输通道。其中流传输通道的标识可以理解为是流传输通道的唯一标识,流传输通道与标识具有一一对应的关系。
具体的,本步骤是在上述步骤S110之后进行的,直播服务器根据预设的传输协议创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。
当执行完步骤S110和步骤S120之后,直播客户端与直播服务器之间建立了两条流传输通道,包括第一流传输通道和第二流传输通道,用于直播客户端与直播服务器之间的交互通信。步骤S130和步骤S140将具体介绍通过第一流传输通道和第二流传输通道分别进行哪些信息的传输。
S130、通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端。
其中,直播播放请求的响应信息表示直播服务器接收到了直播客户端发送过来的直播播放请求所生成的应答信息。本实施例中,将直播服务器要发送给直播客户端的信息分别通过上述步骤创建的两个流传输通道进行传输,其中直播播放请求的响应信息通过第一流传输通道发送至直播客户端,以告知直播客户端,直播服务器已成功接收到直播播放请求。
本实施例中,直播数据流中是指进行连续直播所需的连续数据流,直播数据流由多个直播数据帧组成,每个直播数据帧又可以分为一个或多个数据包。本步骤中将直播数据流中直播数据帧的信息分成两部分,其中一部分为直播数据帧的关键信息,另一部分为直播数据帧中的音视频数据。其中,关键信息是指不能发生丢包,必须发送成功的信息,例如,头文件以及音视频解码关键数据等。
本实施例中,直播数据流中直播数据帧的关键信息通过第一流传输通道发送至直播客户端。第一流传输通道为可靠类型的流传输通道,通过该通道进行传输关键信息,可以确保直播客户端接收到数据包后,直播服务器才能再继续发送下一个数据包,从而保证不会丢包。
可以理解的是,为了使直播播放请求的响应信息以及直播数据流中直播数据帧的关键信息通过第一流传输通道进行传输,需要将直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装形成报文,并将直播数据流中直播数据帧的关键信息同样按照预设传输协议的可靠类型报文格式进行封装,形成数据包。优选的,本实施例中的预设传输协议选用QUIC协议,QUIC协议包括可靠流类型和非可靠流类型。将形成的报文和数据包通告第一流传输通道进行传输。
S140、通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端。
现有技术中,直播客户端和直播服务器之间进行通信均是基于可靠类型的流传输通道,直播数据流中各直播数据帧是按照预设传输协议的可靠类型报文格式,通过可靠类型的流传输通道进行传输,这样就会出现,当直播客户端在接收某直播数据帧中数据包,若某数据包丢失一直接收不完全或者网速较慢时,则直播客户端会一直等待接收该待接收数据包,并且不会将已接收到的该帧数据进行封装上传给应用层,也就不会形成此直播数据帧对应的直播画面,从而导致直播画面一直停留在上一针直播数据帧对应的画面,从而出现直播画面卡顿、延迟的现象。
考虑到即使丢失一个或几个直播数据帧未传输到直播客户端,也不会对最终形成的直播画面造成很大影响。本实施例中,直播数据流中各直播数据帧通过第二流传输通道发送至直播客户端。第二流传输通道为非可靠类型的流传输通道,通过该通道进行传输数据包,可以允许有丢包现象,不用确保直播客户端接收到数据包后,直播服务器才能再继续发送下一个数据包。也可以理解为直播服务器可以不断发送数据包,而不用确认上一个数据包是否被直播客户端接收成功。
本实施例中,可以设置若直播客户端在设定时间内没有接收完整某直播数据帧的所有数据包,则考虑将该帧丢弃。而不会因为一直等待某数据包而无法接收下一个直播数据帧的数据包而造成画面延迟或卡顿。即时因网络传输延迟也不会影响直播画面播放,保证了直播数据的播放流畅性。
需要说明的是,步骤S130和步骤S140的执行顺序不做具体限制,可能是通过第一流传输通道发送的信息先到达直播客户端,也可能是通过第二流传输通道发送的信息先达到直播客户端,又或者通过第一流传输通道发送的信息和通过第二流传输通道发送的信息同时到达直播客户端。
本实施例中,直播数据流可以理解为包含若干直播数据帧的数据集,直播数据帧以流动的方式输出。直播数据帧中包含一个或多个数据包。数据包可以是指直播服务器每次向直播客户端发送的数据,比如,QUIC包。
具体地,直播服务器可以基于预设数据包大小和直播数据流中的每个直播数据帧大小,对确定的直播数据流中的各个直播数据帧进行数据划分和打包,获得直播数据流对应的各个数据包。若某个直播数据帧大小大于预设数据包大小,则可以将该直播数据帧打包为至少两个数据包进行发送。直播服务器按照数据包的先后打包顺序,将直播数据流对应的各个数据包依次通过第二流传输通道发送至直播客户端。
本公开实施例的技术方案,直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流,该直播播放请求是通过直播客户端所建立可靠类型的第一流传输通道传输的。然后直播服务器创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。直播服务器通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端。上述技术方案,基于直播服务器创建的非可靠类型的第二流传输通道,可以实现直播数据帧的非可靠传输,避免会因网络传输延迟影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
在上述技术方案的基础上,在创建与第一流传输通道相关联非可靠类型的第二流传输通道之后,该方法还包括:通过第一流传输通道,将表征第二流传输通道与第一流传输通道关联的关联帧发送至直播客户端,以使直播客户端通过关联帧确定第一流传输通道与第二流传输通道存在关联。
具体的,上述实施例中,为了保证该直播播放请求相关的内容通过该直播播放请求对应的第一流传输通道和第二流传输通道传输,第二流传输通道需与第一流传输通道建立关联。相应的,在直播服务器创建与第一流传输通道相关联非可靠类型的第二传输通道之后,第二流传输通道与第一流传输通道建立的关联关系需要发送至直播客户端,以使直播客户端通过关联帧确定第一流传输通道与第二流传输通道存在关联。
本步骤中将第一流传输通道与第二流传输通道存在的关联关系可以以关联帧的形式表征。其中,关联帧包括:流传输通道的关联映射信息,关联映射信息包括第一流传输通道及第二流传输通道分别具备的通道标识。可以理解的是,通道标识可以作为流传输通道的身份标识,每个流传输通道对应唯一的通道标识。具体的,通过第一流传输通道将表征第二流传输通道与第一流传输通道关联的关联帧发送至直播客户端。这样,直播客户端可以根据关键帧保证接收的数据是针对同一个数据帧进行合成。
通过将非可靠类型的流传输通道和可靠类型的流传输通道进行关联,从而确定通过不同的流传输通道传输过来的哪些信息是针对同一直播数据帧的,以实现正确确定直播数据帧。
实施例二
图2为本公开实施例二提供的一种直播数据传输方法的流程图,本实施例在上述实施例一的基础上,对“创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联”、“通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端”以及“通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端”进行了进一步优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的直播数据传输方法具体包括以下步骤:
S210、接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流。
其中,直播播放请求通过直播客户端所建立可靠类型的第一流传输通道传输。
S220、基于预设传输协议构建非可靠类型数据流传输所需的流传输通道,记为第二流传输通道。
其中,预设传输协议是指直播客户端和直播服务器之间传输信息的标准。优选的,本实施例中预设传输协议选用QUIC协议。QUIC协议包括可靠流类型和非可靠流类型。可靠流类型是指不允许放弃重传丢包数据,只有接收端收到完整数据后,才能发送产生的新数据。非可靠流类型是指QUIC协议中新增的一种流类型。非可靠流可以是指允许放弃重传丢包数据,而去发送已经产生的新数据,从而实现了非可靠传输,保证了数据的实时性。
可以知道的是,至此,本实施例中直播客户端和直播服务器之间构建了第一流传输通道和第二流传输通道。其中第一流传输通道用于传输可靠类型数据流,其二流传输通道用于传输非可靠类型数据流。
S230、获取第一流传输通道的第一通道标识,以及第二流传输通道的第二通道标识。
本实施例中,在构建完第一流传输通道和第二流传输通道后,需要将第一流传输通道和第二流传输通道进行绑定,以表征通过该两通道发送的数据是相关联的。可以理解的是,通道标识可以作为流传输通道的身份标识,每个流传输通道对应唯一通道标识。具体的,获取第一流传输通道的通道标识,记为第一通道标识;获取第二流传输通道的通道标识,记为第二通道标识。
S240、基于第一通道标识和第二通道标识,形成表征第二流传输通道与第一流传输通道关联关系的关联映射信息。
具体的,在获取第一通道标识和第二通道标识后,可以将第一通道标识和第二通道标识进行绑定,对于一组的第一通道标识与第二通道标识具有一一对应的关系。当存在多组相关联的第一流传输通道和第二流传输通道时,则会形成多个表征第二流传输通道与第一流传输通道关联关系的关联映射信息。在已知第一通道标识的情况下,可以通过查询关联映射信息,获取与第一通道标识对应的第二通道标识。同样的,在已知第二通道标识的情况下,可以通过查询关联映射信息,获取与第二通道标识对应的第一通道标识。
S250、将直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装,形成响应报文,并通过第一流传输通道发送至直播客户端。
可以理解的是,直播播放请求是由直播客户端通过第一流传输通道发送至直播服务器的,第一流传输通道为可靠类型的传输通道,则直播服务器在成功接收到直播播放请求后,需要生成直播播放请求的响应信息。直播播放请求的响应信息表征直播服务器已成功接收到直播客户端发送的直播播放请求。之后,直播服务器需要将直播播放请求的响应信息通过封装,发送至直播客户端,以告知直播客户端“直播服务器已成功接收直播播放请求”。
同样,直播播放请求是否被直播服务器成功接收,是需要告知直播客户端的,是不能被丢包的,因此将直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装,形成响应报文。优选的,本实施例中的预设传输协议选用QUIC协议,QUIC协议包括可靠流类型和非可靠流类型。本步骤中是基于可靠流类型,将直播播放请求的响应信息进行封装。已知第一流传输通道是可靠类型的通道,则封装后的响应报文通过第一流传输通道发送至直播客户端。
在完成构建第一流传输通道和第二流传输通道,直播服务器将直播服务请求的响应报文发送至直播客户端后,直播服务器就可以通过已构建的两个流传输通道将直播数据流的相关信息发送至直播客户端。
现有技术中,直播数据流中的直播数据帧都是按照可靠类型报文格式进行封装,形成数据包,通过可靠类型的流传输通道发送至直播客户端,直播客户端再将收到的直播数据帧对应的数据包交付给应用层。需要知道的是,直播客户端交付给应用层的时机是,当接收到一个完整的直播数据帧后,才会将直播数据帧交付给应用层。当网络传输延迟时,有可能会导致数据包丢失或发送延迟,只通过可靠类型的流传输通道进行数据包传输,若数据包丢失或发送延迟,会出现直播客户端会一直等待接收该帧中剩余数据包,直播客户端无法将该数据帧交付给应用层,导致最终直播画面停留在上一帧直播数据帧对应的直播画面,出现直播界面延迟或卡顿的现象。
针对此问题,本实施例将直播数据流中直播数据帧的信息分开,分别通过可靠类型的流传输通道和非可靠类型的流传输通道进行传输。其中第一流传输通道为可靠类型的流传输通道,第二流传输通道为非可靠类型的流传输通道。将直播数据帧分为两部分:直播数据帧的文件头以及解码所需的关键信息为一部分,直播数据帧中音视频数据为一部分。考虑到直播数据帧的文件头以及解码所需的关键信息为十分重要的信息,不能出现数据包丢失等情况,因此,将直播数据帧的文件头以及解码所需的关键信息进行封装,通过可靠类型的流传输通道进行传输,也就是通过第一流传输通道进行传输。而对于直播数据帧中的音视频数据,即时丢失一包或几包数据,也不会影响最终直播界面的显示,因此,将直播数据帧的音视频数据进行封装,通过非可靠类型的流传输通道进行传输,也就是通过第二流传输通道进行传输。
下述步骤S260-步骤S270是对直播数据帧中文件头以及解码所需的关键数据进行封装、传输的介绍,步骤S280-步骤S290是对直播数据帧中音视频数据进行封装、传输的介绍。
S260、针对直播数据流中每个直播数据帧,确定直播数据帧的文件头以及解码所需的关键数据。
可以理解的是,要想最终显示直播画面,需要对客户端接收的信息进行解码,以实现还原原始音视频,因此解码所需的关键数据是十分重要的。具体的,直播数据流包含若干直播数据帧,对于直播数据流中每个直播数据帧,需要先确定出数据帧的文件头以及解码所需的关键数据。
S270、将文件头及关键数据按照可靠类型报文格式进行封装,形成相对直播数据帧的关键信息数据包,并通过第一流传输通道发送至直播客户端。
具体的,将文件头及关键数据按照可靠类型报文格式进行封装,形成相对直播数据帧的关键信息数据包。直播服务器可以基于预设数据包大小和直播数据流中的每个直播数据帧大小,对直播数据流中的各个直播数据帧进行数据划分和打包,获得直播数据流对应的各个关键信息数据包。若某个直播数据帧大小大于预设数据包大小,则可以将该直播数据帧打包为至少两个关键信息数据包进行发送。直播服务器按照关键信息数据包的先后打包顺序,将直播数据流对应的各个关键信息数据包依次发送至直播客户端。
S280、针对直播数据流中每个直播数据帧,将直播数据帧中音视频数据按照预设传输协议的非可靠类型报文格式进行封装,形成至少一个直播数据包。
同样的,直播服务器可以基于预设数据包大小和直播数据流中的每个直播数据帧大小,对直播数据流中的各个直播数据帧进行数据划分和打包,获得直播数据流对应的各个直播数据包。若某个直播数据帧大小大于预设数据包大小,则可以将该直播数据帧打包为至少两个直播数据包进行发送。
S290、通过第二流传输通道将各直播数据包发送至直播客户端。
具体的,直播服务器按照直播数据包的先后打包顺序,将直播数据流对应的各个直播数据包依次发送至直播客户端。
本实施例的技术方案,直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流后,基于预设传输协议构建非可靠类型数据流传输所需的流传输通道,记为第二流传输通道;并将第二流传输通道与第一流传输通道进行关联形成映射关系;直播服务器将直播数据流中各直播数据帧的内容分成直播数据帧的文件头以及解码所需的关键数据、直播数据帧的音视频数据。将这两部分数据分别进行封装,并将封装后的结果分别通过第一流传输通道和第二流传输通道进行传输至直播客户端。上述技术方案增加了非可靠类型的第二流传输通道,可以实现直播数据帧中的音视频数据的非可靠传输,避免会因网络传输延迟导致音视频数据丢包影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
在上述技术方案的基础上,该方法在通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至直播客户端的过程中,还包括:针对直播数据流中的每个直播数据帧,确定直播数据帧的过期时长,并当存在直播数据帧相关数据包的重传操作时,根据过期时长,执行直播数据帧的丢弃处理逻辑。
其中,直播数据帧的过期时长可以作为如果接收不到数据包,把数据包进行丢弃的时长基准。过期时长可以根据用于需求设定,例如,假设数据包由直播服务器发送到直播客户端的时间为T,可以设置直播数据帧的过期时长为5T。
具体的,针对直播数据流中的每个直播数据帧,确定直播数据帧的过期时长,若传输过程中发生数据包丢失,则直播服务器会将相关数据包进行重传。直到重传操作执行时间超过过期时长仍未收到丢失数据包时,则可以将该不完整的直播数据帧进行丢弃。
进一步地,当存在直播数据帧相关数据包的重传操作时,根据过期时长,执行直播数据帧的丢弃处理逻辑,包括:
a)如果确定直播数据帧的相关直播数据包在传输过程中发生丢包,则通过第二流传输通道重新发送相关直播数据包,并在首次出现直播数据帧的数据包重传时,启动重传计时。
其中,确定直播数据帧的相关直播数据包在传输过程中发生丢包的方式可以是:确定直播客户端在数据包正常由直播服务器发送到直播客户端的时间内未收到数据包,则可以确定传输过程中发生了丢包。
具体的,如果确定直播数据帧的直播数据包在传输过程中发生丢包,则继续通过第二流传输通道重新发送相关直播数据包,直播数据包可以理解为丢失的数据包。并且,在首次出现直播数据帧的数据包重传时,启动重传计时,以确定重传时长。
b)如果重传计时的累计时长超过过期时长,则形成相对直播数据帧的过期信息数据包,并发送至直播客户端,以使直播客户端从数据缓存列表中丢弃直播数据帧的相关数据。
具体的,如果重传计时的累计时长超过过期时长,则可以通知直播客户端将该存在丢包的直播数据帧的相关数据丢弃,以进行下一直播数据帧的传输。通知直播客户端丢弃直播数据帧的相关数据的方式可以是,直播服务器形成相对直播数据帧的过期信息数据包,并发送至直播客户端。
示例性的,图3为本公开实施例二所涉及的一种直播数据传输过程的示例图,如图3所示,1、直播客户端与直播服务器正常建立连接,直播客户端创建可靠类型的第一流传输通道,命名为“rs”;2、直播客户端通过第一流传输通道rs向直播服务器发送直播播放请求;3、直播服务器收到请求后,确定与直播播放请求匹配的直播数据流,并创建相第一流传输通道建立关联的非可靠类型的第二流传输通道,命名为“us”;4、直播服务器通过第一流传输通道传输rs向直播客户端发送表征第二流传输通道与第一流传输通道关联的关联帧,通知直播客户端将us与rs相关联;5、直播服务器通过第一流传输通道传输rs向直播客户端返回直播播放请求的响应信息,以及直播数据帧的文件头以及解码所需的关键数据;6、直播服务器通过第二流传输通道us向直播客户端发送音视频数据。
本可选实施例,在通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端的过程中,还包括:针对直播数据流中的每个直播数据帧,确定直播数据帧的过期时长,并当存在直播数据帧相关数据包的重传操作时,根据过期时长,执行直播数据帧的丢弃处理逻辑。现有技术中,缓存流数据的数据流列表队头会在网络质量不好时存在阻塞,而所出现的队头阻塞会导致直播画面出现大幅延迟,最新直播数据中的画面/语音可能已经缓存在直播客户端的数据流列表中,但却无法正常播放,从而影响了直播数据的播放效果,降低直播客户端的用户体验。本可选实施例的技术方案通过将丢包对应的直播数据帧丢弃,从而保证直播正常播放。
实施例三
图4为本公开实施例三提供的一种直播数据传输方法的流程图,本实施例可适用于以非可靠类型的流传输通道对直播数据进行传输,以保证直播数据播放效果的情况。该方法可以由直播数据传输装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于直播客户端中。如图4所示,该方法具体包括以下步骤:
S310、通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求。
其中,当用户有观看直播播放需求时,通过在直播客户端针对直播观看提示信息操作,即生成直播播放请求。直播播放请求可以包括待直播数据流标识等内容,本实施例中对直播播放请求的构成形式不做具体限制。例如,可以是包含待直播数据流标识的报文。在发送直播播放请求之前,直播客户端和直播服务端之间应正常建立连接,直播客户端需要基于预设的传输协议先建立与直播服务器之间的流传输通道,用以实现直播客户端与直播服务器之间的通信。
具体的,直播客户端通过建立可靠类型的第一流传输通道,使直播客户端与直播服务器正常建立连接。直播客户端通过第一流传输通道,向直播服务器发送直播播放请求。
S320、接收直播服务器相对直播播放请求通过第一流传输通道以及第二流传输通道发送的数据包。
本实施例中,第二流传输通道为直播服务器所创建非可靠类型的流传输通道。可以清楚的是,直播服务器在接收到直播播放请求后,创建了非可靠类型的第二流传输通道。
其中,通过第一流传输通道接收的数据包为:相对直播播放请求的响应报文、相对直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传上通道关联关系的关联帧;通过第二流传输通道接收的数据包为:相对直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。
本步骤中,数据包的确定和发送过程可参加上述实施例一中的相关描述,此处不再赘述。
S330、通过对从第一流传输通道及第二流传输通道所接收数据包的分析,确定与直播播放请求相匹配的待播放直播数据。
具体的,从第一流传输通道接收到相对直播播放请求的响应报文、相对直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传输通道关联关系的关联帧。通过直播播放请求的响应报文,直播客户端可以了解到直播服务器成功接收到直播播放请求。通过对关键信息数据包进行解封装,可以获得直播数据帧的文件头以及解码所需的关键数据。通过对关联帧进行解封装,可以获得第一流传输通道与第二流传输通道关联关系,就可以根据记录的与第一流传输通道的标识对应的第二流传输通道的标识,确定对应第二流传输通道收到的数据包为关联数据。
从第二流传输通道接收到相对直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。通过对直播数据包分析,即解封装,就可以获得音视频数据。
在从第一流传输通道中所接收数据包为直播播放请求的响应报文之后,通过分析直播客户端从第一流传输通道中接收到直播播放请求所关联直播数据帧的关键信息数据包、从第一流传输通道中接收到表征第二流传输通道与第一流传输通道关联的关联帧、从第二流传输通道接收到相对直播播放请求所匹配直播数据流中直播数据帧的直播数据包的先后顺序确定后续操作。可以理解的是,直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传输通道关联关系的关联帧到达直播客户端的先后顺序不做具体限制,但只有二者均达到直播客户端后,才能处理非可靠传输通道传输过来的数据(即音视频数据)。
如果符合处理条件则可以根据传输过来的数据确定直播数据帧交付至应用层,如果不符合处理条件则可以根据传输过来的数据先进行缓存以备用。
本公开实施例的技术方案,直播客户端通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求,直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流。然后直播服务器创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。直播服务器通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端,直播客户端通过对从第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。上述技术方案,基于直播服务器创建非可靠类型的第二流传输通道,可以实现直播数据帧的非可靠传输,避免会因网络传输延迟影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
实施例四
图5为本公开实施例四提供的一种直播数据传输方法的流程图,本实施例在上述实施例三的基础上,对步骤“通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据”进行了进一步优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图5,本实施例提供的数据传输方法具体包括以下步骤:
S410、通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求。
S420、接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包。
其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道。
S430、从第一流传输通道及第二流传输通道中接收数据包,并对所接收数据包的数据内容进行分析。
具体的,从第一流传输通道接收到相对直播播放请求的响应报文、相对直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传输通道关联关系的关联帧。通过直播播放请求的响应报文,直播客户端可以了解到直播服务器成功接收到直播播放请求。通过对关键信息数据包进行解封装,可以获得直播数据帧的文件头以及解码所需的关键数据。通过对关联帧进行解封装,可以获得第一流传输通道与第二流传输通道关联关系,就可以根据记录的与第一流传输通道的标识对应的第二流传输通道的标识,确定对应第二流传输通道收到的数据包为关联数据。
从第二流传输通道接收到相对直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。通过对直播数据包分析,即解封装,就可以获得音视频数据。
可以理解的是,直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传输通道关联关系的关联帧到达直播客户端的先后顺序不做具体限制,但只有二者均达到直播客户端后,才能处理非可靠传输通道传输过来的数据(即音视频数据)。当关联帧到达后会将可靠类型的流数据通道(即第一流传输数通道)与非可靠类型的流传输通道(即第二流传输通道)进行关系映射;当可靠类型的流的第一帧数据收到后,把已经完成映射的第二流传输通道传输过来的数据包进行标记,确定为工作状态。当直播数据帧的关键信息数据包或表征第一流传输通道与第二流传输通道关联关系的关联帧均未到达直播客户端,而第二流传输通道传输过来的数据包却先到达,则确定该状态为处于阻塞状态。
S440、分析确定所接收数据包是否满足状态触发条件,若不满足,则执行步骤S450,若满足,则执行步骤S460。
其中,状态触发条件为:在从第一流传输通道中所接收数据包为直播播放请求的响应报文之后,从第一流传输通道中接收到直播播放请求所关联直播数据帧的关键信息数据包;且还从第一流传输通道中接收到表征第二流传输通道与第一流传输通道关联的关联帧。
具体的,分析通过两个流传输通道传输的数据到达直播客户端的顺序,判断是否满足状态触发条件。若不满足,则执行步骤S450,若满足,则执行步骤S460。
S450、当分析确定所接收数据包不满足状态触发条件时,确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,并继续执行步骤S430。
具体的,当分析确定所接收数据包不满足状态触发条件时,也可以理解为,在从第一流传输通道中所接收数据包为直播播放请求的响应报文之后,未从第一流传输通道中接收到直播播放请求所关联直播数据帧的关键信息数据包;或者未从第一流传输通道中接收到表征第二流传输通道与第一流传输通道关联的关联帧,则确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,继续从第一流传输通道及第二流传输通道中接收数据包,执行所接收数据包的分析操作。
S460、当分析确定所接收数据满足状态触发条件时,确定当前处于工作状态,从数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据。
其中,直播数据帧为直播播放请求相匹配直播数据流中的数据帧。
具体的,当分析确定所接收数据包满足状态触发条件时,也可以理解为,在从第一流传输通道中所接收数据包为直播播放请求的响应报文之后,从第一流传输通道中接收到直播播放请求所关联直播数据帧的关键信息数据包;还从第一流传输通道中接收到表征第二流传输通道与第一流传输通道关联的关联帧,则确定流传输处于正常状态,从数据缓存列表中确定与直播播放请求相匹配的待播放直播数据。
本实施例的技术方案,细化了直播客户端通过对从第一流传输通道及第二流传输通道所接收数据包的分析,分析确定所接收数据包是否满足状态触发条件,当分析确定所接收数据包不满足状态触发条件时,确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,并继续执行所接收数据包的分析操作;否则,确定当前处于工作状态,从数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据。上述技术方案细化了状态触发条件限制,可以实现确定向用户应用层传输数据的时机。
在上述技术方案的基础上,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,包括:如果所接收数据包为第二流传输通道接收的直播数据包,确定所接收数据包中直播数据帧相关的数据信息,并将所述数据信息存至数据缓存列表。
其中,从第二流传输通道接收的直播数据包为音视频数据,即直播画面显示所需的基础数据。当分析确定所接收数据包不满足状态触发条件时,确定流传输处于阻塞状态,则确定所接收数据包中直播数据帧相关的数据信息,并将所述数据信息存至数据缓存列表。数据缓存列表,用于后续提供待播放直播数据。
在上述技术方案的基础上,从预设的数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据,包括:
a2)确定缓存偏移指针在数据缓存列表中指向的直播数据帧头。
其中,缓存偏移帧可以是指一种用于主动过期信息数据包的帧类型。缓存偏移帧可以携带有一个偏移值,来通知直播客户端和直播服务器不再重传到偏移值之前的所有数据。
b2)如果直播数据帧头所对应目标直播数据帧的数据内容完整,则将直播数据帧确定为待播放直播数据。
具体的,可以通过是否接收到目标直播数据帧的结束标识来判断目标直播数据帧的数据内容是否完整。如果直播数据帧头所对应目标直播数据帧的数据内容完整,则将直播数据帧确定为待播放直播数据。
c2)否则,以设定间隔重新执行目标直播数据帧的内容完整判定,直至接收到直播服务器相对目标直播数据帧发送的过期信息数据包。
具体的,若未接收到目标直播数据帧的结束标识,即直播数据帧头所对应目标直播数据帧的数据内容不完整,则以设定间隔重新执行目标直播数据帧的内容完整判段,直至接收到直播服务器相对目标直播数据帧发送的过期信息数据包。过期信息数据包的生成与发送过程可参考上述实施例三中的相关描述,此处不再赘述。
d2)将缓存偏移指针移动到目标直播数据帧下一帧的直播数据帧头,作为新的目标直播数据帧,并返回重新进行内容完整判定。
具体的,在接收到直播服务器相对目标直播数据帧发送的过期信息数据包后,将缓存偏移指针移动到目标直播数据帧下一帧的直播数据帧头,作为新的目标直播数据帧,并返回重新进行内容完整判定。
示例性地,图6为本公开实施例四所涉及的缓存偏移指针移动的示例图。如图6所示,A对应的数据边界帧(图6中用A的边界帧进行表征)和A的部分数据包(图6中用A的part1、part2进行表征),其它帧也同理。假设时刻1,直播客户端已完整接收C、D帧数据,但是一直未收到完整的A、B帧。时刻2接收到到过期信息数据包,当收到过期信息数据包时,直播客户端会移动缓存偏移指针,指向C帧的直播数据帧头位置,并且向应用层返回C、D帧数据,达到避免队头阻塞问题。
本可选实施例,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表的过程,以及从预设的数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据的过程。可选实施例的技术方案,可以实现在超过过期时长后,会自动丢弃过期过期数据,避免队头阻塞问题,保证了直播数据的播放效果,提升了直播客户端的用户体验。
以下是本公开实施例提供的直播数据传输装置的实施例,该装置与上述实施例一或实施例二的直播数据传输方法属于同一个发明构思,在直播数据传输装置的实施例中未详尽描述的细节内容,可以参考上述实施例一或实施例二。
实施例五
图7为本公开实施例五提供的一种直播数据传输装置的结构示意图,本实施例可适用于通过非可靠类型的流传输通道对直播数据进行传输,以保证直播数据播放效果的情况。如图7所示,该装置集成于直播服务器,具体包括:请求接收模块510、通道创建模块520、信息发送模块530和数据帧发送模块540。
其中,请求接收模块510,用于接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流,其中,直播播放请求通过直播客户端所建立可靠类型的第一流传输通道传输;通道创建模块520,用于创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联;信息发送模块530,用于通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;数据帧发送模块540,用于通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端。
本公开实施例的技术方案,直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流,该直播播放请求是通过直播客户端所建立可靠类型的第一流传输通道传输的。然后直播服务器创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。直播服务器通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端。上述技术方案,基于直播服务器创建非可靠类型的第二流传输通道,可以实现直播数据帧的非可靠传输,避免会因网络传输延迟影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
在上述技术方案的基础上,该装置还包括:
关联帧发送模块,用于通过第一流传输通道,将表征第二流传输通道与第一流传输通道关联的关联帧发送至直播客户端,以使直播客户端通过关联帧确定第一流传输通道与第二流传输通道存在关联。
优选地,关联帧包括:流传输通道的关联映射信息,关联映射信息包括第一流传输通道及第二流传输通道分别具备的通道标识。
在上述技术方案的基础上,通道创建模块510,具体用于:
基于预设传输协议构建非可靠类型数据流传输所需的流传输通道,记为第二流传输通道;
获取第一流传输通道的第一通道标识,以及第二流流传输通道的第二通道标识;
基于第一通道标识和第二通道标识,形成表征第二流传输通道与第一流传输通道关联关系的关联映射信息。
在上述技术方案的基础上,信息发送模块520,具体用于:
将直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装,形成响应报文,并通过第一流传输通道发送至直播客户端;
针对直播数据流中每个直播数据帧,确定直播数据帧的文件头以及解码所需的关键数据;
将文件头及关键数据按照可靠类型报文格式进行封装,形成相对直播数据帧的关键信息数据包,并通过第一流传输通道发送至直播客户端。
在上述技术方案的基础上,数据帧发送模块540,具体用于:
针对直播数据流中每个直播数据帧,将直播数据帧中音视频数据按照预设传输协议的非可靠类型报文格式进行封装,形成至少一个直播数据包;
通过第二流传输通道将各直播数据包发送至直播客户端。
在上述各技术方案的基础上,该装置还包括逻辑执行模块,该逻辑执行模块,包括:
过期时长确定单元,用于针对直播数据流中的每个直播数据帧,确定直播数据帧的过期时长;
丢弃处理逻辑执行单元,用于并当存在直播数据帧相关数据包的重传操作时,根据过期时长,执行直播数据帧的丢弃处理逻辑。
进一步地,丢弃处理逻辑执行单元,具体用于:
如果确定直播数据帧的相关直播数据包在传输过程中发生丢包,则通过第二流传输通道重新发送相关直播数据包,并在首次出现直播数据帧的数据包重传时,启动重传计时;
如果重传计时的累计时长超过过期时长,则形成相对直播数据帧的过期信息数据包,并发送至直播客户端,以使直播客户端从数据缓存列表中丢弃直播数据帧的相关数据。
本公开实施例所提供的直播数据传输装置可执行本公开实施例一或实施例二所提供的直播数据传输方法,具备执行直播数据传输方法相应的功能模块和有益效果。
值得注意的是,上述直播数据传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。
以下是本公开实施例提供的直播数据传输装置的实施例,该装置与上述实施例三或实施例四的直播数据传输方法属于同一个发明构思,在直播数据传输装置的实施例中未详尽描述的细节内容,可以参考上述实施例三或实施例四。
实施例六
图8为本公开实施例六提供的一种直播数据传输装置的结构示意图,本实施例可适用于通过非可靠类型的流传输通道对直播数据进行传输,以保证直播数据播放效果的情况。如图8所示,该装置集成于直播客户端,具体包括:请求发送模块610、数据包接收模块620及直播数据确定模块630。
其中,请求发送模块610,用于通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;数据包接收模块620,用于接收直播服务器相对直播播放请求通过第一流传输通道以及第二流传输通道发送的数据包,其中,第二流传输通道为直播服务器所创建非可靠类型的流传输通道;直播数据确定模块630,用于通过对从第一流传输通道及第二流传输通道所接收数据包的分析,确定与直播播放请求相匹配的待播放直播数据。
本公开实施例的技术方案,直播客户端通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求,直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流。然后直播服务器创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。直播服务器通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端,直播客户端通过对从第一流传输通道及第二流传输通道所接收数据包的分析,确定与直播播放请求相匹配的待播放直播数据。上述技术方案,基于直播服务器创建非可靠类型的第二流传输通道,可以实现直播数据帧的非可靠传输,避免会因网络传输延迟影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
在上述技术方案的基础上,通过第一流传输通道接收的数据包为:相对直播播放请求的响应报文、相对直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传上通道关联关系的关联帧;
通过第二流传输通道接收的数据包为:相对直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。
在上述技术方案的基础上,直播数据确定模块630,包括:
分析单元,用于从第一流传输通道及第二流传输通道中接收数据包,并对所接收数据包的数据内容进行分析;
状态确定单元,用于当分析确定所接收数据包不满足状态触发条件时,确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,并继续执行所接收数据包的分析操作;否则,
直播数据确定单元,用于确定当前处于工作状态,从数据缓存列表中确定与直播播放请求相匹配的待播放直播数据;
其中,直播数据帧为直播播放请求相匹配直播数据流中的数据帧。
进一步地,状态触发条件为:在从第一流传输通道中所接收数据包为直播播放请求的响应报文之后,从第一流传输通道中接收到直播播放请求所关联直播数据帧的关键信息数据包;且还从第一流传输通道中接收到表征第二流传输通道与第一流传输通道关联的关联帧。
在上述技术方案的基础上,状态确定单元用于执行将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表的步骤包括:
如果所接收数据包为第二流传输通道接收的直播数据包,确定所接收数据包中直播数据帧相关的数据信息,并将数据信息存至数据缓存列表。
在上述技术方案的基础上,直播数据确定单元,具体用于:
确定缓存偏移指针在数据缓存列表中指向的直播数据帧头;
如果直播数据帧头所对应目标直播数据帧的数据内容完整,则将直播数据帧确定为待播放直播数据;否则,
以设定间隔重新执行目标直播数据帧的内容完整判定,直至接收到直播服务器相对目标直播数据帧发送的过期信息数据包;
将缓存偏移指针移动到目标直播数据帧下一帧的直播数据帧头,作为新的目标直播数据帧,并返回重新进行内容完整判定。
本公开实施例所提供的直播数据传输装置可执行本公开实施例三或实施例四所提供的直播数据传输方法,具备执行数据传输方法相应的功能模块和有益效果。
值得注意的是,上述直播数据传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。
实施例七
图9为本公开实施例七提供的一种直播数据传输系统的结构示意图,本实施例可适用于以通过非可靠类型的流传输通道对直播数据进行传输,以保证直播数据播放效果的情况。如图9所示,该系统具体包括:直播服务器710和直播客户端720。
其中,直播服务器710用于实现如实施例一或实施例二所提供的直播数据传输方法;直播客户端720用于实现如实施例三或实施例四所提供的直播数据传输方法。
本公开实施例中的直播数据传输系统,本公开实施例的技术方案,直播客户端通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求,直播服务器接收直播客户端发送的直播播放请求,确定与直播播放请求相匹配的直播数据流。然后直播服务器创建非可靠类型的第二流传输通道,并与第一流传输通道建立关联。直播服务器通过第一流传输通道,将直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至直播客户端;通过第二流传输通道,将直播数据流中各直播数据帧发送至直播客户端,直播客户端通过对从第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。上述技术方案,基于直播服务器创建非可靠类型的第二流传输通道,可以实现直播数据帧的非可靠传输,避免会因网络传输延迟影响直播画面播放,保证了直播数据的播放效果,提升了直播客户端的用户体验。
实施例八
下面参考图10,其示出了适于用来实现本公开实施例的电子设备800的结构示意图。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM 802被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施例提供的电子设备与上述实施例提供的直播数据传输方法属于同一发明构思,未在本公开实施例中详尽描述的技术细节可参见上述实施例,并且本公开实施例与上述实施例具有相同的有益效果。
实施例九
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的直播数据传输方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,接收端、发送端可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述直播服务器中所包含的;也可以是单独存在,而未装配入该直播服务器中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该直播服务器执行时,使得该直播服务器:接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
上述计算机可读介质可以是上述直播客户端中所包含的;也可以是单独存在,而未装配入该直播客户端中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该直播客户端执行时,使得该直播客户端:通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或发送端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,可编辑内容显示单元还可以被描述为“编辑单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,【示例一】提供了一种直播数据传输方法,应用于直播服务器,包括:
接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;
创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;
通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;
通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
根据本公开的一个或多个实施例,【示例二】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,在创建与所述第一流传输通道相关联非可靠类型的第二流传输通道之后,还包括:
通过所述第一流传输通道,将表征所述第二流传输通道与所述第一流传输通道关联的关联帧发送至所述直播客户端,以使所述直播客户端通过所述关联帧确定所述第一流传输通道与所述第二流传输通道存在关联。
根据本公开的一个或多个实施例,【示例三】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,所述关联帧包括:流传输通道的关联映射信息,所述关联映射信息包括所述第一流传输通道及第二流传输通道分别具备的通道标识。
根据本公开的一个或多个实施例,【示例四】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,所述创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联,包括:
基于预设传输协议构建非可靠类型数据流传输所需的流传输通道,记为第二流传输通道;
获取所述第一流传输通道的第一通道标识,以及所述第二流流传输通道的第二通道标识;
基于所述第一通道标识和第二通道标识,形成表征所述第二流传输通道与第一流传输通道关联关系的关联映射信息。
根据本公开的一个或多个实施例,【示例五】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,所述通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端,包括:
将所述直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装,形成响应报文,并通过所述第一流传输通道发送至所述直播客户端;
针对直播数据流中每个直播数据帧,确定所述直播数据帧的文件头以及解码所需的关键数据;
将所述文件头及关键数据按照所述可靠类型报文格式进行封装,形成相对所述直播数据帧的关键信息数据包,并通过所述第一流传输通道发送至所述直播客户端。
根据本公开的一个或多个实施例,【示例六】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,所述通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端,包括:
针对所述直播数据流中每个直播数据帧,将所述直播数据帧中音视频数据按照预设传输协议的非可靠类型报文格式进行封装,形成至少一个直播数据包;
通过所述第二流传输通道将各所述直播数据包发送至所述直播客户端。
根据本公开的一个或多个实施例,【示例七】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,在通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端的过程中,还包括:
针对所述直播数据流中的每个直播数据帧,确定所述直播数据帧的过期时长,并当存在所述直播数据帧相关数据包的重传操作时,根据所述过期时长,执行所述直播数据帧的丢弃处理逻辑。
根据本公开的一个或多个实施例,【示例八】提供了一种直播数据传输方法,应用于直播服务器,还包括:
可选的,所述当存在所述直播数据帧相关数据包的重传操作时,根据所述过期时长,执行所述直播数据帧的丢弃处理逻辑,包括:
如果确定所述直播数据帧的相关直播数据包在传输过程中发生丢包,则通过所述第二流传输通道重新发送所述相关直播数据包,并在首次出现所述直播数据帧的数据包重传时,启动重传计时;
如果重传计时的累计时长超过所述过期时长,则形成相对所述直播数据帧的过期信息数据包,并发送至所述直播客户端,以使所述直播客户端从数据缓存列表中丢弃所述直播数据帧的相关数据。
根据本公开的一个或多个实施例,【示例九】提供了一种直播数据传输方法,应用于直播客户端,包括:
通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;
接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;
通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
根据本公开的一个或多个实施例,【示例十】提供了一种直播数据传输方法,应用于直播客户端,还包括:
可选的,通过所述第一流传输通道接收的数据包为:相对所述直播播放请求的响应报文、相对所述直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传上通道关联关系的关联帧;
通过所述第二流传输通道接收的数据包为:相对所述直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。。
根据本公开的一个或多个实施例,【示例十一】提供了一种直播数据传输方法,应用于直播客户端,还包括:
可选的,所述通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据,包括:
从所述第一流传输通道及第二流传输通道中接收数据包,并对所接收数据包的数据内容进行分析;
当分析确定所接收数据包不满足状态触发条件时,确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,并继续执行所接收数据包的分析操作;否则,
确定当前处于工作状态,从数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据;
其中,直播数据帧为直播播放请求相匹配直播数据流中的数据帧。
根据本公开的一个或多个实施例,【示例十二】提供了一种直播数据传输方法,应用于直播客户端,还包括:
可选的,所述状态触发条件为:
在从所述第一流传输通道中所接收数据包为所述直播播放请求的响应报文之后,从所述第一流传输通道中接收到所述直播播放请求所关联直播数据帧的关键信息数据包;且还从所述第一流传输通道中接收到表征所述第二流传输通道与所述第一流传输通道关联的关联帧。
根据本公开的一个或多个实施例,【示例十三】提供了一种直播数据传输方法,应用于直播客户端,还包括:
所述将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,包括:
如果所接收数据包为所述第二流传输通道接收的直播数据包,确定所接收数据包中直播数据帧相关的数据信息,并将所述数据信息存至所述数据缓存列表。
根据本公开的一个或多个实施例,【示例十四】提供了一种直播数据传输方法,应用于直播客户端,还包括:
可选的,所述从预设的数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据,包括:
确定缓存偏移指针在所述数据缓存列表中指向的直播数据帧头;
如果所述直播数据帧头所对应目标直播数据帧的数据内容完整,则将所述直播数据帧确定为待播放直播数据;否则,
以设定间隔重新执行所述目标直播数据帧的内容完整判定,直至接收到所述直播服务器相对所述目标直播数据帧发送的过期信息数据包;
将所述缓存偏移指针移动到所述目标直播数据帧下一帧的直播数据帧头,作为新的目标直播数据帧,并返回重新进行内容完整判定。
根据本公开的一个或多个实施例,【示例十五】提供了一种直播数据传输装置,集成于直播服务器,包括:
请求接收模块,用于接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;
通道创建模块,用于创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;
信息发送模块,用于通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;
数据帧发送模块,用于通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
根据本公开的一个或多个实施例,【示例十六】提供了一种直播数据传输装置,集成于直播客户端,包括:
请求发送模块,用于通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;
数据包接收模块,用于接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;
直播数据确定模块,用于通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (19)

1.一种直播数据传输方法,其特征在于,应用于直播服务器,包括:
接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;
创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;
通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;
通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
2.根据权利要求1所述的方法,其特征在于,在创建与所述第一流传输通道相关联非可靠类型的第二流传输通道之后,还包括:
通过所述第一流传输通道,将表征所述第二流传输通道与所述第一流传输通道关联的关联帧发送至所述直播客户端,以使所述直播客户端通过所述关联帧确定所述第一流传输通道与所述第二流传输通道存在关联。
3.根据权利要求2所述的方法,其特征在于,所述关联帧包括:流传输通道的关联映射信息,所述关联映射信息包括所述第一流传输通道及第二流传输通道分别具备的通道标识。
4.根据权利要求1所述的方法,其特征在于,所述创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联,包括:
基于预设传输协议构建非可靠类型数据流传输所需的流传输通道,记为第二流传输通道;
获取所述第一流传输通道的第一通道标识,以及所述第二流传输通道的第二通道标识;
基于所述第一通道标识和第二通道标识,形成表征所述第二流传输通道与第一流传输通道关联关系的关联映射信息。
5.根据权利要求1所述的方法,其特征在于,所述通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端,包括:
将所述直播播放请求的响应信息按照预设传输协议的可靠类型报文格式进行封装,形成响应报文,并通过所述第一流传输通道发送至所述直播客户端;
针对直播数据流中每个直播数据帧,确定所述直播数据帧的文件头以及解码所需的关键数据;
将所述文件头及关键数据按照所述可靠类型报文格式进行封装,形成相对所述直播数据帧的关键信息数据包,并通过所述第一流传输通道发送至所述直播客户端。
6.根据权利要求1所述的方法,其特征在于,所述通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端,包括:
针对所述直播数据流中每个直播数据帧,将所述直播数据帧中音视频数据按照预设传输协议的非可靠类型报文格式进行封装,形成至少一个直播数据包;
通过所述第二流传输通道将各所述直播数据包发送至所述直播客户端。
7.根据权利要求1-6任一项所述的方法,其特征在于,在通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端的过程中,还包括:
针对所述直播数据流中的每个直播数据帧,确定所述直播数据帧的过期时长,并当存在所述直播数据帧相关数据包的重传操作时,根据所述过期时长,执行所述直播数据帧的丢弃处理逻辑。
8.根据权利要求7所述的方法,其特征在于,所述当存在所述直播数据帧相关数据包的重传操作时,根据所述过期时长,执行所述直播数据帧的丢弃处理逻辑,包括:
如果确定所述直播数据帧的相关直播数据包在传输过程中发生丢包,则通过所述第二流传输通道重新发送所述相关直播数据包,并在首次出现所述直播数据帧的数据包重传时,启动重传计时;
如果重传计时的累计时长超过所述过期时长,则形成相对所述直播数据帧的过期信息数据包,并发送至所述直播客户端,以使所述直播客户端从数据缓存列表中丢弃所述直播数据帧的相关数据。
9.一种直播数据传输方法,其特征在于,应用于直播客户端,包括:
通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;
接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;
通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
10.根据权利要求9所述的方法,其特征在于,通过所述第一流传输通道接收的数据包为:相对所述直播播放请求的响应报文、相对所述直播播放请求所匹配直播数据流中直播数据帧的关键信息数据包、以及表征第一流传输通道与第二流传输通道关联关系的关联帧;
通过所述第二流传输通道接收的数据包为:相对所述直播播放请求所匹配直播数据流中直播数据帧的直播数据包,直播数据包中包含直播数据帧的音视频数据。
11.根据权利要求9所述的方法,其特征在于,所述通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据,包括:
从所述第一流传输通道及第二流传输通道中接收数据包,并对所接收数据包的数据内容进行分析;
当分析确定所接收数据包不满足状态触发条件时,确定流传输处于阻塞状态,将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,并继续执行所接收数据包的分析操作;否则,
确定当前处于工作状态,从数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据;
其中,直播数据帧为直播播放请求相匹配直播数据流中的数据帧。
12.根据权利要求11所述的方法,其特征在于,所述状态触发条件为:
在从所述第一流传输通道中所接收数据包为所述直播播放请求的响应报文之后,从所述第一流传输通道中接收到所述直播播放请求所关联直播数据帧的关键信息数据包;且还从所述第一流传输通道中接收到表征所述第二流传输通道与所述第一流传输通道关联的关联帧。
13.根据权利要求12所述的方法,其特征在于,所述将所接收数据包中直播数据帧相关的数据信息缓存至数据缓存列表,包括:
如果所接收数据包为所述第二流传输通道接收的直播数据包,确定所接收数据包中直播数据帧相关的数据信息,并将所述数据信息存至所述数据缓存列表。
14.根据权利要求11所述的方法,其特征在于,所述从预设的数据缓存列表中确定与所述直播播放请求相匹配的待播放直播数据,包括:
确定缓存偏移指针在所述数据缓存列表中指向的直播数据帧头;
如果所述直播数据帧头所对应目标直播数据帧的数据内容完整,则将所述直播数据帧确定为待播放直播数据;否则,
以设定间隔重新执行所述目标直播数据帧的内容完整判定,直至接收到所述直播服务器相对所述目标直播数据帧发送的过期信息数据包;
将所述缓存偏移指针移动到所述目标直播数据帧下一帧的直播数据帧头,作为新的目标直播数据帧,并返回重新进行内容完整判定。
15.一种直播数据传输装置,其特征在于,集成于直播服务器,包括:
请求接收模块,用于接收直播客户端发送的直播播放请求,确定与所述直播播放请求相匹配的直播数据流,其中,所述直播播放请求通过所述直播客户端所建立可靠类型的第一流传输通道传输;
通道创建模块,用于创建非可靠类型的第二流传输通道,并与所述第一流传输通道建立关联;
信息发送模块,用于通过所述第一流传输通道,将所述直播播放请求的响应信息及直播数据流中直播数据帧的关键信息发送至所述直播客户端;
数据帧发送模块,用于通过所述第二流传输通道,将所述直播数据流中各直播数据帧发送至所述直播客户端。
16.一种直播数据传输装置,其特征在于,集成于直播客户端,包括:
请求发送模块,用于通过所建立可靠类型的第一流传输通道,向直播服务器发送直播播放请求;
数据包接收模块,用于接收直播服务器相对所述直播播放请求通过所述第一流传输通道以及第二流传输通道发送的数据包,其中,所述第二流传输通道为直播服务器所创建非可靠类型的流传输通道;
直播数据确定模块,用于通过对从所述第一流传输通道及第二流传输通道所接收数据包的分析,确定与所述直播播放请求相匹配的待播放直播数据。
17.一种直播数据传输系统,其特征在于,包括:直播服务器和直播客户端,其中,所述直播服务器用于实现如权利要求1-8中任一所述的直播数据传输方法;所述直播客户端用于实现权利要求9-14中任一所述的直播数据传输方法。
18.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-14中任一所述的直播数据传输方法。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-14中任一所述的直播数据传输方法。
CN202210515125.2A 2022-05-11 2022-05-11 一种直播数据传输方法、装置、系统、设备和介质 Pending CN114979793A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210515125.2A CN114979793A (zh) 2022-05-11 2022-05-11 一种直播数据传输方法、装置、系统、设备和介质
PCT/CN2023/093270 WO2023217188A1 (zh) 2022-05-11 2023-05-10 一种直播数据传输方法、装置、系统、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210515125.2A CN114979793A (zh) 2022-05-11 2022-05-11 一种直播数据传输方法、装置、系统、设备和介质

Publications (1)

Publication Number Publication Date
CN114979793A true CN114979793A (zh) 2022-08-30

Family

ID=82980982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210515125.2A Pending CN114979793A (zh) 2022-05-11 2022-05-11 一种直播数据传输方法、装置、系统、设备和介质

Country Status (2)

Country Link
CN (1) CN114979793A (zh)
WO (1) WO2023217188A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023217188A1 (zh) * 2022-05-11 2023-11-16 北京字节跳动网络技术有限公司 一种直播数据传输方法、装置、系统、设备和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618337A (zh) * 2014-12-31 2015-05-13 浙江理工大学 一种基于tcp/udp混合协议的流媒体无线自适应传输方法
US20150373075A1 (en) * 2014-06-23 2015-12-24 Radia Perlman Multiple network transport sessions to provide context adaptive video streaming
CN108260010A (zh) * 2018-02-05 2018-07-06 南通大学 一种基于网络编解码和协作分发的视频点播方法以及系统
CN108696772A (zh) * 2017-04-11 2018-10-23 上海谦问万答吧云计算科技有限公司 一种实时视频的传输方法及装置
CN109150876A (zh) * 2018-08-20 2019-01-04 深圳市昊源科技有限公司 一种视频无线传输的qos方法、装置及系统
CN110557655A (zh) * 2019-09-06 2019-12-10 香港乐蜜有限公司 一种视频画面显示方法、装置、电子设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105392020B (zh) * 2015-11-19 2019-01-25 广州华多网络科技有限公司 一种互联网视频直播方法,及系统
CN108616764A (zh) * 2016-12-09 2018-10-02 中兴通讯股份有限公司 一种控制方法及设备
CN107040549B (zh) * 2017-06-08 2021-03-19 山大鲁能信息科技有限公司 一种tcp粘包处理方法、服务器及系统
CN108769726B (zh) * 2018-06-14 2022-05-31 腾讯科技(深圳)有限公司 多媒体数据推送方法、装置、存储介质及设备
CN109862038A (zh) * 2019-03-22 2019-06-07 江苏睿鸿网络技术有限公司 一种流媒体协议中数据延时及丢包的处理方法
CN112350979B (zh) * 2019-08-09 2023-03-24 华为技术有限公司 数据传输方法和设备
CN114979793A (zh) * 2022-05-11 2022-08-30 北京字节跳动网络技术有限公司 一种直播数据传输方法、装置、系统、设备和介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150373075A1 (en) * 2014-06-23 2015-12-24 Radia Perlman Multiple network transport sessions to provide context adaptive video streaming
CN104618337A (zh) * 2014-12-31 2015-05-13 浙江理工大学 一种基于tcp/udp混合协议的流媒体无线自适应传输方法
CN108696772A (zh) * 2017-04-11 2018-10-23 上海谦问万答吧云计算科技有限公司 一种实时视频的传输方法及装置
CN108260010A (zh) * 2018-02-05 2018-07-06 南通大学 一种基于网络编解码和协作分发的视频点播方法以及系统
CN109150876A (zh) * 2018-08-20 2019-01-04 深圳市昊源科技有限公司 一种视频无线传输的qos方法、装置及系统
CN110557655A (zh) * 2019-09-06 2019-12-10 香港乐蜜有限公司 一种视频画面显示方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023217188A1 (zh) * 2022-05-11 2023-11-16 北京字节跳动网络技术有限公司 一种直播数据传输方法、装置、系统、设备和介质

Also Published As

Publication number Publication date
WO2023217188A1 (zh) 2023-11-16

Similar Documents

Publication Publication Date Title
WO2023024834A9 (zh) 一种游戏数据处理方法、装置及存储介质
RU2634908C2 (ru) Способ и устройство для управления доставкой медиаданных
KR100954253B1 (ko) 데이터 전송 시스템, 동작 방법 및 디지털 미디어 캐리어
WO2018086076A1 (zh) 数据传输方法及装置
CN113037440B (zh) 数据重传处理方法、装置、计算机设备和存储介质
CN107819809B (zh) 对内容进行同步操作的方法及装置
CN112804711B (zh) 数据传输方法、装置、计算机可读介质及电子设备
CN107566918B (zh) 一种视频分发场景下的低延时取流秒开方法
CN101552660B (zh) 对流媒体数据进行重传、播放的方法、装置及通信系统
JPH06237451A (ja) 動画通信方式および端末装置
CN114765690B (zh) 数据包传输方法、通信装置及存储介质
KR20170123700A (ko) 데이터 통신 시스템 내에서의 데이터 패킷들의 전달 방법
CN111147606A (zh) 数据传输的方法、装置、终端及存储介质
EP1806870A1 (en) Method for providing data and data transmission system
US7203184B2 (en) Data transmitter, data receiver, and data transmitting/receiving method
CN109862400B (zh) 一种流媒体传输方法、装置及其系统
CN114221909B (zh) 数据传输方法、装置、终端及存储介质
WO2023217188A1 (zh) 一种直播数据传输方法、装置、系统、设备和介质
CN115209163A (zh) 数据处理方法、装置、存储介质及电子设备
CN115277649A (zh) 多媒体会议场景下的文档协同编辑的方法及装置
CN113409801A (zh) 用于实时音频流播放的噪音处理方法、系统、介质和装置
CN109792444B (zh) 实况内容分发系统中的播出缓冲
KR20160123562A (ko) 데이터 패킷 처리를 위한 수신기 장치 및 수신기 장치에서의 데이터 패킷 처리 방법
CN115086285B (zh) 一种数据处理方法、装置、存储介质及电子设备
CN115208864B (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