CN108600859B - 一种数据切片方法及*** - Google Patents

一种数据切片方法及*** Download PDF

Info

Publication number
CN108600859B
CN108600859B CN201810286720.7A CN201810286720A CN108600859B CN 108600859 B CN108600859 B CN 108600859B CN 201810286720 A CN201810286720 A CN 201810286720A CN 108600859 B CN108600859 B CN 108600859B
Authority
CN
China
Prior art keywords
data
positioning information
stream
information packet
offset
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.)
Active
Application number
CN201810286720.7A
Other languages
English (en)
Other versions
CN108600859A (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.)
Shenzhen Onething Technology Co Ltd
Original Assignee
Shenzhen Onething 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 Shenzhen Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201810286720.7A priority Critical patent/CN108600859B/zh
Publication of CN108600859A publication Critical patent/CN108600859A/zh
Application granted granted Critical
Publication of CN108600859B publication Critical patent/CN108600859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/643Communication 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/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
    • H04N21/26208Content 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 the scheduling operation being performed under constraints
    • 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/632Control 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 using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • 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
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据切片方法及***,其中该方法包括:推流边缘节点接收到推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包;所述推流边缘节点将带有定位信息包的RTMP数据流发送给CDN网络节点;所述CDN网络节点将所述带有定位信息包的RTMP数据流分发给拉流边缘节点;所述拉流边缘节点解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片。本发明实施例通过在推流边缘节点的RTMP数据流中添加定位信息包,分发网络依然实用传统RTMP协议,在不改变现有协议的情况下,在切片节点解析定位信息包,计算出当前的数据块标识和数据块偏移即可启动切片,由于所有节点都按照定位信息进行初始化,保证了各节点切片的数据一致性。

Description

