WO2020052017A1 - 数据分发系统、方法及计算机可读存储介质 - Google Patents
数据分发系统、方法及计算机可读存储介质 Download PDFInfo
- Publication number
- WO2020052017A1 WO2020052017A1 PCT/CN2018/112684 CN2018112684W WO2020052017A1 WO 2020052017 A1 WO2020052017 A1 WO 2020052017A1 CN 2018112684 W CN2018112684 W CN 2018112684W WO 2020052017 A1 WO2020052017 A1 WO 2020052017A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- streaming media
- streaming
- media data
- server
- data packet
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 25
- 239000000872 buffer Substances 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 208000003028 Stuttering Diseases 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 206010016338 Feeling jittery Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- 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
- 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/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- 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/236—Assembling 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/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
-
- 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/25—Management 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/262—Content 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
-
- 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/60—Network 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/63—Control 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/637—Control signals issued by the client directed to the server or network components
- H04N21/6375—Control 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
-
- 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/60—Network 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/63—Control 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/647—Control 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/64723—Monitoring of network processes or resources, e.g. monitoring of network load
- H04N21/6473—Monitoring network processes errors
-
- 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/60—Network 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/63—Control 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/647—Control 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/64784—Data processing by the network
Definitions
- the present invention relates to the technical field of streaming media distribution, and in particular, to a data distribution system, method, and computer-readable storage medium.
- An embodiment of the present invention further provides a data distribution method applied to a data distribution system, including: an edge streaming server, receiving a streaming media data packet sent by the streaming device, performing serialization processing on the streaming media data packet, and serializing the Streaming media packets are retweeted to several central servers; the central server caches the serialized streaming media packets; if a serialized back to source request is received from the edge streaming server, it is determined based on the serialized back to source request The starting position of the streaming media packet to be sent, according to the starting position, sends the buffered streaming media packet to the edge streaming server; the edge streaming server deserializes the received streaming media packet to restore the received The streaming media data packet sends the restored streaming media data packet to the user terminal.
- An embodiment of the present invention further provides a computer-readable storage medium storing a computer program, and the computer program implements the foregoing data distribution method when executed by a processor.
- serialization back to source request carries a serial number
- the central server is further configured to determine the position of the data packet to which the serial number carried in the serialization back to source request belongs to the starting position, which is beneficial to the central server according to the received
- the serialized request back to the source quickly determines where the streaming media packet should be sent from.
- FIG. 1 is a schematic structural diagram of a data distribution system according to a first embodiment of the present invention
- FIG. 2 is a schematic diagram of a workflow of an edge streaming server in a data distribution system according to a second embodiment of the present invention
- the data distribution system in this embodiment specifically includes: an edge streaming server 101, a central server 1021, a central server 1022, and an edge streaming server 103.
- the central server in this embodiment The number may be several. In this embodiment, only two in the figure are taken as an example, which is not limited in practical applications.
- the central server when the central server receives the serialized streaming media data packet retweeted from the edge streaming server 101, it caches the serialized streaming media data packet. That is, several central servers back up and cache the received serialized streaming media data packets, so that when one of the central servers receives the back-to-source request sent by the edge streaming server 103, it can send the cached streaming media according to the back-to-source request. Data packets, even if one of the central servers fails to return to the source, because the streaming media packets are cached in several central servers, the central server can be switched and the other central servers can send the cached streaming media packets. For example, in this embodiment, when the central server 1021 and the central server 1022 receive the serialized streaming media packets retweeted from the edge streaming server 101, they both buffer the received streaming media packets to achieve streaming media. The effect of packet caching.
- the edge streaming server 103 also cannot receive the streaming media data packet sent by the central server 1022 because the back-to-source link is unavailable. Therefore, the central server needs to be switched to send a serialized back-to-origin request to the re-designated central server 1021.
- the received streaming media data packet can be restored and sent to the user terminal 105 directly.
- the edge streaming server 103 sends a serialized back-to-source request to a switched central server, and after receiving the streaming media packet sent by the switched central server, restores the received streaming media packet again And then sent to the user terminal 105.
- the inventors of the present embodiment have analyzed the existing live broadcast process. After careful research, it is found that the problem of repeated freezes in the playback screen is caused by:
- the streaming server sends streaming media data packets to different servers for backup and cache, the data transmission rates of different sending links are different, which results in inconsistent data cached by the central servers.
- Fast startup and cache effects such as GOP will cause data duplication or data lost. Therefore, in the embodiment of the present invention, the edge push server performs serialization processing on the streaming media data packets, so that the streaming media data packets buffered by the central server are serialized streaming media data packets, and the serialization is sent to the streaming server.
- the central server can easily find the starting position of the streaming media packet to be sent according to the cached serialized processing streaming media packet, and send the cached streaming media packet to the edge pull streaming server according to the starting position.
- the streaming server deserializes the received streaming media data packet and sends it to the user terminal, which is helpful to improve the smoothness of the video picture played by the user terminal, meet the user's viewing needs, and effectively avoid screen freezes and duplication Issues to improve users ’live viewing experience.
- Step 301 Receive a request.
- Step 307 Determine whether the request is disconnected.
- Step 308 Continue to buffer or send serialized streaming media data packets.
- a third embodiment of the present invention relates to a data distribution system.
- the third embodiment is a further improvement of the second embodiment.
- the main improvement lies in that in the third embodiment of the present invention, the edge streaming server is further configured to use a preset encryption algorithm for serialized streaming media packets Encryption ensures the security and confidentiality of streaming media data packets during transmission.
- Step 604 Switch the designated central server, and send a serialized back-to-origin request to the switched central server.
- an edge streaming server is specifically used to retransmit encrypted streaming media data packets to a plurality of central servers through a preset private protocol, which is beneficial to ensure streaming media through the private protocol.
- the edge streaming server is also used to serialize the newly received streaming media packets when re-streaming is detected. It is beneficial to ensure that when the stream is re-pushed, the newly received streaming media data packets can also be serialized to meet different streaming requests, and there will be no screen duplication, stuttering, etc. in the live picture, which improves the user ’s Watching experience.
- Step 704 The central server buffers the received streaming media data packet.
- Step 707 The edge streaming server sends a normal back-to-origin request to the designated central server.
- Step 708 The central server sends the streaming media data packet according to the ordinary back-to-source request.
- Step 710 The edge streaming server switches the central server.
- the edge streaming server may re-designate a central server among other central servers other than the central server that has sent a common back-to-origin request.
- Step 713 The edge pull server deserializes the received streaming media data packet to restore the received streaming media data packet.
- Step 714 The edge streaming server sends the restored streaming media data packet to the user terminal.
- a fifth embodiment of the present invention relates to a data distribution method.
- the fifth embodiment is a further improvement of the fourth embodiment.
- the main improvement lies in that in the second embodiment of the present invention, the streaming media data packets are serialized by: receiving a metadata data packet sent by a streamer; Adding push time information to the metadata data packets; serializing the streaming media data packets according to the push time information is beneficial to the effective serialization processing of the streaming media data packets.
- this embodiment is a method example corresponding to the second embodiment, and this embodiment can be implemented in cooperation with the second embodiment. Relevant technical details mentioned in the second embodiment are still valid in this embodiment, and in order to reduce repetition, details are not repeated here. Accordingly, the related technical details mentioned in this embodiment can also be applied in the second embodiment.
- a sixth embodiment of the present invention relates to a data distribution system.
- the sixth embodiment is a further improvement of the fifth embodiment.
- the main improvement is that in the fifth embodiment of the present invention, the edge streaming server uses a preset encryption algorithm to encrypt the serialized streaming data packets to ensure the streaming. Security and confidentiality of media data packets during transmission.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
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-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (26)
- 一种数据分发系统,其特征在于,包括:边缘推流服务器、若干个中心服务器和边缘拉流服务器;所述边缘推流服务器,用于接收推流器发送的流媒体数据包,对所述流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给所述若干个中心服务器;所述中心服务器,用于对所述序列化的流媒体数据包进行缓存;如果接收到来自所述边缘拉流服务器的序列化回源请求,则根据所述序列化回源请求确定待发送的流媒体数据包的起始位置,根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包;所述边缘拉流服务器,用于将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,将还原后的流媒体数据包发送至用户终端。
- 根据权利要求1所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于接收推流器发送的元数据数据包,对所述元数据数据包添加推流时间信息,根据所述推流时间信息对所述流媒体数据包进行序列化处理。
- 根据权利要求2所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于根据所述推流时间信息确定序列化起始点,根据所述序列化起始点对所述流媒体数据包进行序列化处理。
- 根据权利要求3所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于对每个所述流媒体数据包使用串行序列化接口生成每个所述流媒体数据包的序列号,根据所述序列化起始点和每个所述流媒体数据包的序列号将所述流媒体数据包封装为所述序列化的流媒体数据包。
- 根据权利要求4所述的数据分发系统,其特征在于,所述序列化回源请求携带序列号,所述中心服务器还用于,将所述序列化回源请求携带的序列号所属的数据包的位置确定为所述起始位置。
- 根据权利要求5所述的数据分发系统,其特征在于,所述边缘拉流服务器还用于,根据所接收的流媒体数据包的序列号,确定所述序列化回源请求携带的序列号;其中,确定的所述序列号为所述边缘拉流服务器最新接收到的流媒体数据包的序列号。
- 根据权利要求1所述的数据分发系统,其特征在于,所述边缘拉流服务器,还用于在接收到所述用户终端发送的拉流请求时,指定一中心服务器,并向指定的中心服务器发送普通回源请求;所述中心服务器,还用于如果接收到所述普通回源请求,则根据所述普通回源请求确定 待发送的流媒体数据包的起始位置,根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包。
- 根据权利要求7所述的数据分发系统,其特征在于,所述中心服务器,还用于根据当前时间和快启时间查找关键帧的位置,将所述关键帧的位置作为所述根据所述普通回源请求确定的待发送的流媒体数据包的起始位置。
- 根据权利要求7所述的数据分发系统,其特征在于,所述边缘拉流服务器,还用于如果检测到普通回源失败,则切换所指定的中心服务器,向切换后的中心服务器发送所述序列化回源请求。
- 根据权利要求9所述的数据分发系统,其特征在于,所述边缘拉流服务器,还用于如果检测到序列化回源失败,则再向所述若干个中心服务器中还未发送过所述序列化回源请求和普通回源请求的中心服务器发送所述序列化回源请求,直至检测到所述序列化回源成功。
- 根据权利要求1所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于对所述序列化的流媒体数据包采用预设的加密算法进行加密,将加密后的流媒体数据包转推至所述若干个中心服务器;所述边缘拉流服务器,还用于将接收的加密的流媒体数据包采用预设的解密算法进行解密。
- 根据权利要求10所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于将加密后的流媒体数据包通过预设的私有协议转推至所述若干个中心服务器。
- 根据权利要求1所述的数据分发系统,其特征在于,所述边缘推流服务器,还用于在检测到重新推流时,对新接收到的流媒体数据包进行序列化处理。
- 一种数据分发方法,其特征在于,包括:边缘推流服务器接收推流器发送的流媒体数据包;所述边缘推流服务器对所述流媒体数据包进行序列化处理,将序列化的流媒体数据包转推给若干个中心服务器;中心服务器对所述序列化的流媒体数据包进行缓存;所述中心服务器如果接收到来自所述边缘拉流服务器的序列化回源请求,则根据所述序列化回源请求确定待发送的流媒体数据包的起始位置;所述中心服务器根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包;所述边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包;所述边缘拉流服务器将还原后的流媒体数据包发送至用户终端。
- 根据权利要求14所述的数据分发方法,其特征在于,所述边缘推流服务器,通过以下方式对所述流媒体数据包进行序列化处理:接收推流器发送的元数据数据包;对所述元数据数据包添加推流时间信息;根据所述推流时间信息对所述流媒体数据包进行序列化处理。
- 根据权利要求15所述的数据分发方法,其特征在于,所述根据所述推流时间信息对所述流媒体数据包进行序列化处理,包括:根据所述推流时间信息确定序列化起始点;根据所述序列化起始点对所述流媒体数据包进行序列化处理。
- 根据权利要求16所述的数据分发方法,其特征在于,所述根据所述序列化起始点对所述流媒体数据包进行序列化处理,包括:对每个所述流媒体数据包使用串行序列化接口生成每个所述流媒体数据包的序列号;根据所述序列化起始点和每个所述流媒体数据包的序列号将所述流媒体数据包封装为所述序列化的流媒体数据包。
- 根据权利要求17所述的数据分发方法,其特征在于,所述序列化回源请求携带序列号,所述中心服务器根据所述序列化回源请求确定待发送的流媒体数据包的起始位置,包括:将所述序列化回源请求携带的序列号所属的数据包的位置确定为所述起始位置。
- 根据权利要求18所述的数据分发方法,其特征在于,所述边缘拉流服务器发送的所述序列化回源请求携带的序列号,通过以下方式确定:根据所接收的流媒体数据包的序列号,确定所述序列化回源请求携带的序列号;其中,确定的所述序列号为所述边缘拉流服务器最新接收到的流媒体数据包的序列号。
- 根据权利要求14所述的数据分发方法,其特征在于,在所述边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包之前,还包括:所述边缘拉流服务器在接收到所述用户终端发送的拉流请求时,指定一中心服务器,并向指定的中心服务器发送普通回源请求;所述中心服务器如果接收到所述普通回源请求,则根据所述普通回源请求确定待发送的流媒体数据包的起始位置;所述中心服务器根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包。
- 根据权利要求20所述的数据分发方法,其特征在于,所述根据所述普通回源请求确定待发送的流媒体数据包的起始位置,包括:根据当前时间和快启时间查找关键帧的位置;将所述关键帧的位置作为根据所述普通回源请求确定的待发送的流媒体数据包的起始位置。
- 根据权利要求20所述的数据分发方法,其特征在于,在所述中心服务器根据所述起始位置向所述边缘拉流服务器发送缓存的流媒体数据包之后,还包括:所述边缘拉流服务器如果检测到普通回源失败,则切换所指定的中心服务器,向切换后的中心服务器发送所述序列化回源请求。
- 根据权利要求22所述的数据分发方法,其特征在于,在所述边缘拉流服务器向切换后的中心服务器发送所述序列化回源请求之后,还包括:所述边缘拉流服务器如果检测到序列化回源失败,则再向所述若干个中心服务器中还未发送过所述序列化回源请求和普通回源请求的中心服务器发送所述序列化回源请求,直至检测到所述序列化回源成功。
- 根据权利要求14所述的数据分发方法,其特征在于,在所述边缘推流服务器对所述流媒体数据包进行序列化处理之后,所述将序列化的流媒体数据包转推给若干个中心服务器之前,还包括:所述边缘推流服务器对序列化的流媒体数据包采用预设的加密算法进行加密;所述边缘推流服务器将序列化的流媒体数据包转推给若干个中心服务器包括:所述边缘推流服务器将加密后的流媒体数据包转推至所述若干个中心服务器;所述边缘拉流服务器将接收的流媒体数据包去序列化以还原所接收到的流媒体数据包,包括:所述边缘拉流服务器将接收的加密的流媒体数据包采用预设的解密算法进行解密,将解密后的流媒体数据包去序列化以还原所接收到的流媒体数据包。
- 根据权利要求14所述的数据分发方法,其特征在于,还包括:所述边缘推流服务器在检测到重新推流时,对新接收到的流媒体数据包进行序列化处理。
- 一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求14至25中任一项所述的数据分发方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/484,708 US11323527B2 (en) | 2018-09-14 | 2018-10-30 | Data distribution system, method and computer-readable storage medium |
EP18933157.2A EP3849200A4 (en) | 2018-09-14 | 2018-10-30 | DATA DISTRIBUTION SYSTEM AND PROCEDURES AS WELL AS COMPUTER-READABLE STORAGE MEDIUM |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811072603.7 | 2018-09-14 | ||
CN201811072603.7A CN109151491B (zh) | 2018-09-14 | 2018-09-14 | 数据分发系统、方法及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020052017A1 true WO2020052017A1 (zh) | 2020-03-19 |
Family
ID=64825264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/112684 WO2020052017A1 (zh) | 2018-09-14 | 2018-10-30 | 数据分发系统、方法及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11323527B2 (zh) |
EP (1) | EP3849200A4 (zh) |
CN (1) | CN109151491B (zh) |
WO (1) | WO2020052017A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445723B (zh) * | 2019-07-02 | 2022-05-27 | 网宿科技股份有限公司 | 一种网络数据调度方法及边缘节点 |
CN114339268B (zh) * | 2020-10-10 | 2023-08-29 | 腾讯科技(深圳)有限公司 | 一种直播数据处理方法、装置和计算机可读存储介质 |
CN112803982A (zh) * | 2021-02-03 | 2021-05-14 | 南通先进通信技术研究院有限公司 | 一种基于cdn缓存技术的卫星组播分发系统及其工作方法 |
CN114760487B (zh) * | 2022-03-18 | 2024-07-23 | 阿里巴巴(中国)有限公司 | 直播方法和装置 |
CN115623070B (zh) * | 2022-12-12 | 2023-03-10 | 南京芯驰半导体科技有限公司 | Idl消息的处理方法、装置、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860471A (zh) * | 2009-04-10 | 2010-10-13 | 华为技术有限公司 | 一种媒体流切换方法、装置和系统 |
CN103986976A (zh) * | 2014-06-05 | 2014-08-13 | 北京赛维安讯科技发展有限公司 | 基于cdn网络的传输系统及方法 |
CN105847854A (zh) * | 2016-04-12 | 2016-08-10 | 乐视控股(北京)有限公司 | 直播方法和系统 |
CN108347622A (zh) * | 2018-03-06 | 2018-07-31 | 腾讯科技(深圳)有限公司 | 多媒体数据推送方法、装置、存储介质及设备 |
CN108366292A (zh) * | 2017-12-27 | 2018-08-03 | 武汉烽火众智数字技术有限责任公司 | 一种基于流媒体的跨网络视频直播方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9253548B2 (en) * | 2010-05-27 | 2016-02-02 | Adobe Systems Incorporated | Optimizing caches for media streaming |
US8695054B2 (en) * | 2010-09-29 | 2014-04-08 | Verizon Patent And Licensing Inc. | Ingesting heterogeneous video content to provide a unified video provisioning service |
CN102710966A (zh) * | 2012-06-13 | 2012-10-03 | 百视通网络电视技术发展有限责任公司 | 基于http协议的视频直播方法及系统 |
CN103634610B (zh) * | 2012-08-24 | 2018-02-16 | 中兴通讯股份有限公司 | 直播内容分发系统及方法 |
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 |
CN105848011A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种视频直播方法及装置 |
CN106714334A (zh) * | 2016-12-22 | 2017-05-24 | 网易(杭州)网络有限公司 | 一种断线重连方法、装置及系统 |
-
2018
- 2018-09-14 CN CN201811072603.7A patent/CN109151491B/zh not_active Expired - Fee Related
- 2018-10-30 WO PCT/CN2018/112684 patent/WO2020052017A1/zh unknown
- 2018-10-30 EP EP18933157.2A patent/EP3849200A4/en not_active Withdrawn
- 2018-10-30 US US16/484,708 patent/US11323527B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860471A (zh) * | 2009-04-10 | 2010-10-13 | 华为技术有限公司 | 一种媒体流切换方法、装置和系统 |
CN103986976A (zh) * | 2014-06-05 | 2014-08-13 | 北京赛维安讯科技发展有限公司 | 基于cdn网络的传输系统及方法 |
CN105847854A (zh) * | 2016-04-12 | 2016-08-10 | 乐视控股(北京)有限公司 | 直播方法和系统 |
CN108366292A (zh) * | 2017-12-27 | 2018-08-03 | 武汉烽火众智数字技术有限责任公司 | 一种基于流媒体的跨网络视频直播方法及系统 |
CN108347622A (zh) * | 2018-03-06 | 2018-07-31 | 腾讯科技(深圳)有限公司 | 多媒体数据推送方法、装置、存储介质及设备 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3849200A4 * |
Also Published As
Publication number | Publication date |
---|---|
CN109151491B (zh) | 2021-03-05 |
US20210337038A1 (en) | 2021-10-28 |
EP3849200A1 (en) | 2021-07-14 |
CN109151491A (zh) | 2019-01-04 |
EP3849200A4 (en) | 2021-11-17 |
US11323527B2 (en) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020052017A1 (zh) | 数据分发系统、方法及计算机可读存储介质 | |
US9734242B2 (en) | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data | |
EP2383941B1 (en) | Client terminal, method and system for downloading streaming media | |
CN110022482B (zh) | 视频起播方法、视频服务系统及存储介质 | |
EP3840394A1 (en) | Video screen projection method, device, computer equipment and storage medium | |
US9356985B2 (en) | Streaming video to cellular phones | |
JP2017513413A (ja) | 1つの要求メッセージに基づいたネットワーク・ノードへの多数のチャンクの要求 | |
WO2017096935A1 (zh) | 一种快速频道切换方法、服务器及iptv系统 | |
TWI616097B (zh) | 串流裝置及方法、串流服務系統及記錄介質 | |
CN107135266B (zh) | Http代理框架安全数据传输方法 | |
JP2009193460A (ja) | 情報処理装置、配信情報投入装置及び情報処理方法並びに情報処理用プログラム | |
JP2005056345A (ja) | サーバ、コンテンツ提供装置、コンテンツ受信装置、コンテンツ提供方法、コンテンツ受信方法及びプログラム | |
US20150095483A1 (en) | Communications terminal, transfer terminal, and content publication method | |
TW201409998A (zh) | 第二內容串流在第二裝置上描繪時間之控制方法及控制裝置 | |
JP2001092752A (ja) | 画像データ配信システムおよびそれに用いる記録媒体 | |
TW201138464A (en) | Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system | |
CN115086714B (zh) | 数据处理方法、装置、设备及存储介质 | |
JP2008193500A (ja) | データ送信装置及びデータ中継装置 | |
US20070083663A1 (en) | Contents distribution system contents server contents receiving apparatus contents distribution method, program and storage media | |
CN111935490B (zh) | 一种直播录流容灾处理方法及系统 | |
US7814168B2 (en) | Unit-to-unit data exchange system, and unit, exchange completion data keeping device and program for use in the same | |
KR20130134911A (ko) | 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치 | |
US12137281B2 (en) | Systems and methods for transporting data over content delivery networks | |
US20230088496A1 (en) | Method for video streaming | |
US20230188810A1 (en) | Systems and methods for transporting data over content delivery networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18933157 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018933157 Country of ref document: EP Effective date: 20210409 |