CN109151491A - 数据分发系统、方法及计算机可读存储介质 - Google Patents

数据分发系统、方法及计算机可读存储介质 Download PDF

Info

Publication number
CN109151491A
CN109151491A CN201811072603.7A CN201811072603A CN109151491A CN 109151491 A CN109151491 A CN 109151491A CN 201811072603 A CN201811072603 A CN 201811072603A CN 109151491 A CN109151491 A CN 109151491A
Authority
CN
China
Prior art keywords
data packet
media data
flow media
edge
server
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
Application number
CN201811072603.7A
Other languages
English (en)
Other versions
CN109151491B (zh
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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201811072603.7A priority Critical patent/CN109151491B/zh
Priority to EP18933157.2A priority patent/EP3849200A4/en
Priority to PCT/CN2018/112684 priority patent/WO2020052017A1/zh
Priority to US16/484,708 priority patent/US11323527B2/en
Publication of CN109151491A publication Critical patent/CN109151491A/zh
Application granted granted Critical
Publication of CN109151491B publication Critical patent/CN109151491B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/6473Monitoring network processes errors
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network

Abstract

本发明实施例涉及流媒体分发技术领域,公开了一种数据分发系统和方法。本发明中数据分发系统包括:边缘推流服务器用于接收推流器发送的流媒体数据包,对流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;中心服务器用于对序列化的流媒体数据包进行缓存;如果接收到来自边缘拉流服务器的序列化回源请求,则根据序列化回源请求确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包;边缘拉流服务器用于将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端有利于避免直播画面容易出现画面重复卡顿等问题,提高了用户的使用体验。

Description

数据分发系统、方法及计算机可读存储介质
技术领域
本发明涉及流媒体分发技术领域,特别涉及一种数据分发系统、方法及计算机可读存储介质。
背景技术
随着PC以及移动设备广泛使用,入户带宽不断提升,互动直播类业务日趋广泛,各类互动直播类网站以及APP相继推出,带来的竞争压力也日趋激烈。目前,绝大部分的直播服务提供厂商都选择内容分发网络(Content Delivery Network,CDN)或者云服务商进行直播加速。随着科技发展,终端用户对直播质量要求不断提升,终端用户对直播质量的要求也越来越高。
然而,发明人发现现有技术中至少存在如下问题:直播画面容易出现画面重复、卡顿和不流畅等问题,导致用户体验变差。
发明内容
本发明实施方式的目的在于提供一种数据分发系统、方法及计算机可读存储介质,有利于避免直播画面容易出现画面重复、卡顿和不流畅等问题,提高了用户的使用体验。
为解决上述技术问题,本发明的实施方式提供了一种数据分发系统,包括:边缘推流服务器、若干个中心服务器和边缘拉流服务器;边缘推流服务器,用于接收推流器发送的流媒体数据包,对流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;中心服务器,用于对序列化的流媒体数据包进行缓存;如果接收到来自边缘拉流服务器的序列化回源请求,则根据序列化回源请求确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包;边缘拉流服务器,用于将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端。
本发明的实施方式还提供了一种数据分发方法,应用于数据分发系统,包括:边缘推流服务器,接收推流器发送的流媒体数据包,对流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;中心服务器,对序列化的流媒体数据包进行缓存;如果接收到来自边缘拉流服务器的序列化回源请求,则根据序列化回源请求确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包;边缘拉流服务器,将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的数据分发方法。
本发明实施方式相对于现有技术而言,发明人为了解决现有技术中的技术问题,对现有的直播流程进行了分析,经过仔细研究发现出现播放画面重复卡顿的问题的原因是:边缘推流服务器将流媒体数据包发送至不同服务器进行备份缓存时,由于不同发送链路的数据传输速率不同,导致各中心服务器实时缓存的数据不一致,快速启动以及GOP等缓存影响会导致数据重复或者数据丢失。因此,本发明实施方式中,由边缘推流服务器,对流媒体数据包进行序列化处理,使得中心服务器缓存的流媒体数据包为经过序列化的流媒体数据包,在有拉流服务器发送序列化回源请求时,中心服务器容易根据缓存的序列化处理的流媒体数据包找到要发送的流媒体数据包所在的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包,拉流服务器将接收的流媒体数据包去序列化处理后发送给用户终端,有利于提高用户终端播放的视频画面的流畅性,满足用户的观看需求,有效的避免了画面出现卡顿、重复等问题,提高用户的直播观看体验。
另外,边缘推流服务器,还用于接收推流器发送的元数据数据包,对元数据数据包添加推流时间信息,根据推流时间信息对流媒体数据包进行序列化处理,有利于对流媒体数据包进行有效的序列化处理。
另外,边缘推流服务器,还用于根据推流时间信息确定序列化起始点,根据序列化起始点对流媒体数据包进行序列化处理。为序列化流媒体数据包设置序列化起始点,有利于序列化处理从序列化起始点开始有序进行。
另外,边缘推流服务器,还用于对每个流媒体数据包使用串行序列化(Serializable)接口生成每个流媒体数据包的序列号,根据序列化起始点和每个流媒体数据包的序列号将流媒体数据包封装为序列化的流媒体数据包。通过串行序列化接口生成的序列号,有利于表征不同流媒体数据包的先后顺序,方便了对流媒体数据包的序列化处理。
另外,序列化回源请求携带序列号,中心服务器还用于,将所述序列化回源请求携带的序列号所属的数据包的位置确定为所述起始位置,有利于使中心服务器根据接收到的序列化回源请求快速确定应该发送流媒体数据包的起始位置。
另外,边缘拉流服务器,还用于在接收到用户终端发送的拉流请求时,指定一中心服务器,向指定的中心服务器发送普通回源请求;中心服务器,还用于如果接收到普通回源请求,则根据普通回源请求确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包。
另外,边缘拉流服务器,还用于如果检测到普通回源失败,则切换所指定的中心服务器,向切换后的中心服务器发送序列化回源请求,使得即使普通回源失败,也能有针对性的切换所指定的中心服务器,向切换的中心服务器发送序列化回源请求,有利于提高回源成功的可能性,内部链路的切换,使得可以实现精确的断点续传功能,从而进一步保证流媒体数据包发送的连续性和稳定性,确保发送至用户终端的流媒体数据包的一致性,提高用户的直播观看体验。
另外,边缘推流服务器,还用于对序列化的流媒体数据包采用预设的加密算法进行加密,将加密后的流媒体数据包转推至若干个中心服务器;边缘拉流服务器,还用于将接收的加密的流媒体数据包采用预设的解密算法进行解密,保证流媒体数据包在传输过程中的安全性和保密性。
另外,边缘推流服务器,还用于将加密后的流媒体数据包通过预设的私有协议转推至若干个中心服务器。通过私有协议有利于保证流媒体数据包在传输过程中的私密性和排他性。
另外,边缘推流服务器,还用于在检测到重新推流时,对新接收到的流媒体数据包进行序列化处理。有利于保证重新推流时,新接收到的流媒体数据包也能进行序列化处理,以满足不同的推流请求下,直播画面均不会出现画面重复、卡顿等问题,提升了用户的观看体验。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式中的数据分发系统的结构示意图;
图2是根据本发明第二实施方式中的数据分发系统中的边缘推流服务器的工作流程示意图;
图3是根据本发明第二实施方式中的数据分发系统中的中心服务器的工作流程示意图;
图4是根据本发明第二实施方式中的数据分发系统中的边缘拉流服务器的工作流程示意图;
图5是根据本发明第三实施方式中的数据分发系统中的边缘推流服务器的工作流程示意图;
图6是根据本发明第三实施方式中的数据分发系统中的边缘拉流服务器的工作流程示意图;
图7是根据本发明第四实施方式中的数据分发方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种数据分发系统,包括:边缘推流服务器、若干个中心服务器和边缘拉流服务器;边缘推流服务器,用于接收推流器发送的流媒体数据包,对流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;中心服务器,用于对序列化的流媒体数据包进行缓存;如果接收到来自边缘拉流服务器的序列化回源请求,则根据序列化回源请求确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包;边缘拉流服务器,用于将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端,有利于避免直播画面容易出现画面重复、卡顿、不流畅等问题,提高了用户的使用体验。下面对本实施方式的数据分发系统的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本实施方式中的数据分发系统,如图1所示,具体包括:边缘推流服务器101、中心服务器1021、中心服务器1022和边缘拉流服务器103,需要说明的是,本实施方式中的中心服务器的数量可以为若干个,本实施方式中只是以图中的两个为例,在实际应用中并不以此为限。
具体的说,主播在推流时,可以由推流器104向边缘推流服务器101发送推流请求,从而在推流器104与边缘推流服务器101之间建立通信连接,推流器104将直播内容以流媒体数据包的形式发送至边缘推流服务器101,边缘推流服务器101对流媒体数据包进行序列化处理,比如说为原来不带序列号的流媒体数据包设置序列号,便于根据不同的序列号直接找到与序列号对应的流媒体数据包。边缘推流服务器101将序列化的流媒体数据包转推给若干个中心服务器,本实施方式中,以边缘推流服务器101将序列化的流媒体数据包转推给图1中的中心服务器1021和中心服务器1022为例,如果实际应用中还有其他中心服务器,那么边缘推流服务器101还将序列化后的流媒体数据包转推给其他中心服务器。
需要说明的是,中心服务器在接收到来自边缘推流服务器101转推的序列化的流媒体数据包时,对序列化的流媒体数据包进行缓存。即若干个中心服务器对接收到的序列化的流媒体数据包进行备份缓存,使得其中一个中心服务器接收到边缘拉流服务器103发送的回源请求时,可以根据回源请求发送所缓存的流媒体数据包,即使其中一个中心服务器回源失败,由于流媒体数据包在若干个中心服务器中均有缓存,因此,可以切换中心服务器,由其他中心服务器发送缓存的流媒体数据包。比如说,本实施方式中,中心服务器1021和中心服务器1022在接收到来自边缘推流服务器101转推的序列化的流媒体数据包时,均对接收的流媒体数据包进行缓存以达到对流媒体数据包进行备份缓存的效果。
中心服务器可能接收不同类型的回源请求,回源请求的类型可以为普通回源请求和序列化回源请求,普通回源请求可以不携带流媒体数据包的序列号,中心服务器在接收到普通回源请求时,根据快启或关键帧的方式发送缓存的流媒体数据包。序列化回源请求可以携带流媒体数据包的序列号,但在实际应用中,序列化回源请求还可能携带其他信息,对此本实施方式不做具体限定,中心服务器在接收到序列化回源请求时,从序列化回源请求携带的序列号开始,发送缓存的流媒体数据包。
进一步说明的是,中心服务器在接收到不同类型的回源请求时,确定待发送的流媒体数据包的起始位置时,所采用的方式不同。如果接收到普通回源请求,则根据普通回源请求确定待发送的流媒体数据包的起始位置,比如说,确定起始位置的方法可以为根据当前时间和快启时间向前查找关键帧所在的位置,将关键帧所在的位置确定为起始位置。如果接收到序列化回源请求,则根据序列化回源请求确定待发送的流媒体数据包的起始位置,比如说,序列化回源请求可以携带流媒体数据包的序列号,中心服务器在接收到序列化回源请求时,将识别到的序列号所属的数据包的位置作为起始位置。
还需说明的是,中心服务器在确定了待发送的流媒体数据包的起始位置之后,可以根据起始位置向边缘拉流服务器发送缓存的流媒体数据包,即从起始位置开始发送缓存的流媒体数据包,中心服务器发送的缓存的流媒体数据包即为来自边缘推流服务器101转推的序列化的流媒体数据包。
本实施方式中,边缘拉流服务器103在接收到用户终端105的拉流请求时,向中心服务器发送回源请求,请求中心服务器发送所缓存的流媒体数据包。在本实施方式中,边缘拉流服务器103在接收到用户终端105的拉流请求时,可以首先发送普通回源请求,又由于有若干各中心服务器因此需要指定一个中心服务器发送普通回源请求。具体的,可以根据每个中心服务器的域名,结合哈希算法指定一个中心服务器。比如说指定的中心服务器为图1中的中心服务器1022,那么边缘拉流服务器103会向中心服务器1022发送普通回源请求。
随后,如果普通回源失败,则可以改变回源请求的类型,发送序列化回源请求,此时如果还是发送普通回源请求,那么不管是哪一个中心服务器,比如图1中的中心服务器1021和中心服务器1022,在接收到普通回源请求后,都会按照普通回源请求确定待发送的流媒体数据包的起始位置,那么边缘拉流服务器103再次接收到的流媒体数据包与第一次普通回源后接收到的流媒体数据包可能衔接不上,出现跳跃或是重复,从而导致直播画面卡顿或重复。因此,在普通回源失败后,需要改变回源请求的类型即发送序列化回源请求,使得接收到序列化回源请求的中心服务器可以根据序列化回源请求携带的序列号确定待发送的流媒体数据包的起始位置,序列化回源请求携带的序列号可以为边缘拉流服务器103最新接收到的流媒体数据包的序列号。因此,边缘拉流服务器103接收到中心服务器根据序列化回源请求发送的流媒体数据包时,可以和第一次普通回源后接收到的流媒体数据包衔接上,避免流媒体数据包的跳跃或是重复,保障直播画面的流畅性。
需要说明的是,由于有多个中心服务器中均缓存有流媒体数据包,因此边缘拉流服务器103,在发送序列化回源请求时,可以切换一个中心服务器,向重新指定的中心服务器发送序列化回源请求,使得可以避免由于原来发送普通回源请求的中心服务器的回源链路不通或是回源链路拥塞等原因造成的回源失败。比如说,边缘拉流服务器103首先向中心服务器1022发送普通回源请求,如果普通回源失败的原因为回源链路不通,即使再次向中心服务器1022发送序列化回源请求,边缘拉流服务器103也会因为回源链路不通无法接收到中心服务器1022发送的流媒体数据包,因此,需要切换中心服务器,向重新指定的中心服务器1021发送序列化回源请求。
进一步说明的是,由于边缘推流服务器101一开始对流媒体数据包进行过序列化处理,因此边缘拉流服务器103在接收到流媒体数据包时需要去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端105,用户终端105播放以供用户观看。需要说明的是,边缘拉流服务器103在接收到序列化的流媒体数据包后,就会进行去序列化以还原所接收到的流媒体数据包,并将还原后的流媒体数据包发送至用户终端105。比如说,在接收到中心服务器基于普通回源请求发送的流媒体数据包后,不管普通回源成功与否,可以直接将接收的流媒体数据包还原后发送至用户终端105。而如果普通回源失败,那么边缘拉流服务器103向切换的一中心服务器发送序列化回源请求,在接收到切换的中心服务器发送的流媒体数据包后,将再次接收的流媒体数据包还原后发送至用户终端105。
用户终端105在接收到边缘拉流服务器103发送的序列化的流媒体数据包时进行播放,用户终端105接收到的为序列化的流媒体数据包,即使是基于不同类型的回源请求接收到的流媒体数据包,也可以很好的衔接上,保证直播画面的流畅性,不会出现重复或者卡顿。
与现有技术相比,本实施方式中发明人为了解决现有技术中的技术问题,对现有的直播流程进行了分析,经过仔细研究发现出现播放画面重复卡顿的问题的原因是:边缘推流服务器将流媒体数据包发送至不同服务器进行备份缓存时,由于不同发送链路的数据传输速率不同,导致各中心服务器实时缓存的数据不一致,快速启动以及GOP等缓存影响会导致数据重复或者数据丢失。因此,本发明实施方式中,由边缘推流服务器,对流媒体数据包进行序列化处理,使得中心服务器缓存的流媒体数据包为经过序列化的流媒体数据包,在有拉流服务器发送序列化回源请求时,中心服务器容易根据缓存的序列化处理的流媒体数据包找到要发送的流媒体数据包所在的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包,拉流服务器将接收的流媒体数据包去序列化处理后发送给用户终端,有利于提高用户终端播放的视频画面的流畅性,满足用户的观看需求,有效的避免了画面出现卡顿、重复等问题,提高用户的直播观看体验。
本发明的第二实施方式涉及一种数据分发系统。第二实施方式是第一实施方式的进一步改进,主要改进之处在于在本发明第二实施方式中,边缘推流服务器,还用于接收推流器发送的元数据数据包,对元数据数据包添加推流时间信息,根据推流时间信息对流媒体数据包进行序列化处理,有利于对流媒体数据包进行有效的序列化处理。
本实施方式中边缘推流服务器的工作流程示意图,如图2所示,具体包括:
步骤201:接收推流请求。
具体的说,边缘推流服务器接收来自推流器的推流请求,与推流器之间建立通信连接。在实际应用中,如果建立连接后,预设时间内没有进行数据交互可以断开连接,预设时间可以由本领域技术人员根据实际需要进行设置,对此,本实施方式不做具体限定。
步骤202:接收元数据数据包,对元数据数据包添加推流时间信息。
具体的说,边缘推流服务器在接收来自推流器发送的数据包一般会先接收到元数据数据包,在接收到元数据数据包时,对元数据数据包添加推流信息,本实施方式中对元数据数据包添加的推流信息为推流时间信息,在实际应用中,根据需要还可以对元数据数据包添加的推流信息还可以为其他信息。
需要说明的是,在实际应用中,推流器在进行推流时,边缘推流服务器首先接收到的数据可能不是元数据数据包,那么边缘推流服务器可以在之后接收到的数据包中识别出元数据数据包,对识别到的元数据数据包添加推流时间信息,也就是说将接收到元数据数据包的时间作为推流时间,并作为推流时间信息添加在元数据数据包中。还可以说明的是,元数据数据包之后接收到的数据包均为流媒体数据包。
步骤203:接收流媒体数据包。
具体的说,边缘推流服务器接收推流器发送的流媒体数据包,即实际需要在用户终端上播放的音视频数据。
步骤204:根据推流时间信息对流媒体数据包进行序列化处理。
具体的说,根据推流时间信息可以确定序列化起始点,序列化起始点即为一次推流开始的起始时间点,边缘推流服务器可以根据添加的推流时间信息区分不同的推流,在检测到添加的推流时间信息时,确定是一次推流开始的起始时间点,从该起始时间点开始对后面接收到的流媒体数据包开始进行序列化处理,由于添加了推流时间信息的元数据数据包之后接收的均为流媒体数据包,因此,可以在检测到元数据数据包中添加的推流时间信息时,开始对接下来接收到的流媒体数据包进行序列化处理。
在实际应用中,对每个流媒体数据包可以使用串行序列化接口生成每个流媒体数据包的序列化信息,序列化信息可以包括数据包的序列号,系统时间戳,数据格式以及扩展信息等元素,以供后续进行其他的分析,本领域技术人员有时也将序列化信息称为MapBox信息。边缘推流服务器根据序列化起始点和每个流媒体数据包的序列号将流媒体数据包封装为序列化的流媒体数据包,比如说,边缘推流服务器接收到的数据包为50个,那么可以对50个数据包从0开始依次添加0到50的序列号,将添加了序列号的流媒体数据包封装为序列化的流媒体数据包。
值得一提的是,在检测到重新推流时,边缘推流服务器对新接收到的流媒体数据包进行序列化处理。多次推流中对元数据数据包添加的推流时间信息可以不同,因此,就算序列化起点跟之前序列号倒退了,也可以区分出来该序列号倒退是因为重新推流导致。比如说,重新序列化的序列化起点可以从0重新开始,也可以从上一次序列化的最后一个数据包的序列号接着向后排序,如上一次序列化最后的序列号为50,那么对于新接收到的流媒体数据包进行序列化处理时,可以以51为序列化起始点开始进行序列化。有利于保证重新推流时,新接收到的流媒体数据包也能进行序列化处理,以满足不同的推流请求下,直播画面均不会出现画面重复、卡顿等问题,提升了用户的观看体验。
步骤205:将序列化的流媒体数据包转推给若干个中心服务器。
本实施方式中的中心服务器的工作流程示意图,如图3所示,具体包括:
步骤301:接收请求。
具体的说,中心服务器接收的请求可能来自边缘推流服务器或边缘拉流服务器。当接收到来自边缘推流服务器的请求时,将中心服务器与边缘推流服务器建立通信连接,当接收到来自边缘拉流服务器的请求时,将中心服务器与边缘拉流服务器建立通信连接。
步骤302:判断请求类型。
具体的说,请求类型可以为:来自边缘推流服务器的推流请求,或来自边缘拉流服务器的回源请求。当请求类型为推流请求时,则执行步骤303,当请求类型为回源请求时,则执行步骤304。
步骤303:对边缘推流服务器转推的序列化的流媒体数据包进行缓存。
步骤304:判断是否为普通回源请求。
具体的说,由于序列化回源请求中携带有序列号,因此判断是否为普通回源请求可以为:判断回源请求中是否携带序列号,如果未携带序列号,则说明是普通回源请求,执行步骤305,否则说明是序列化回源请求,执行步骤306。
步骤305:根据当前时间和快启时间查找关键帧的位置,根据关键帧的位置向边缘拉流服务器发送缓存的流媒体数据包。
具体的说,在接收到普通回源请求时,与现有的方法类似,根据当前时间和快启时间向前查找关键帧所在的位置,从关键帧所在的位置开始发送缓存的流媒体数据包。
步骤306:根据序列化回源请求携带的序列号确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包。
具体的说,序列化回源请求可以携带流媒体数据包的序列号,中心服务器可以在序列化回源请求中提取序列号,将序列化回源请求携带的序列号所属的数据包的位置确定为待发送的流媒体数据包的起始位置。比如说,中心服务器中缓存的流媒体数据包为序列号为0到50的50个流媒体数据包,从序列化回源请求中提取的序列号为25,那么中心服务器将25号流媒体数据包确定为待发送的流媒体数据包的起始位置,将25号到50号的流媒体数据包发送至边缘拉流服务器。
步骤307:判断请求是否断开。
具体的说,如果中心服务器接收的是推流请求,那么判断推流请求是否断开,如果接收的是回源请求,那么判断回源请求是否断开,不论是哪一种请求,如果请求断开则该流程结束,否则执行步骤308。
步骤308:继续缓存或发送序列化的流媒体数据包。
具体的说,如果接收的是推流请求,那么就继续缓存序列化的流媒体数据包,如果接收的是回源请求,那么就继续发送序列化的流媒体数据。在发送或缓存流媒体数据包时,也可同时执行步骤307。
本实施方式中的边缘拉流服务器的工作流程示意图,如图4所示,具体包括:
步骤401:接收拉流请求。
具体的说,边缘拉流服务器接收来自用户终端的拉流请求,用户终端可以为手机、电脑等智能设备,比如说来自用户的手机播放器发送的拉流请求。
步骤402:指定一中心服务器,向指定的中心服务器发送普通回源请求。
具体的说,边缘拉流服务器在接收到一普通回源请求时,首先要向指定的一个中心服务器发送普通回源请求,指定一个中心服务器的方法与现有技术中类似,可以根据每个中心服务器的域名,结合哈希算法指定一个中心服务器。
步骤403:判断普通回源是否失败。
具体的说,普通回源也是接收中心服务器发送的序列化的流媒体数据包,会维护最新的序列号值,当接收的流媒体数据包异常时,可认为普通回源失败,比如说回源链路不通,超过一定时间并未接收到流媒体数据包,或接收到的流媒体数据包不完整。如果判定普通回源失败,则执行步骤404,否则执行步骤405。
步骤404:切换所指定的中心服务器,向切换后的中心服务器发送序列化回源请求。
具体的说,边缘拉流服务器,由于一直维护着最新的序列号值,因此,在普通回源失败后,可将当前已经收到的最新的序列号作为序列化回源请求要携带的序列号,确定了要携带的序列号后,向切换的中心服务器发送携带序列号的序列化回源请求。
在实际应用中,边缘拉流服务器如果检测到序列化回源失败,可以再次切换中心服务器,向若干个中心服务器中还未发送过序列化回源请求和普通回源请求的中心服务器发送序列化回源请求,直至检测到序列化回源成功。
步骤405:接收中心服务器发送的流媒体数据包。
步骤406:将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包。
具体的说,由于接收的流媒体数据包是经过序列化的接收的流媒体数据包,即每个数据包都有对应的序列号,因此将接收的流媒体数据包去序列化可以理解为去掉每个数据包对应的序列号,以还原所接收到的流媒体数据包,以保证还原后的流媒体数据为符合播放协议的数据包。
步骤407:将还原后的流媒体数据包发送至用户终端。
步骤408:判断拉流请求是否断开。
具体的说,如果在一定时间内未进行数据交互,可认为拉流请求已经断开,则断开回源连接,该流程结束,如果拉流请求未断开,则执行步骤405。
与现有技术相比,本实施方式中,边缘推流服务器具体用于对每个流媒体数据包使用串行序列化接口生成每个流媒体数据包的序列号,根据序列化起始点和每个流媒体数据包的序列号将流媒体数据包封装为序列化的流媒体数据包。通过串行序列化接口生成的序列号,有利于表征不同流媒体数据包的先后顺序,方便了对流媒体数据包的序列化处理。另外,序列化回源请求携带序列号,中心服务器具体用于,根据序列化回源请求携带的序列号确定待发送的流媒体数据包的起始位置,根据起始位置向边缘拉流服务器发送缓存的流媒体数据包,有利于使中心服务器根据接收到的序列化回源请求快速确定应该发送流媒体数据包的起始位置。
本发明的第三实施方式涉及一种数据分发系统。第三实施方式是第二实施方式的进一步改进,主要改进之处在于在本发明第三实施方式中,边缘推流服务器,还用于对序列化的流媒体数据包采用预设的加密算法进行加密,保证流媒体数据包在传输过程中的安全性和保密性。
本实施方式中边缘推流服务器的工作流程示意图,如图5所示,具体包括:
步骤501:接收推流请求。
步骤502:接收元数据数据包,对元数据数据包添加推流时间信息。
步骤503:接收流媒体数据包。
步骤504:根据推流时间信息对流媒体数据包进行序列化处理。
具体的说,本实施方式中步骤501至步骤504与第二实施方式中步骤201至步骤204大致相同,为避免重复在此不再一一赘述。
步骤505:对序列化的流媒体数据包采用预设的加密算法进行加密。
具体的说,边缘推流服务器中可以预先存储加密算法,在对流媒体数据包序列化处理之后,采用存储的加密算法对流媒体数据包进行加密。
步骤506:将加密后的流媒体数据包通过预设的私有协议转推至若干个中心服务器。
具体的说,边缘推流服务器将加密后的流媒体数据包通过预设的私有协议转推至若干个中心服务器,私有协议本质上是厂商内部发展、采用的标准,具有封闭性、垄断性、排它性等特点,保证边缘推流服务器向若干个中心服务器传输数据的私密性。一般直播流媒体数据为RTMP或者FLV格式,都是有标准的header+body数据组成,本实施方式的私有协议为将标准的header转换为私有的header,里面包括时间戳、音视频类型、数据长度、序列号信息和扩展字段信息等。
本实施方式中边缘拉流服务器的工作流程示意图,如图6所示:
步骤601:接收拉流请求。
步骤602:指定一中心服务器,向指定的中心服务器发送普通回源请求。
步骤603:判断普通回源是否失败,如果判定普通回源失败,则执行步骤604,否则执行步骤605。
步骤604:切换所指定的中心服务器,向切换后的中心服务器发送序列化回源请求。
具体的说,本实施方式中步骤601至步骤604与第二实施方式中步骤401至步骤404大致相同,为避免重复在此不再一一赘述。
步骤605:接收中心服务器发送的加密的流媒体数据包。
步骤606:将接收的加密的流媒体数据包采用预设的解密算法进行解密。
具体的说,边缘拉流服务器采用的预设的解密算法与边缘推流服务器采用的预设的加密方法对应,可以对边缘推流服务器加密过的流媒体数据包进行解密。
步骤607:将解密后的流媒体数据包去序列化以还原所解密的流媒体数据包。
步骤608:将还原后的流媒体数据包发送至用户终端。
步骤609:判断拉流请求是否断开。
具体的说,本实施方式中步骤607至步骤609与第二实施方式中步骤406至步骤408大致相同,不同之处在于本实施方式中边缘拉流服务器接收的流媒体数据包为加密过的流媒体数据包,在第二实施方式中还原的是流媒体数据包,本实施方式中还原的是经过加密处理的流媒体数据包,为避免重复在此不再一一赘述。
与现有技术相比,本实施方式中,边缘推流服务器,具体用于将加密后的流媒体数据包通过预设的私有协议转推至若干个中心服务器,通过私有协议有利于保证流媒体数据包在传输过程中的私密性和排他性。边缘推流服务器,还用于在检测到重新推流时,对新接收到的流媒体数据包进行序列化处理。有利于保证重新推流时,新接收到的流媒体数据包也能进行序列化处理,以满足不同的推流请求下,直播画面均不会出现画面重复、卡顿等问题,提升了用户的观看体验。
本发明的第四实施方式涉及一种数据分发方法,本实施方式的数据分发方法包括:边缘推流服务器接收推流器发送的流媒体数据包,对流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;中心服务器序列化的流媒体数据包进行缓存;中心服务器如果接收到来自边缘拉流服务器的序列化回源请求,则根据序列化回源请求确定待发送的流媒体数据包的起始位置;中心服务器根据起始位置向边缘拉流服务器发送缓存的流媒体数据包;边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包;边缘拉流服务器将还原后的流媒体数据包发送至用户终端。下面对本实施方式的数据分发系统的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本实施方式中的数据分发方法的流程示意图如图7所示,具体包括:
步骤701:推流器向边缘推流服务器接收推流器发送的流媒体数据包。
步骤702:边缘推流服务器对流媒体数据包进行序列化处理。
步骤703:边缘推流服务器将序列化的流媒体数据包转推给中心服务器。
步骤704:中心服务器对接收的流媒体数据包进行缓存。
步骤705:用户终端向边缘拉流服务器发送拉流请求。
步骤706:边缘拉流服务器向指定一中心服务器。
具体的说,图7中的中心服务器下的步骤表示的是需要在中心服务器侧完成的步骤,中心服务器侧可以有若干个中心服务器,因此边缘拉流服务器需要指定其中一个中心服务器发送普通回源请求。具体的,可以根据每个中心服务器的域名,结合哈希算法指定一个中心服务器。
步骤707:边缘拉流服务器向指定的中心服务器发送普通回源请求。
步骤708:中心服务器根据普通回源请求发送流媒体数据包。
具体的说,中心服务器发送的流媒体数据包被边缘拉流服务器接收,边缘拉流服务器接收到序列化的流媒体数据包后,就会执行步骤713。
步骤709:边缘拉流服务器判断普通回源是否失败,如果是则执行步骤710,否则执行步骤713。
步骤710:边缘拉流服务器切换中心服务器。
具体的说,边缘拉流服务器可以在除了已经发送过普通回源请求的中心服务器之外的其他中心服务器中重新指定一个中心服务器。
步骤711:边缘拉流服务器向切换的中心服务器发送序列化回源请求。
步骤712:中心服务器根据序列化回源请求发送流媒体数据包。
步骤713:边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包。
步骤714:边缘拉流服务器将还原后的流媒体数据包发送至用户终端。
不难发现,本实施方式为与第一实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明的第五实施方式涉及一种数据分发方法。第五实施方式是第四实施方式的进一步改进,主要改进之处在于在本发明第二实施方式中,通过以下方式对流媒体数据包进行序列化处理:接收推流器发送的元数据数据包;对元数据数据包添加推流时间信息;根据推流时间信息对流媒体数据包进行序列化处理,有利于对流媒体数据包进行有效的序列化处理。
不难发现,本实施方式为与第二实施方式相对应的方法实施例,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
本发明的第六实施方式涉及一种数据分发系统。第六实施方式是第五实施方式的进一步改进,主要改进之处在于在本发明第五实施方式中,边缘推流服务器对序列化的流媒体数据包采用预设的加密算法进行加密,保证流媒体数据包在传输过程中的安全性和保密性。
不难发现,本实施方式为与第三实施方式相对应的方法实施例,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第七实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (26)

1.一种数据分发系统,其特征在于,包括:边缘推流服务器、若干个中心服务器和边缘拉流服务器;
所述边缘推流服务器,用于接收推流器发送的流媒体数据包,对所述流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给所述若干个中心服务器;
所述中心服务器,用于对所述序列化的流媒体数据包进行缓存;如果接收到来自所述边缘拉流服务器的序列化回源请求,则根据所述序列化回源请求确定待发送的流媒体数据包的起始位置,根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包;
所述边缘拉流服务器,用于将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端。
2.根据权利要求1所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于接收推流器发送的元数据数据包,对所述元数据数据包添加推流时间信息,根据所述推流时间信息对所述流媒体数据包进行序列化处理。
3.根据权利要求2所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于根据所述推流时间信息确定序列化起始点,根据所述序列化起始点对所述流媒体数据包进行序列化处理。
4.根据权利要求3所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于对每个所述流媒体数据包使用串行序列化接口生成每个所述流媒体数据包的序列号,根据所述序列化起始点和每个所述流媒体数据包的序列号将所述流媒体数据包封装为所述序列化的流媒体数据包。
5.根据权利要求4所述的数据分发系统,其特征在于,所述序列化回源请求携带序列号,所述中心服务器还用于,将所述序列化回源请求携带的序列号所属的数据包的位置确定为所述起始位置。
6.根据权利要求5所述的数据分发系统,其特征在于,所述边缘拉流服务器还用于,根据所接收的流媒体数据包的序列号,确定所述序列化回源请求携带的序列号;其中,确定的所述序列号为所述边缘拉流服务器最新接收到的流媒体数据包的序列号。
7.根据权利要求1所述的数据分发系统,其特征在于,所述边缘拉流服务器,还用于在接收到所述用户终端发送的拉流请求时,指定一中心服务器,并向指定的中心服务器发送普通回源请求;
所述中心服务器,还用于如果接收到所述普通回源请求,则根据所述普通回源请求确定待发送的流媒体数据包的起始位置,根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包。
8.根据权利要求7所述的数据分发系统,其特征在于,所述中心服务器,还用于根据当前时间和快启时间查找关键帧的位置,将所述关键帧的位置作为所述根据所述普通回源请求确定的待发送的流媒体数据包的起始位置。
9.根据权利要求7所述的数据分发系统,其特征在于,所述边缘拉流服务器,还用于如果检测到普通回源失败,则切换所指定的中心服务器,向切换后的中心服务器发送所述序列化回源请求。
10.根据权利要求9所述的数据分发系统,其特征在于,所述边缘拉流服务器,还用于如果检测到序列化回源失败,则再向所述若干个中心服务器中还未发送过所述序列化回源请求和普通回源请求的中心服务器发送所述序列化回源请求,直至检测到所述序列化回源成功。
11.根据权利要求1所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于对所述序列化的流媒体数据包采用预设的加密算法进行加密,将加密后的流媒体数据包转推至所述若干个中心服务器;
所述边缘拉流服务器,还用于将接收的加密的流媒体数据包采用预设的解密算法进行解密。
12.根据权利要求10所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于将加密后的流媒体数据包通过预设的私有协议转推至所述若干个中心服务器。
13.根据权利要求1所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于在检测到重新推流时,对新接收到的流媒体数据包进行序列化处理。
14.一种数据分发方法,其特征在于,包括:
边缘推流服务器接收推流器发送的流媒体数据包;
所述边缘推流服务器对所述流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;
中心服务器对所述序列化的流媒体数据包进行缓存;
所述中心服务器如果接收到来自所述边缘拉流服务器的序列化回源请求,则根据所述序列化回源请求确定待发送的流媒体数据包的起始位置;
所述中心服务器根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包;
所述边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包;
所述边缘拉流服务器将还原后的流媒体数据包发送至用户终端。
15.根据权利要求14所述的数据分发方法,其特征在于,所述边缘推流服务器,通过以下方式对所述流媒体数据包进行序列化处理:
接收推流器发送的元数据数据包;
对所述元数据数据包添加推流时间信息;
根据所述推流时间信息对所述流媒体数据包进行序列化处理。
16.根据权利要求15所述的数据分发方法,其特征在于,所述根据所述推流时间信息对所述流媒体数据包进行序列化处理,包括:
根据所述推流时间信息确定序列化起始点;
根据所述序列化起始点对所述流媒体数据包进行序列化处理。
17.根据权利要求16所述的数据分发方法,其特征在于,所述根据所述序列化起始点对所述流媒体数据包进行序列化处理,包括:
对每个所述流媒体数据包使用串行序列化接口生成每个所述流媒体数据包的序列号;
根据所述序列化起始点和每个所述流媒体数据包的序列号将所述流媒体数据包封装为所述序列化的流媒体数据包。
18.根据权利要求17所述的数据分发方法,其特征在于,所述序列化回源请求携带序列号,所述中心服务器根据所述序列化回源请求确定待发送的流媒体数据包的起始位置,包括:
将所述序列化回源请求携带的序列号所属的数据包的位置确定为所述起始位置。
19.根据权利要求18所述的数据分发方法,其特征在于,所述边缘拉流服务器发送的所述序列化回源请求携带的序列号,通过以下方式确定:
根据所接收的流媒体数据包的序列号,确定所述序列化回源请求携带的序列号;其中,确定的所述序列号为所述边缘拉流服务器最新接收到的流媒体数据包的序列号。
20.根据权利要求14所述的数据分发方法,其特征在于,在所述边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包之前,还包括:
所述边缘拉流服务器在接收到所述用户终端发送的拉流请求时,指定一中心服务器,并向指定的中心服务器发送普通回源请求;
所述中心服务器如果接收到所述普通回源请求,则根据所述普通回源请求确定待发送的流媒体数据包的起始位置;
所述中心服务器根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包。
21.根据权利要求20所述的数据分发方法,其特征在于,所述根据所述普通回源请求确定待发送的流媒体数据包的起始位置,包括:
根据当前时间和快启时间查找关键帧的位置;
将所述关键帧的位置作为根据所述普通回源请求确定的待发送的流媒体数据包的起始位置。
22.根据权利要求20所述的数据分发方法,其特征在于,在所述中心服务器根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包之后,还包括:
所述边缘拉流服务器如果检测到普通回源失败,则切换所指定的中心服务器,向切换后的中心服务器发送所述序列化回源请求。
23.根据权利要求22所述的数据分发方法,其特征在于,在所述边缘拉流服务器向切换后的中心服务器发送所述序列化回源请求之后,还包括:
所述边缘拉流服务器如果检测到序列化回源失败,则再向所述若干个中心服务器中还未发送过所述序列化回源请求和普通回源请求的中心服务器发送所述序列化回源请求,直至检测到所述序列化回源成功。
24.根据权利要求14所述的数据分发方法,其特征在于,在所述边缘推流服务器对所述流媒体数据包进行序列化处理之后,所述将序列化的流媒体数据包转推给若干个中心服务器之前,还包括:
所述边缘推流服务器对序列化的流媒体数据包采用预设的加密算法进行加密;
所述边缘推流服务器将序列化的流媒体数据包转推给若干个中心服务器包括:所述边缘推流服务器将加密后的流媒体数据包转推至所述若干个中心服务器;
所述边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,包括:
所述边缘拉流服务器将接收的加密的流媒体数据包采用预设的解密算法进行解密,将解密后的流媒体数据包去序列化以还原所接收到的流媒体数据包。
25.根据权利要求14所述的数据分发方法,其特征在于,还包括:所述边缘推流服务器在检测到重新推流时,对新接收到的流媒体数据包进行序列化处理。
26.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求14至25中任一项所述的数据分发方法。
CN201811072603.7A 2018-09-14 2018-09-14 数据分发系统、方法及计算机可读存储介质 Expired - Fee Related CN109151491B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811072603.7A CN109151491B (zh) 2018-09-14 2018-09-14 数据分发系统、方法及计算机可读存储介质
EP18933157.2A EP3849200A4 (en) 2018-09-14 2018-10-30 DATA DISTRIBUTION SYSTEM AND PROCEDURES AS WELL AS COMPUTER-READABLE STORAGE MEDIUM
PCT/CN2018/112684 WO2020052017A1 (zh) 2018-09-14 2018-10-30 数据分发系统、方法及计算机可读存储介质
US16/484,708 US11323527B2 (en) 2018-09-14 2018-10-30 Data distribution system, method and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811072603.7A CN109151491B (zh) 2018-09-14 2018-09-14 数据分发系统、方法及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109151491A true CN109151491A (zh) 2019-01-04
CN109151491B CN109151491B (zh) 2021-03-05

Family

ID=64825264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811072603.7A Expired - Fee Related CN109151491B (zh) 2018-09-14 2018-09-14 数据分发系统、方法及计算机可读存储介质

Country Status (4)

Country Link
US (1) US11323527B2 (zh)
EP (1) EP3849200A4 (zh)
CN (1) CN109151491B (zh)
WO (1) WO2020052017A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445723A (zh) * 2019-07-02 2019-11-12 网宿科技股份有限公司 一种网络数据调度方法及边缘节点
CN114157342A (zh) * 2020-12-03 2022-03-08 南通先进通信技术研究院有限公司 一种基于cdn缓存技术的卫星组播分发系统及其工作方法
CN114339268A (zh) * 2020-10-10 2022-04-12 腾讯科技(深圳)有限公司 一种直播数据处理方法、装置和计算机可读存储介质
CN114760487A (zh) * 2022-03-18 2022-07-15 阿里巴巴(中国)有限公司 直播方法和装置
CN115623070A (zh) * 2022-12-12 2023-01-17 南京芯驰半导体科技有限公司 Idl消息的处理方法、装置、电子设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710966A (zh) * 2012-06-13 2012-10-03 百视通网络电视技术发展有限责任公司 基于http协议的视频直播方法及系统
US20130166625A1 (en) * 2010-05-27 2013-06-27 Adobe Systems Incorporated Optimizing Caches For Media Streaming
CN103634610A (zh) * 2012-08-24 2014-03-12 中兴通讯股份有限公司 直播内容分发系统及方法
CN103986976A (zh) * 2014-06-05 2014-08-13 北京赛维安讯科技发展有限公司 基于cdn网络的传输系统及方法
CN105848011A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种视频直播方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860471B (zh) * 2009-04-10 2013-01-30 华为技术有限公司 一种媒体流切换方法、装置和系统
US10410222B2 (en) * 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
WO2011068784A1 (en) 2009-12-01 2011-06-09 Azuki Systems, Inc. Method and system for secure and reliable video streaming with rate adaptation
US20110296048A1 (en) 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
US9572995B2 (en) * 2010-09-29 2017-02-21 Verizon Patent And Licensing Inc. Creating and using a virtual video asset in a video provisioning system
US9602557B2 (en) * 2012-10-15 2017-03-21 Wowza Media Systems, LLC Systems and methods of communication using a message header that includes header flags
CN105847854A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 直播方法和系统
CN106714334A (zh) 2016-12-22 2017-05-24 网易(杭州)网络有限公司 一种断线重连方法、装置及系统
CN108366292B (zh) * 2017-12-27 2021-04-30 武汉烽火众智数字技术有限责任公司 一种基于流媒体的跨网络视频直播方法及系统
CN108347622B (zh) * 2018-03-06 2020-06-30 腾讯科技(深圳)有限公司 多媒体数据推送方法、装置、存储介质及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130166625A1 (en) * 2010-05-27 2013-06-27 Adobe Systems Incorporated Optimizing Caches For Media Streaming
CN102710966A (zh) * 2012-06-13 2012-10-03 百视通网络电视技术发展有限责任公司 基于http协议的视频直播方法及系统
CN103634610A (zh) * 2012-08-24 2014-03-12 中兴通讯股份有限公司 直播内容分发系统及方法
CN103986976A (zh) * 2014-06-05 2014-08-13 北京赛维安讯科技发展有限公司 基于cdn网络的传输系统及方法
CN105848011A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种视频直播方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445723A (zh) * 2019-07-02 2019-11-12 网宿科技股份有限公司 一种网络数据调度方法及边缘节点
CN110445723B (zh) * 2019-07-02 2022-05-27 网宿科技股份有限公司 一种网络数据调度方法及边缘节点
CN114339268A (zh) * 2020-10-10 2022-04-12 腾讯科技(深圳)有限公司 一种直播数据处理方法、装置和计算机可读存储介质
CN114339268B (zh) * 2020-10-10 2023-08-29 腾讯科技(深圳)有限公司 一种直播数据处理方法、装置和计算机可读存储介质
CN114157342A (zh) * 2020-12-03 2022-03-08 南通先进通信技术研究院有限公司 一种基于cdn缓存技术的卫星组播分发系统及其工作方法
CN114760487A (zh) * 2022-03-18 2022-07-15 阿里巴巴(中国)有限公司 直播方法和装置
CN115623070A (zh) * 2022-12-12 2023-01-17 南京芯驰半导体科技有限公司 Idl消息的处理方法、装置、电子设备、存储介质
CN115623070B (zh) * 2022-12-12 2023-03-10 南京芯驰半导体科技有限公司 Idl消息的处理方法、装置、电子设备、存储介质

Also Published As

Publication number Publication date
US20210337038A1 (en) 2021-10-28
WO2020052017A1 (zh) 2020-03-19
EP3849200A1 (en) 2021-07-14
US11323527B2 (en) 2022-05-03
EP3849200A4 (en) 2021-11-17
CN109151491B (zh) 2021-03-05

Similar Documents

Publication Publication Date Title
CN109151491A (zh) 数据分发系统、方法及计算机可读存储介质
US9674254B2 (en) System and method for using a streaming protocol
KR101882347B1 (ko) Ip 네트워크를 위한 블록체인 기반의 분산형 콘텐츠 배포 시스템 및 방법
EP2383941B1 (en) Client terminal, method and system for downloading streaming media
CN1859084B (zh) 对微软媒体格式的点播流媒体数据进行加密和解密的方法
WO2021120831A1 (zh) 流媒体数据加密、解密方法、装置、电子设备及存储介质
CN110022482B (zh) 视频起播方法、视频服务系统及存储介质
US20100241757A1 (en) System and Method for Storing Streaming Media File
WO2020034082A1 (zh) 基于切片的rtp流传输方法、装置、终端及服务器
US8316108B2 (en) Method and apparatus for obtaining media over a communications network
CN105049873B (zh) 一种流媒体传输方法、装置和系统
JP2004516748A (ja) Rtpヘッダにおける暗号化されたデータに対するポインタ
TW201737720A (zh) 串流裝置及方法、串流服務系統及記錄介質
CN109640113A (zh) 一种拖拉视频数据的处理方法及代理服务器
JP2001092752A (ja) 画像データ配信システムおよびそれに用いる記録媒体
US9313291B2 (en) Systems and methods for transparent communication with bandwidth conservation and HTTP caching
US20070294423A1 (en) Multi-Client Single-Session Media Streaming
US20150095483A1 (en) Communications terminal, transfer terminal, and content publication method
CN107451092A (zh) 一种基于ib网络的数据传输系统
CN109889922A (zh) 流媒体数据的转发方法、装置、设备和存储介质
CN108989907A (zh) 直播数据流处理方法和系统、电子装置及计算机可读存储介质
CN107645475A (zh) 异质网络中的文件资源分发系统与方法
CN110912941A (zh) 组播数据的传输处理方法及装置
CN211321430U (zh) 一种家庭智能终端的节目授权控制系统
CN111200562B (zh) 导流方法、静态父节点、边缘节点以及cdn网络

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210305