一种数据切片方法及***
技术领域
本发明涉及流媒体技术领域,尤其涉及一种数据切片方法及***。
背景技术
传统的P2P切片多采用源站切片的方式保证整个分发网络的数据一致性,但该方案存在单点问题,一旦切片源异常,则必然造成全网直播卡顿,且由于是源站分发数据块,必然会导致传统RTMP网络无法承载该数据,需要对现有分发网络进行协议升级,不利于第三方整合。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种数据切片方法,在不改变现有协议的情况下,只需要在切片节点解析定位信息包,并按包中定位信息计算出当前的数据块标识和数据块偏移即可启动切片,由于所有节点都按照定位信息进行初始化,保证了各节点切片的数据一致性。
本发明的目的之二在于提供一种数据切片***,在不改变现有协议的情况下,只需要在切片节点解析定位信息包,并按包中定位信息计算出当前的数据块标识和数据块偏移即可启动切片,由于所有节点都按照定位信息进行初始化,保证了各节点切片的数据一致性。
本发明的目的之一采用以下技术方案实现:
一种数据切片方法,包括:
推流边缘节点接收到推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包;
所述推流边缘节点将带有定位信息包的RTMP数据流发送给CDN网络节点;
所述CDN网络节点将所述带有定位信息包的RTMP数据流分发给拉流边缘节点;
所述拉流边缘节点解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片。
进一步地,所述定位信息包的格式为AMF格式。
进一步地,所述定位信息包包括:
当前数据流标识、当前帧序号、当前数据流偏移量以及当前数据流时间戳。
进一步地,所述拉流边缘节点解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片,包括:
判断所述RTMP数据流中的数据类型;
若所述RTMP数据流中包含音视频数据流和定位信息包,则将所述RTMP数据流中的音视频数据缓存至缓存单元中,并统计帧数和偏移;
判断统计的所述帧数和偏移与所述定位信息包中的信息是否一致;
若一致,则根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,并根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片。
进一步地,所述方法还包括:
将所述RTMP数据流中不是音视频数据也不是定位信息包的数据丢弃。
进一步地,所述方法还包括:
若统计的所述帧数和偏移与所述定位信息包中的信息不一致,则将所述缓存单元中对应的音视频数据流和定位信息包清空。
进一步地,所述根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,具体通过以下算式计算:
Figure BDA0001616210010000031
chunk_offset=(offset+index*flv_header_size)%chunk_size;
其中,chunk_id、chunk_offset分别表示当前的数据块标识和数据块偏移,offset表示所述定位信息包中所携带的当前流偏移量,index表示所述定位信息包中所携带的当前帧序号,flv_header_size表示FLV封装格式的头长度,chunk_size表示当前数据块大小,
Figure BDA0001616210010000032
表示向上取整,“%”表示取余。
进一步地,所述根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片之后,还包括:
所述拉流边缘节点将切片后的数据块分片通过P2P网络分发至P2P节点。
本发明的目的之二采用以下技术方案实现:
一种数据切片***,其包括:推流用户端、推流边缘节点、CDN网络节点以及拉流边缘节点;
所述推流边缘节点,用于接收到所述推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包,并将带有定位信息包的RTMP数据流发送给所述CDN网络节点;
所述CDN网络节点,用于将所述带有定位信息包的RTMP数据流分发给所述拉流边缘节点;
所述拉流边缘节点,用于解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片。
进一步地,所述定位信息包的格式为AMF格式,其中所述定位信息包包括当前数据流标识、当前帧序号、当前数据流偏移量以及当前数据流时间戳。
进一步地,所述拉流边缘节点包括:
第一判断单元,用于判断所述RTMP数据流中的数据类型;
缓存单元,用于将所述RTMP数据流中的音视频数据缓存至缓存单元中,并统计帧数和偏移;
第二判断单元,用于判断统计的所述帧数和偏移与所述定位信息包中的信息是否一致;
计算单元,用于根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移;
切片单元,用于根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片。
进一步地,所述拉流边缘节点还包括:
丢弃单元,用于将所述RTMP数据流中不是音视频数据也不是定位信息包的数据丢弃。
进一步地,所述拉流边缘节点还包括:
清空单元,用于当统计的所述帧数和偏移与所述定位信息包中的信息不一致,将所述缓存单元中对应的音视频数据流和定位信息包清空。
进一步地,所述根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,具体通过以下算式计算:
Figure BDA0001616210010000051
chunk_offset=(offset+index*flv_header_size)%chunk_size;
其中,chunk_id、chunk_offset分别表示当前的数据块标识和数据块偏移,offset表示所述定位信息包中所携带的当前流偏移量,index表示所述定位信息包中所携带的当前帧序号,flv_header_size表示FLV封装格式的头长度,chunk_size表示当前数据块大小,
Figure BDA0001616210010000052
表示向上取整,“%”表示取余。
进一步地,所述拉流边缘节点还包括:分发单元,用于将切片后的数据块分片通过P2P网络分发至P2P节点。
相比现有技术,本发明的有益效果在于:本发明实施例通过在推流边缘节点的RTMP数据流中添加AMF格式的定位信息包,分发网络依然实用传统RTMP协议,在不改变现有协议的情况下,只需要在切片节点解析定位信息包,并按包中定位信息计算出当前的数据块标识和数据块偏移即可启动切片,由于所有节点都按照定位信息进行初始化,保证了各节点切片的数据一致性。
附图说明
图1为本发明实施例一提供的数据切片方法流程示意图;
图2本本发明实施例一提供的数据切片流程示意图;
图3为本发明实施例二提供的数据切片***结构示意图;
图4为本发明实施例二提供的数据切片***中拉流边缘节点的结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例一
如图1为本发明实施例提供的数据切片方法,包括以下步骤:
步骤S110:推流边缘节点接收到推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包。
在本实施例中,推流端用户端通过RTMP协议将视频流封装成RTMP数据流并推送至推流边缘节点,其中所述RTMP视频流包括AMF格式的数据或FLV格式的音视频数据。
优选地,推流边缘节点接收到推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加AMF格式的定位信息包,所述定位信息包包括当前流标识uid、当前帧序号index、当前流偏移量offset、当前流时间戳timestamp,其中所述当前流标识uid用于同一路流更换推流节点后的定位信息重置识别;所述当前帧序号index记录当前音视频的发送帧率,不包括seq_header,即(sequence header)视频序列头;所述当前流偏移量offset记录当前音视频的发送总数据偏移,不包括seq_header;所述当前流时间戳timestamp记录当前定位信息的下一帧数据时间戳,用于全局矫正,所述定位信息包包含的字段如下表所示:
Figure BDA0001616210010000071
步骤S120:所述推流边缘节点将带有定位信息包的RTMP数据流发送给CDN网络节点。
优选地,推流边缘节点将带有定位信息包的RTMP数据流传递至CDN网络节点进行分发,需要说明的是,在分发过程中要求CDN网络节点不得丢弃所述定位信息包。
步骤S130:所述CDN网络节点将所述带有定位信息包的RTMP数据流分发给拉流边缘节点。
步骤S140:所述拉流边缘节点解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片。
优选地,CDN网络节点将带有定位信息包的RTMP数据流分发给拉流边缘节点,拉流边缘节点通过解析定位信息包,并根据解析后的定位信息对所述RTMP数据流进行切片。
如图2所示的数据切片流程,首先判断RTMP数据流中的数据类型,若RTMP数据流中包含音视频数据流和定位信息包,则将所述音视频数据流缓存至缓存单元msg_cache中,并统计帧数和偏移;将所述RTMP数据流中不是音视频数据也不是定位信息包的数据丢弃;判断统计的帧数和偏移与所述定位信息包中的信息是否一致,若一致,说明所述音视频数据未丢包,则根据所述定位信息包中的信息计算当前的数据块标识chunk_id和数据块偏移chunk_offset,并根据当前的数据块标识chunk_id和数据块偏移chunk_offset对所述缓存单元msg_cache中的数据进行切片;若统计的帧数和偏移与所述定位信息包中的定位信息不一致,说明所述音视频数据发生丢包现象,则将缓存单元msg_cache中对应的音视频数据和定位信息包清空。
优选地,拉流边缘节点将切片后的数据块分片通过P2P网络分发至P2P节点。
优选地,根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,具体通过以下算式计算:
Figure BDA0001616210010000081
chunk_offset=(offset+index*flv_header_size)%chunk_size;
其中,chunk_id、chunk_offset分别表示当前的数据块标识和数据块偏移,offset表示所述定位信息包中所携带的当前流偏移量,index表示所述定位信息包中所携带的当前帧序号,flv_header_size表示FLV封装格式的头长度,所述头长度固定为11bytes,chunk_size表示当前数据块大小,
Figure BDA0001616210010000082
表示向上取整,“%”表示取余,其中数据块大小chunk_size用户可以通过设置改变。
本发明实施例提供的数据切片方法,通过在推流边缘节点的RTMP数据流中添加AMF格式的定位信息包,分发网络依然使用传统RTMP协议,在不改变现有协议的情况下,只需要在切片节点解析定位信息包,并按包中定位信息计算出当前的数据块标识和数据块偏移即可启动切片,由于所有节点都按照定位信息进行初始化,保证了各节点切片的数据一致性。
实施例二
如图3所示,图3为本发明实施例提供的数据切片***结构示意图,该***包括:
推流用户端100、推流边缘节点200、CDN网络节点300、拉流边缘节点400以及P2P节点500。
所述推流边缘节点200,用于接收到所述推流用户端100推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包,并将带有定位信息包的RTMP数据流发送给所述CDN网络节点300;所述CDN网络节点300,用于将所述带有定位信息包的RTMP数据流分发给所述拉流边缘节点400;所述拉流边缘节点400,用于解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片。
在本实施例中,推流端用户端100通过RTMP协议将视频流封装成RTMP数据流并推送至推流边缘节点,其中所述RTMP视频流包括AMF格式的数据或FLV格式的音视频数据。
优选地,推流边缘节点200接收到推流用户端100推送的RTMP数据流后,在所述RTMP数据流中添加AMF格式的定位信息包,所述定位信息包包括当前流标识uid、当前帧序号index、当前流偏移量offset、当前流时间戳timestamp,其中所述当前流标识uid用于同一路流更换推流节点后的定位信息重置识别;所述当前帧序号index记录当前音视频的发送帧率,不包括seq_header,即(sequence header)视频序列头;所述当前流偏移量offset记录当前音视频的发送总数据偏移,不包括seq_header;所述当前流时间戳timestamp记录当前定位信息的下一帧数据时间戳,用于全局矫正。
优选地,推流边缘节点200将带有定位信息包的RTMP数据流传递至CDN网络节点300进行分发,需要说明的是,在分发过程中要求CDN网络节点300不得丢弃所述定位信息包。
优选地,CDN网络节点300将带有定位信息包的RTMP数据流分发给拉流边缘节点400,拉流边缘节点400通过解析定位信息包,并根据解析后的定位信息对所述RTMP数据流进行切片。
优选地,拉流边缘节点400将切片后的数据块分片通过P2P网络分发至P2P节点500。
如图4所示,图4为本发明实施例提供的数据切片***中拉流边缘节点400的结构示意图,包括:
第一判断单元410,用于判断所述RTMP数据流中的数据类型;缓存单元420,用于将所述RTMP数据流中的音视频数据缓存至缓存单元中,并统计帧数和偏移;第二判断单元430,用于判断统计的所述帧数和偏移与所述定位信息包中的信息是否一致;计算单元440,用于根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移;切片单元450,用于根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片;丢弃单元460,用于将所述RTMP数据流中包含的其它数据丢弃;清空单元470,用于当统计的所述帧数和偏移与所述定位信息包中的信息不一致,将所述缓存单元中对应的音视频数据流和定位信息包清空;分发单元480,用于将切片后的数据块分片通过P2P网络分发至P2P节点500。
具体地,首先第一判断单元410判断RTMP数据流中的数据类型,若RTMP数据流中包含音视频数据流和定位信息包,进一步地,缓存单元420将所述音视频数据流缓存至缓存单元msg_cache中,并统计帧数和偏移;丢弃单元460将所述RTMP数据流中不是音视频数据也不是定位信息包的数据丢弃;进一步地,第二判断单元430判断统计的帧数和偏移与所述定位信息包中的信息是否一致,若一致,说明所述音视频数据未丢包,计算单元440根据所述定位信息包中的信息计算当前的数据块标识chunk_id和数据块偏移chunk_offset,切片单元450根据当前的数据块标识chunk_id和数据块偏移chunk_offset对所述缓存单元msg_cache中的数据进行切片,最后分发单元480将切片后的数据块分片通过P2P网络分发至P2P节点500;若统计的帧数和偏移与所述定位信息包中的定位信息不一致,说明所述音视频数据发生丢包现象,清空单元470将缓存单元msg_cache中对应的音视频数据和定位信息包清空。
优选地,根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,具体通过以下算式计算:
Figure BDA0001616210010000111
chunk_offset=(offset+index*flv_header_size)%chunk_size;
其中,chunk_id、chunk_offset分别表示当前的数据块标识和数据块偏移,offset表示所述定位信息包中所携带的当前流偏移量,index表示所述定位信息包中所携带的当前帧序号,flv_header_size表示FLV封装格式的头长度,所述头长度固定为11bytes,chunk_size表示当前数据块大小,其中数据块大小chunk_size用户可以通过设置改变,
Figure BDA0001616210010000112
表示向上取整,“%”表示取余。
本发明实施例提供的数据切片***,通过在推流边缘节点的RTMP数据流中添加AMF格式的定位信息包,分发网络依然使用传统RTMP协议,在不改变现有协议的情况下,只需要在切片节点解析定位信息包,并按包中定位信息计算出当前的数据块标识和数据块偏移即可启动切片,由于所有节点都按照定位信息进行初始化,保证了各节点切片的数据一致性。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

Claims (13)

1.一种数据切片方法,其特征在于,包括:
推流边缘节点接收到推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包;
所述推流边缘节点将带有定位信息包的RTMP数据流发送给CDN网络节点;
所述CDN网络节点将所述带有定位信息包的RTMP数据流分发给拉流边缘节点;
所述拉流边缘节点解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片;
所述拉流边缘节点解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片,包括:
判断所述RTMP数据流中的数据类型;
若所述RTMP数据流中包含音视频数据,则将所述RTMP数据流中的音视频数据缓存至缓存单元中,并统计帧数和偏移;
判断统计的所述帧数和偏移与所述定位信息包中的信息是否一致;
若一致,则根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,并根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片。
2.根据权利要求1所述的数据切片方法,其特征在于,所述定位信息包的格式为AMF格式。
3.根据权利要求1所述的数据切片方法,其特征在于,所述定位信息包包括:
当前数据流标识、当前帧序号、当前数据流偏移量以及当前数据流时间戳。
4.根据权利要求3所述的数据切片方法,其特征在于,所述方法还包括:
将所述RTMP数据流中不是音视频数据也不是定位信息包的数据丢弃。
5.根据权利要求3所述的数据切片方法,其特征在于,所述方法还包括:
若统计的所述帧数和偏移与所述定位信息包中的信息不一致,则将所述缓存单元中对应的音视频数据流和定位信息包清空。
6.根据权利要求3所述的数据切片方法,其特征在于,所述根据所述定位信息包中的信息计算切片当前数据块标识和数据块偏移,具体通过以下算式计算:
Figure FDA0002516445170000021
chunk_offset=(offset+index*flv_header_size)%chunk_size;
其中,chunk_id、chunk_offset分别表示当前的数据块标识和数据块偏移,offset表示所述定位信息包中所携带的当前流偏移量,index表示所述定位信息包中所携带的当前帧序号,flv_header_size表示FLV封装格式的头长度,chunk_size表示切片数据块大小,
Figure FDA0002516445170000022
表示向上取整,“%”表示取余。
7.根据权利要求3所述的数据切片方法,其特征在于,所述根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片之后,还包括:
所述拉流边缘节点将切片后的数据块分片通过P2P网络分发至P2P节点。
8.一种数据切片***,其特征在于,包括:推流用户端、推流边缘节点、CDN网络节点以及拉流边缘节点;
所述推流边缘节点,用于接收到所述推流用户端推送的RTMP数据流后,在所述RTMP数据流中添加定位信息包,并将带有定位信息包的RTMP数据流发送给所述CDN网络节点;
所述CDN网络节点,用于将所述带有定位信息包的RTMP数据流分发给所述拉流边缘节点;
所述拉流边缘节点,用于解析所述定位信息包并根据解析后的定位信息对所述RTMP数据流进行切片;
所述拉流边缘节点包括:
第一判断单元,用于判断所述RTMP数据流中的数据类型;
缓存单元,用于缓存所述RTMP数据流中的音视频数据,并统计帧数和偏移;
第二判断单元,用于判断统计的所述帧数和偏移与所述定位信息包中的信息是否一致;
计算单元,用于根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移;
切片单元,用于根据当前的数据块标识和数据块偏移对所述缓存单元中的数据进行切片。
9.根据权利要求8所述的数据切片***,其特征在于,所述定位信息包的格式为AMF格式,其中所述定位信息包包括当前数据流标识、当前帧序号、当前数据流偏移量以及当前数据流时间戳。
10.根据权利要求9所述的数据切片***,其特征在于,所述拉流边缘节点还包括:
丢弃单元,用于将所述RTMP数据流中不是音视频数据也不是定位信息包的数据丢弃。
11.根据权利要求9所述的数据切片***,其特征在于,所述拉流边缘节点还包括:
清空单元,用于当统计的所述帧数和偏移与所述定位信息包中的信息不一致,将所述缓存单元中对应的音视频数据流和定位信息包清空。
12.根据权利要求9所述的***,其特征在于,所述计算单元,用于根据所述定位信息包中的信息计算当前的数据块标识和数据块偏移,具体通过以下算式计算:
Figure FDA0002516445170000041
chunk_offset=(offset+index*flv_header_size)%chunk_size;
其中,chunk_id、chunk_offset分别表示当前的数据块标识和数据块偏移,offset表示所述定位信息包中所携带的当前流偏移量,index表示所述定位信息包中所携带的当前帧序号,flv_header_size表示FLV封装格式的头长度,chunk_size表示当前数据块大小,
Figure FDA0002516445170000042
表示向上取整,“%”表示取余。
13.根据权利要求9所述的***,其特征在于,所述拉流边缘节点还包括:分发单元,用于将切片后的数据块分片通过P2P网络分发至P2P节点。
CN201810286720.7A 2018-03-30 2018-03-30 一种数据切片方法及*** Active CN108600859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810286720.7A CN108600859B (zh) 2018-03-30 2018-03-30 一种数据切片方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810286720.7A CN108600859B (zh) 2018-03-30 2018-03-30 一种数据切片方法及***

Publications (2)

Publication Number Publication Date
CN108600859A CN108600859A (zh) 2018-09-28
CN108600859B true CN108600859B (zh) 2020-10-20

Family

ID=63624186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810286720.7A Active CN108600859B (zh) 2018-03-30 2018-03-30 一种数据切片方法及***

Country Status (1)

Country Link
CN (1) CN108600859B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525578B (zh) * 2018-11-12 2020-10-13 深圳市网心科技有限公司 一种cdn分发网络传输方法、装置、***以及存储介质
CN109495505B (zh) * 2018-12-21 2021-10-08 北京金山云网络技术有限公司 流媒体协议转换方法、装置、***及计算机可读介质
CN110659296B (zh) * 2019-09-26 2021-02-12 广州方硅信息技术有限公司 存储方法、装置、设备以及计算机可读介质
CN111193936B (zh) * 2019-12-27 2021-11-12 腾讯科技(深圳)有限公司 视频流传输方法、装置、电子设备及计算机可读存储介质
CN111954014B (zh) * 2020-08-13 2022-01-28 北京金山云网络技术有限公司 一种直播推流方法、装置、存储介质及设备
CN114245153B (zh) * 2021-11-04 2023-10-24 网宿科技股份有限公司 切片方法、装置、设备及可读存储介质
CN115086714A (zh) * 2022-06-13 2022-09-20 京东科技信息技术有限公司 数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534204A (zh) * 2008-03-10 2009-09-16 ***集团宽带业务应用国家工程实验室有限公司 流媒体信息分发***和方法及客户端
CN104202616A (zh) * 2014-09-11 2014-12-10 北京阅联信息技术有限公司 一种基于裸流直播方法、回看方法及其***
CN106993054A (zh) * 2017-05-05 2017-07-28 腾讯科技(深圳)有限公司 文件分发方法、节点及***
CN107222484A (zh) * 2017-06-12 2017-09-29 北京经纬中天信息技术有限公司 支持多协议输入和输出的流媒体服务器***
CN107426629A (zh) * 2017-06-19 2017-12-01 网宿科技股份有限公司 一种流媒体文件处理方法及直播***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321265B (zh) * 2007-06-07 2011-03-16 中兴通讯股份有限公司 对等网络媒体点播跨帧播放方式的实现方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534204A (zh) * 2008-03-10 2009-09-16 ***集团宽带业务应用国家工程实验室有限公司 流媒体信息分发***和方法及客户端
CN104202616A (zh) * 2014-09-11 2014-12-10 北京阅联信息技术有限公司 一种基于裸流直播方法、回看方法及其***
CN106993054A (zh) * 2017-05-05 2017-07-28 腾讯科技(深圳)有限公司 文件分发方法、节点及***
CN107222484A (zh) * 2017-06-12 2017-09-29 北京经纬中天信息技术有限公司 支持多协议输入和输出的流媒体服务器***
CN107426629A (zh) * 2017-06-19 2017-12-01 网宿科技股份有限公司 一种流媒体文件处理方法及直播***

Also Published As

Publication number Publication date
CN108600859A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108600859B (zh) 一种数据切片方法及***
US11381625B2 (en) Apparatus and method for transmitting multimedia data in hybrid network
JP6422527B2 (ja) マルチメディアシステムにおけるデータ受信方法及び装置
US10911510B2 (en) Apparatus and method for transmitting multimedia data in a broadcast system
CN108696773B (zh) 一种实时视频的传输方法及装置
CN107147919B (zh) 直播快速启播方法及***
US20150215359A1 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US11647251B2 (en) Fast tune-in for low latency streaming
EP2424241A1 (en) Method, device and system for forwarding video data
WO2017045528A1 (zh) 组播传输方法、装置及***
US20180241675A1 (en) Method and Apparatus for Providing A Low Latency Transmission System Using Adaptive Buffering Estimation
WO2013170835A2 (zh) 直播内容分发***及方法
US20140369222A1 (en) Method for estimating network jitter in apparatus for transmitting coded media data
KR102198701B1 (ko) 멀티미디어 시스템에서 정보를 송수신하는 방법 및 장치
CN106534104B (zh) 频道录制方法及装置
WO2016072343A1 (ja) 送信装置、送信方法、受信装置および受信方法
US20220132211A1 (en) Low-latency content delivery over a public network
KR101955690B1 (ko) 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
KR101983045B1 (ko) 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
KR101855327B1 (ko) 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
CA3187668A1 (en) Methods and systems for multicast communication session management

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