CN112866763A - Hls多码率流切片的序列号生成方法、服务器及存储介质 - Google Patents
Hls多码率流切片的序列号生成方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN112866763A CN112866763A CN202011581184.7A CN202011581184A CN112866763A CN 112866763 A CN112866763 A CN 112866763A CN 202011581184 A CN202011581184 A CN 202011581184A CN 112866763 A CN112866763 A CN 112866763A
- Authority
- CN
- China
- Prior art keywords
- slice
- serial number
- title
- metadata
- stored
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008859 change Effects 0.000 claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 description 12
- 230000006872 improvement Effects 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4342—Demultiplexing isochronously with video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例涉及直播技术领域,公开了一种HLS多码率流切片的序列号生成方法、服务器及存储介质。通过对接收的HLS多码率的各子流分别进行切片,设置切片的片名和序列号,并存储片名和序列号的对应关系;首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增;若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号;若查找到对应的序列号,则将变更元数据后的首个切片的序列号设置为对应的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号,从而能够有效解决HLS切片时,生成的切片序列号出现的倒退问题,并同时保证HLS多码率流的子流间的片名和序列号保持同步。
Description
技术领域
本发明实施例涉及直播技术领域,特别涉及一种HLS多码率流切片的序列号生成方法和服务器。
背景技术
HLS(全称HTTP Live Streaming),是基于HTTP的流媒体网络传输协议。该协议支持客户端在不同的网络带宽环境下,播放不同码率、分辨率的视频。
HLS的实现是把整个多媒体文件切成一个个小的基于HTTP的资源(MPEG-2Transport Stream格式的文件,),也称“切片”,并生成一个包含切片文件uri的扩展M3U(M3U8)Playlist文件,每次只下载列表中的一些资源,客户端根据带宽环境可以选择不同的资源进行下载及播放。在HLS协议中,每个切片都有对应的序列号,并且理想情况下,序列号应该以1为步长进行增长。
在实际应用中,通常采用码流中的数据时间戳来计算切片的序列号,该方式会导致在数据时间戳溢出或倒退时,切片的序列号出现回退问题,从而使得对序列号敏感的播放器播放这些码流时就会出现播放异常。此外,通过系统时间计算切片的序列号,虽然一定程度上可以避免序列号出现回退,但是针对HLS多码率流,单纯使用系统时间去计算切片的序列号可能导致不同码率的子流间的片名和序列号出现不同步,从而有可能导致HLS播放器异常。
发明内容
本发明实施方式的目的在于提供一种HLS多码率流切片的序列号生成方法、服务器及存储介质,能够有效解决HLS切片时,生成的切片序列号出现的倒退问题,并同时保证HLS多码率流的子流间的片名和序列号保持同步。
为解决上述技术问题,本发明的实施方式提供了一种HLS多码率流切片的序列号生成方法,包括:
对接收的HLS多码率的各子流分别进行切片,为各所述子流的切片分别设置切片的片名和序列号,并存储所述切片的片名和序列号的对应关系;其中,所述切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增;
若所述子流中出现元数据变更而触发切片,则在所述对应关系中查找与变更元数据后的首个切片的片名对应的序列号;
若查找到所述对应的序列号,则将所述变更元数据后的首个切片的序列号设置为所述对应的序列号;以所述预设步长递增设置所述变更元数据后的非首个切片的序列号。
本发明的实施方式还提供了一种服务器,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的HLS多码率流切片的序列号生成方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的HLS多码率流切片的序列号生成方法。
本发明实施方式相对于现有技术而言,通过对接收的HLS多码率的各子流分别进行切片,为各子流的切片分别设置切片的片名和序列号,并存储切片的片名和序列号的对应关系;其中,切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增;若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号;若查找到对应的序列号,则将变更元数据后的首个切片的序列号设置为所述对应的序列号;以预设步长递增设置所述变更元数据后的非首个切片的序列号。通常在理想环境下,由于各子流中的数据时间戳是呈稳步递增,因此本发明在该情况下,基于数据时间戳形成的切片的片名与基于系统时间生成的切片的序列号之间可以保证一一对应关系,且各子流间切片同步;当子流中出现元数据变更而触发切片的情况,由于该情况下子流中的数据时间戳可能发生回退或跳变,继而造成生成的序列号发生回退,或各子流间切片的片名和序列号不同步,因此在该情况下,本发明会参考之间已存储的片名和序列号的对应关系来设置变更元数据后的首个切片的序列号,既当已存储的对应关系中包含当前变更元数据后的首个切片的片名,则以该片名对应的已存储的序列号设置为当前变更元数据后的首个切片的序列号,并以第二步长递增设置变更元数据后的非首个切片的序列号,从而使变更元数据后的切片的序列号尽可能延续之前的序列号随片名呈稳步递增的状态,确保切片的序列号与切片的片名一一对应,并保证各子流间切片同步。基于此,本发明可有效解决HLS切片时,生成的切片序列号出现的倒退问题,并同时保证HLS多码率流的子流间的片名和序列号保持同步。
另外,在对应关系中查找与变更元数据后的首个切片的片名对应的序列号之后,还包括:若未查找到对应的序列号,则判断变更元数据后的首个切片的片名与对应关系中的最新片名的差值;如果差值不大于第一阈值,则基于最新片名对应的序列号以及差值设置变更元数据后的首个切片的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,且在差值浮动较小时,基于最新片名的序列号设置当前首个切片的序列号,之后再以第二步长递增设置非首个切片的序列号,从而保证元数据变更前后生成的切片序列号稳步递增,多个子流之间生成的切片的序列号同步。
另外,在判断变更元数据后的首个切片的片名与对应关系中的最新片名的差值之后,还包括:如果差值大于第一阈值,则基于当前系统时间设置变更元数据后的首个切片的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,且在差值浮动较大时,基于当前系统时间设置当前首个切片的序列号,之后再以第二步长递增设置非首个切片的序列号,从而保证元数据变更后生成的切片序列号不会受到对应关系中切片的序列号的影响,且序列号稳步递增,多个子流之间生成的切片的序列号同步。
另外,在判断变更元数据后的首个切片的片名与对应关系中的最新片名的差值之后,还包括:如果在片名发生回退的情况下差值大于第二阈值,则清空本次切片前已存储的片名和序列号的对应关系,所述第一阈值小于所述第二阈值。通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,并且在片名发生回退且差值浮动特别大的情况下,通过清空之前已存储的序列号可以避免在数据时间戳可能发生重置的情况下,仍存储过去切片对应的序列号而带来的对存储资源产生的不必要浪费。
另外,上述方法还包括:若子流中出现元数据变更而触发切片,则基于子流中包含的数据时间戳确定元数据变更后首个切片的起始时间点,并从该起始时间点对子流进行切片,以对元数据变更后的切片进行对齐,保证多子流之间切片的同步。
另外,存储切片的片名和序列号的对应关系具体为:针对待存储片名不包含在对应关系中:如果待存储片名大于已存储的最新片名,或者待存储片名小于已存储的最新片名、且待存储片名与最新片名的差值不大于第三阈值时,则存储待存储片名及对应的序列号;如果待存储片名小于所述最新片名,且所述待存储片名与最新片名的差值大于第三阈值,则在清空本次切片前已存储的片名和序列号的对应关系之后,存储待存储片名及对应的序列号。通过判断待存储片名是否包含在已存储的对应关系中;并且在不包含的情况下比较待存储片名与对应关系中最新片名的大小关系,来存储切片的片名和序列号,以保证对应关系中存储的序列号不发生回退。
另外,存储切片的片名和序列号的对应关系具体为:针对待存储片名包含在对应关系中:如果待存储片名对应的序列号大于该片名已存储的序列号,则以待存储的序列号替换已存储的序列号;如果待存储片名对应的序列号不大于该片名已存储的序列号,则不执行本次的存储操作。通过判断待存储片名是否包含在已存储的对应关系中;并且在包含的情况下比较待存储序列号与已存储的序列号的大小关系,来存储切片的片名和序列号,以保证对应关系中存储的序列号不发生回退。
另外,切片的片名为切片中固定位置的数据时间戳除以单个切片的片长所得到的商值,从而保证切片的片名稳步递增。
另外,切片的序列号为接收该切片的子流时的系统时间除以单个切片的片长所得到的商值,从而保证切片的序列号稳步递增。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的HLS多码率流切片的序列号生成方法的具体流程图;
图2是根据本发明第二实施方式的HLS多码率流切片的序列号生成方法的具体流程图;
图3是根据本发明第三实施方式的HLS多码率流切片的序列号生成方法的具体流程图;
图4是根据本发明第四实施方式的HLS多码率流切片的序列号生成方法的具体流程图;
图5是根据本发明提供的片名和序列号的存储流程图;
图6是根据本发明第五实施方式的切片服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种HLS多码率流切片的序列号生成方法,该方法应用于提供切片功能的服务器,下文简称为切片服务器。如图1所示,该HLS多码率流切片的序列号生成方法具体包括:
步骤101:对接收的HLS多码率的各子流分别进行切片,为各子流的切片分别设置切片的片名和序列号,并存储所述切片的片名和序列号的对应关系;其中,所述切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增。
具体来说,在基于HLS进行多媒体直播过程中,切片服务器会接收上游服务器从直播客户端拉取并转码后形成的多个不同码率的多媒体数据子流(简称“子流”)。切片服务器针对各子流分别进行切片,每个切片的片长为固定值,且各子流产生的切片所对应的数据时间戳严格对齐。例如,以片长为a秒、各子流中的数据时间戳T作为起始点对各子流进行切片,得到切片对应的数据时间戳范围序列为[T,T+a)、[T+a,T+2a)……。
针对每个切片设置片名,该片名用于唯一标识数据时间戳范围相同的切片,该片名基于切片中包含的数据时间戳生成,且片名以第一步长递增,如以步长为1递增形成片名,各子流中首个切片的片名大小不做限定,具体基于首个切片包含的数据时间戳大小以及计算片名的方法而定。一般场景下,各子流中的数据时间戳是以固定步长稳步递增,确保了基于数据时间戳生成的片名也是以预设步长稳步递增的实现可能性。
在一具体实施方式中,切片的片名可为切片中固定位置的数据时间戳除以单个切片的片长所得到的商值,从而保证切片的片名稳步递增。
针对每个切片设置序列号,其中对于各子流的首个切片,该首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增。如以步长为1递增形成序列号,各子流中首个切片的序列号大小不做限定,具体基于设置首个切片的序列号对应的系统时间大小以及计算序列号的方法而定。
在一具体实施方式中,切片的序列号可为接收该切片的子流时的系统时间除以单个切片的片长所得到的商值,从而保证切片的序列号稳步递增。
将为当前新产生的切片所设置的片名和序列号进行存储,以方便后续查询。
步骤102:若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号。
具体来说,切片服务器所接收的HLS多码率的各子流中会包含元数据。在一般场景下,该元数据仅会出现在各子流的最前端,用于对各子流中的多媒体流数据进行描述,包括如:音(视)频编码、视频分辨率、帧率、视频码率等信息。当形成多码流的场景变得复杂,如上游服务器获取原始多媒体流的网络环境不稳定、直播用户上传的媒体流中数据时间戳溢出或倒退时,子流中就会出现元数据变更的情况,即切片服务器会在一路子流或者多路子流中接收到变更的元数据,该变更的元数据用于对其后传输的相应子流的多媒体流数据进行描述。
当某路子流中出现变更的元数据,则基本表征后续接收的子流中的多媒体流数据可能会出现数据时间戳溢出、倒退或跳变等问题,使得基于数据时间戳计算得到的片名也可能出现回退或跳变,从而使对应生成的切片的序列号也存在回退或者多子流间不同步的问题。基于此,本实施例以子流中是否出现元数据变更作为判断条件,若子流中出现元数据变更而触发切片,则在已存储的片名和序列号的对应关系中查找与变更元数据后的首个切片的片名对应的序列号,以基于查找结果确定如何对变更元数据后的切片设置序列号。
步骤103:若查找到对应的序列号,则将变更元数据后的首个切片的序列号设置为对应的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
具体来说,如果在已存储的片名和序列号的对应关系中查找到与变更元数据后的首个切片的片名对应的序列号,则参考已存储的对应关系,将变更元数据后的首个切片的序列号设置为查找到的序列号;然后,以第二步长递增设置变更元数据后的非首个切片的序列号。
例如,计算得到变更元数据后的首个切片的片名为m1,查找已存储的对应关系中该片名m1对应的序列号为n1,则将n1设置为当前变更元数据后的首个切片的序列号;然后以预设步长递增设置变更元数据后的非首个切片的序列号。
与现有技术相比,本发明实施方式通过对接收的HLS多码率的各子流分别进行切片,为各子流的切片分别设置切片的片名和序列号,并存储切片的片名和序列号的对应关系;其中,切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增;若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号;若查找到对应的序列号,则将变更元数据后的首个切片的序列号设置为所述对应的序列号;以预设步长递增设置所述变更元数据后的非首个切片的序列号。通常在理想环境下,由于各子流中的数据时间戳是呈稳步递增,因此本发明在该情况下,基于数据时间戳形成的切片的片名与基于系统时间生成的切片的序列号之间可以保证一一对应关系,且各子流间切片同步;当子流中出现元数据变更而触发切片的情况,由于该情况下子流中的数据时间戳可能发生回退或跳变,继而造成生成的序列号发生回退,或各子流间切片的片名和序列号不同步,因此在该情况下,本发明会参考之前已存储的片名和序列号的对应关系来设置变更元数据后的首个切片的序列号,既当已存储的对应关系中包含当前变更元数据后的首个切片的片名,则以该片名对应的已存储的序列号设置为当前变更元数据后的首个切片的序列号,并以第二步长递增设置变更元数据后的非首个切片的序列号,从而使变更元数据后的切片的序列号尽可能延续之前的序列号随片名呈稳步递增的状态,确保切片的序列号与切片的片名一一对应,并保证各子流间切片同步。基于此,本发明可有效解决HLS切片时,生成的切片序列号出现的倒退问题,并同时保证HLS多码率流的子流间的片名和序列号保持同步。
本发明的第二实施方式涉及一种HLS多码率流切片的序列号生成方法。第二实施方式是在第一实施方式基础上做的改进,其改进之处在于:
在对应关系中查找与变更元数据后的首个切片的片名对应的序列号之后,还包括:若未查找到对应的序列号,则判断变更元数据后的首个切片的片名与所述对应关系中的最新片名的差值;如果差值不大于第一阈值,则基于最新片名对应的序列号以及差值设置所述变更元数据后的首个切片的序列号;以第二步长递增设置所述变更元数据后的非首个切片的序列号。通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,且在差值浮动较小时,基于最新片名的序列号设置当前首个切片的序列号,之后再以第二步长递增设置非首个切片的序列号,从而保证元数据变更前后生成的切片序列号稳步递增,多个子流之间生成的切片的序列号同步。
具体流程图如图2所示。
步骤201:对接收的HLS多码率的各子流分别进行切片,为各子流的切片分别设置切片的片名和序列号,并存储所述切片的片名和序列号的对应关系;其中,所述切片的片名基于切片中包含的数据时间戳生成,且以预设步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以预设步长递增。
步骤202:若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号。如果查找到与变更元数据后的首个切片的片名对应的序列号,则执行步骤203,否则执行步骤204。
步骤203:将变更元数据后的首个切片的序列号设置为对应的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
其中,步骤201~203与前述步骤101~103的内容对应相同,在此不做赘述。
步骤204:判断变更元数据后的首个切片的片名与对应关系中的最新片名的差值。
其中,对应关系中的最新片名为距离当前时间最近一次存储的片名。
步骤205:如果差值不大于第一阈值,则基于最新片名对应的序列号以及差值设置变更元数据后的首个切片的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
其中,该第一阈值可以视为是衡量是否依据最新片名的序列号继续设置后续切片序列号的参考容限制。可以理解的,上述差值越小,对应的变更元数据后的首个切片的片名与最新片名越接近,参考最新片名的序列号设置变更元数据后的首个切片的序列号的公信力越强。
在实际应用中,可将该第一阈值设置在很小范围,比如设置为片名的一个步长。例如,当变更元数据后的首个切片的片名与最新片名的差值不大于一个片名步长时,基于最新片名对应的序列号以及差值设置变更元数据后的首个切片的序列号,如根据变更元数据后的首个切片的片名与最新片名的大小关系,适应性对最新片名对应的序列号进行等比例的序列号步长的加减处理,并将得到的序列号作为变更元数据后的首个切片的序列号,然后以预设步长递增设置变更元数据后的非首个切片的序列号。
与现有技术相比,本发明实施方式通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,且在差值浮动较小时,基于最新片名的序列号设置当前首个切片的序列号,之后再以预设步长递增设置非首个切片的序列号,从而保证元数据变更前后生成的切片序列号稳步递增,多个子流之间生成的切片的序列号同步。
本发明的第三实施方式涉及一种HLS多码率流切片的序列号生成方法。第三实施方式是在第二实施方式基础上做的改进,其改进之处在于:
在判断变更元数据后的首个切片的片名与对应关系中的最新片名的差值之后,还包括:如果差值大于第一阈值,则基于当前系统时间设置变更元数据后的首个切片的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,且在差值浮动较大时,基于当前系统时间设置当前首个切片的序列号,之后再以第二步长递增设置非首个切片的序列号,从而保证元数据变更后生成的切片序列号不会受到对应关系中切片的序列号的影响,且序列号稳步递增,多个子流之间生成的切片的序列号同步。
进一步地,如果在片名发生回退的情况下差值大于第二阈值,则清空本次切片前已存储的片名和序列号的对应关系,所述第一阈值小于所述第二阈值。通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,并且在片名发生回退且差值浮动特别大的情况下,通过清空之前已存储的序列号可以避免在数据时间戳可能发生重置的情况下,仍存储过去切片对应的序列号而带来的对存储资源产生的不必要浪费。
具体流程图如图3所示。
步骤301:对接收的HLS多码率的各子流分别进行切片,为各子流的切片分别设置切片的片名和序列号,并存储所述切片的片名和序列号的对应关系;其中,所述切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增。
步骤302:若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号。如果查找到与变更元数据后的首个切片的片名对应的序列号,则执行步骤303,否则执行步骤304。
步骤303:将变更元数据后的首个切片的序列号设置为对应的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
步骤304:判断变更元数据后的首个切片的片名与对应关系中的最新片名的差值是否大于第一阈值。如果是,则执行步骤306,否则执行步骤305。
步骤305:基于最新片名对应的序列号以及差值设置变更元数据后的首个切片的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
其中,步骤301~305与前述步骤201~205的内容对应相同,在此不做赘述。
步骤306:基于当前系统时间设置变更元数据后的首个切片的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
在步骤306之后,可继续判断在片名发生回退的情况下差值是否大于第二阈值,如果是则执行步骤307,否则结束操作。其中,第一阈值小于第二阈值。
步骤307:清空本次切片前已存储的片名和序列号的对应关系。
具体来说,差值大于第一阈值的情况分为两种,即变更元数据后的首个切片的片名大于或者小于最新片名。其中,“大于”的情况对应为片名发生跳变;“小于”的情况对应为片名发生回退。无论是片名跳变还是回退,在设置变更元数据后的非首个切片的序列号时,均采用基于当前系统时间生成相应序列号;然后以第二步长递增设置变更元数据后的非首个切片的序列号。
并且,本实施例中针对回退的情况又细分为两种情况。第一种情况,为在片名发生回退的情况下差值不大于第二阈值。该第二阈值可以视为是否对截至当前已存储的片名和序列号清空的最小容限制。当差值不大于该第二阈值时,可认为后续接收的子流中的数据时间戳并没有发生溢出重置,此时已存储的片名和序列号仍具备设置后续切片序列号的参考价值,可不予清空;反之,则认为已存储的片名和序列号不具备设置后续切片序列号的参考价值,应予以清空。针对后一种情况,即在片名发生回退的情况下且差值大于第二阈值时,可以执行步骤S307。
与现有技术相比,本发明实施方式通过比较变更元数据后的首个切片的片名与对应关系中最新片名的差值,且在差值浮动较大时,基于当前系统时间设置当前首个切片的序列号,之后再以第二步长递增设置非首个切片的序列号,从而保证元数据变更后生成的切片序列号不会受到对应关系中切片的序列号的影响,且序列号稳步递增,多个子流之间生成的切片的序列号同步。
进一步地,在片名发生回退的情况下差值大于第二阈值时,通过清空之前已存储的序列号可以避免在数据时间戳可能发生重置的情况下,仍存储过去切片对应的序列号而带来的对存储资源产生的不必要浪费。
本发明的第四实施方式涉及一种HLS多码率流切片的序列号生成方法。第四实施方式是在第一实施方式基础上做的改进,其改进之处在于:
若子流中出现元数据变更而触发切片,则基于子流中包含的数据时间戳确定元数据变更后首个切片的起始时间点,并从该起始时间点对子流进行切片,以对元数据变更后的切片进行对齐,保证多子流之间切片的同步。
具体流程图如图4所示。
步骤401:对接收的HLS多码率的各子流分别进行切片,为各子流的切片分别设置切片的片名和序列号,并存储所述切片的片名和序列号的对应关系;其中,所述切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增。
步骤402:若子流中出现元数据变更而触发切片,则在对应关系中查找与变更元数据后的首个切片的片名对应的序列号。
步骤403:若查找到对应的序列号,则将变更元数据后的首个切片的序列号设置为对应的序列号;以第二步长递增设置变更元数据后的非首个切片的序列号。
其中,步骤401~403与前述步骤101~103的内容对应相同,在此不做赘述。
在步骤401与402之间还包括步骤404。
步骤404:若子流中出现元数据变更而触发切片,则基于子流中包含的数据时间戳确定元数据变更后首个切片的起始时间点,并从该起始时间点对子流进行切片。
具体来说,当子流中出现元数据变更后,后续接收到的子流中的数据时间戳较之前的子流中的数据时间戳在时间连贯性上可能发生跳变或者回退。如在重新回源时,上游服务器会因为快速启动策略发送较多的旧数据,出现数据时间戳回退。不管是跳变或者回退,都需要重新确定切片的边界位置,核心操作是对变更元数据后的首个切片的起始时间点进行对齐,从而确保后续各子流间切片的切割位置对齐,使切片同步。此外,当出现上游服务器因为快速启动策略发送较多的旧数据而产生数据时间戳回退时,还需要按照数据时间戳进行数据去重处理,保证各子流中多媒体数据的有效性。
与现有技术相比,本发明实施方式基于子流中包含的数据时间戳确定元数据变更后首个切片的起始时间点,并从该起始时间点对子流进行切片,以对元数据变更后的切片进行对齐,保证多子流之间切片的同步。
在本发明以上各实施方式中,还可以通过如图5所示的片名和序列号的存储流程执行存储切片的片名和序列号的对应关系的处理。如图5所示,该片名和序列号的存储流程包括如下步骤:
S501,判断待存储片名是否包含在已存储的对应关系中;如果否,则执行步骤502~503,如果是,则执行步骤504~505。
S502,如果待存储片名大于已存储的最新片名,或者待存储片名小于已存储的最新片名、且待存储片名与最新片名的差值不大于第三阈值时,则存储待存储片名及对应的序列号;
S503,如果待存储片名小于最新片名,且待存储片名与最新片名的差值大于第三阈值,则在清空本次切片前已存储的片名和序列号的对应关系之后,存储待存储片名及对应的序列号。
具体地,当待存储片名不包含在对应关系中时:如果待存储片名大于已存储的最新片名,即片名发生跳变,或者待存储片名小于已存储的最新片名、且待存储片名与最新片名的差值不大于第三阈值,即片名发生有限范围下的回退时,则认为各子流中的数据时间戳并没有发生重置,之前已存储的片名和序列号仍具有设置后续切片的序列号的参考价值,因此可以仅执行存储待存储片名及对应的序列号的操作;当待存储片名小于最新片名,且待存储片名与最新片名的差值大于第三阈值,则认为各子流中的数据时间戳已经发生重置,之前已存储的片名和序列号不具有设置后续切片的序列号的参考价值,因此在执行清空本次切片前已存储的片名和序列号的对应关系之后,再存储待存储片名及对应的序列号,从而维持已存储的切片序列号对后续设置新生成的切片的序列号具有参考价值的属性。
针对待存储片名包含在对应关系中:
S504,如果待存储片名对应的序列号大于该片名已存储的序列号,则以待存储的序列号替换已存储的序列号;
S505,如果待存储片名对应的序列号不大于该片名已存储的序列号,则不执行本次的存储操作。
具体地,当待存储片名包含在对应关系中时,如果待存储片名对应的序列号大于该片名已存储的序列号,为了确保片名与序列号的对应关系,同时避免序列号回退,可以待存储的序列号替换已存储的序列号,使已存储的序列号对后续切片设置序列号时具备参考价值;如果待存储片名对应的序列号不大于该片名已存储的序列号,则不执行本次的存储操作,避免后续参考该序列号时出现序列号回退。
此外,在存储片名和序列号的对应关系时,可以设置存储的数据长度,如存储最近20个新产生的切片的片名和序列号,从而节省存储资源,提高查找数据的效率。
与现有技术相比,通过判断待存储片名是否包含在已存储的对应关系中;并且在不包含的情况下比较待存储片名与对应关系中最新片名的大小关系,在包含的情况下比较待存储序列号与已存储的序列号的大小关系,来分情况存储切片的片名和序列号,以保证对应关系中存储的序列号不发生回退。
本发明第五实施方式涉及一种切片服务器,如图6所示,包括至少一个处理器602;以及,与至少一个处理器602通信连接的存储器;其中,存储器601存储有可被至少一个处理器602执行的指令,指令被至少一个处理器602执行,以使至少一个处理器602能够执行上述任一方法实施例。
其中,存储器601和处理器602采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器602和存储器601的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器602处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器602。
处理器602负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器601可以被用于存储处理器602在执行操作时所使用的数据。
本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述任一方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (11)
1.一种HLS多码率流切片的序列号生成方法,其特征在于,包括:
对接收的HLS多码率的各子流分别进行切片,为各所述子流的切片分别设置切片的片名和序列号,并存储所述切片的片名和序列号的对应关系;其中,所述切片的片名基于切片中包含的数据时间戳生成,且以第一步长递增,首个切片的序列号基于当前系统时间生成,非首个切片的序列号以第二步长递增;
若所述子流中出现元数据变更而触发切片,则在所述对应关系中查找与变更元数据后的首个切片的片名对应的序列号;
若查找到所述对应的序列号,则将所述变更元数据后的首个切片的序列号设置为所述对应的序列号;以所述第二步长递增设置所述变更元数据后的非首个切片的序列号。
2.根据权利要求1所述的方法,其特征在于,所述在所述对应关系中查找与变更元数据后的首个切片的片名对应的序列号之后,还包括:
若未查找到所述对应的序列号,则判断所述变更元数据后的首个切片的片名与所述对应关系中的最新片名的差值;
如果所述差值不大于第一阈值,则基于所述最新片名对应的序列号以及所述差值设置所述变更元数据后的首个切片的序列号;以所述第二步长递增设置所述变更元数据后的非首个切片的序列号。
3.根据权利要求2所述的方法,其特征在于,所述判断所述变更元数据后的首个切片的片名与所述对应关系中的最新片名的差值之后,还包括:
如果所述差值大于所述第一阈值,则基于当前系统时间设置所述变更元数据后的首个切片的序列号;以所述第二步长递增设置所述变更元数据后的非首个切片的序列号。
4.根据权利要求3所述的方法,其特征在于,所述判断所述变更元数据后的首个切片的片名与所述对应关系中的最新片名的差值之后,还包括:
如果在片名发生回退的情况下所述差值大于第二阈值,则清空本次切片前已存储的片名和序列号的对应关系,所述第一阈值小于所述第二阈值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述子流中出现元数据变更而触发切片,则基于所述子流中包含的数据时间戳确定所述元数据变更后首个切片的起始时间点,并从该起始时间点对所述子流进行切片。
6.根据权利要求1所述的方法,其特征在于,所述存储所述切片的片名和序列号的对应关系,包括:
针对待存储片名不包含在所述对应关系中:
如果所述待存储片名大于已存储的最新片名,或者所述待存储片名小于所述最新片名、且所述待存储片名与所述最新片名的差值不大于第三阈值时,则存储所述待存储片名及对应的序列号;
如果所述待存储片名小于所述最新片名,且所述待存储片名与所述最新片名的差值大于所述第三阈值,则在清空本次切片前已存储的片名和序列号的对应关系之后,存储所述待存储片名及对应的序列号。
7.根据权利要求1所述的方法,其特征在于,所述存储所述切片的片名和序列号的对应关系,包括:
针对所述待存储片名包含在所述对应关系中:
如果所述待存储片名对应的序列号大于该片名已存储的序列号,则以待存储的序列号替换已存储的序列号;
如果所述待存储片名对应的序列号不大于该片名已存储的序列号,则不执行本次的存储操作。
8.根据权利要求1所述的方法,其特征在于,所述切片的片名为切片中固定位置的数据时间戳除以单个切片的片长所得到的商值。
9.根据权利要求1所述的方法,其特征在于,所述切片的序列号为接收该切片的子流时的系统时间除以单个切片的片长所得到的商值。
10.一种服务器,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至9中任一项所述的HLS多码率流切片的序列号生成方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的HLS多码率流切片的序列号生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581184.7A CN112866763B (zh) | 2020-12-28 | 2020-12-28 | Hls多码率流切片的序列号生成方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581184.7A CN112866763B (zh) | 2020-12-28 | 2020-12-28 | Hls多码率流切片的序列号生成方法、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866763A true CN112866763A (zh) | 2021-05-28 |
CN112866763B CN112866763B (zh) | 2023-05-26 |
Family
ID=75997721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011581184.7A Active CN112866763B (zh) | 2020-12-28 | 2020-12-28 | Hls多码率流切片的序列号生成方法、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112866763B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685264A (zh) * | 2013-12-06 | 2014-03-26 | 乐视致新电子科技(天津)有限公司 | 轮播媒体分片的方法、客户端及系统 |
US8752085B1 (en) * | 2012-02-14 | 2014-06-10 | Verizon Patent And Licensing Inc. | Advertisement insertion into media content for streaming |
WO2017035783A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳好视网络科技有限公司 | 流媒体的传输、播放方法及传输、播放装置 |
CN107147919A (zh) * | 2017-06-19 | 2017-09-08 | 网宿科技股份有限公司 | 直播快速启播方法及系统 |
WO2018098684A1 (zh) * | 2016-11-30 | 2018-06-07 | 华为技术有限公司 | 一种无源光网络的通信方法、及设备 |
CN108923984A (zh) * | 2018-07-16 | 2018-11-30 | 西安电子科技大学 | 基于卷积网络的时空视频压缩感知方法 |
CN109451092A (zh) * | 2018-12-07 | 2019-03-08 | 玲珑视界科技(北京)有限公司 | 一种基于ip段的cdn泛域名定方法及系统 |
CN110830821A (zh) * | 2018-08-14 | 2020-02-21 | 海能达通信股份有限公司 | 基于切片的rtp流传输方法、装置、终端及服务器 |
WO2020063169A1 (zh) * | 2018-09-30 | 2020-04-02 | Oppo广东移动通信有限公司 | 数据处理方法及装置、电子设备及存储介质 |
CN111522784A (zh) * | 2020-04-20 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种非结构化数据文件的元数据同步方法、装置及设备 |
CN111914020A (zh) * | 2020-06-18 | 2020-11-10 | 北京旷视科技有限公司 | 数据同步方法及装置、数据查询方法及装置 |
-
2020
- 2020-12-28 CN CN202011581184.7A patent/CN112866763B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8752085B1 (en) * | 2012-02-14 | 2014-06-10 | Verizon Patent And Licensing Inc. | Advertisement insertion into media content for streaming |
CN103685264A (zh) * | 2013-12-06 | 2014-03-26 | 乐视致新电子科技(天津)有限公司 | 轮播媒体分片的方法、客户端及系统 |
WO2017035783A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳好视网络科技有限公司 | 流媒体的传输、播放方法及传输、播放装置 |
WO2018098684A1 (zh) * | 2016-11-30 | 2018-06-07 | 华为技术有限公司 | 一种无源光网络的通信方法、及设备 |
CN107147919A (zh) * | 2017-06-19 | 2017-09-08 | 网宿科技股份有限公司 | 直播快速启播方法及系统 |
CN108923984A (zh) * | 2018-07-16 | 2018-11-30 | 西安电子科技大学 | 基于卷积网络的时空视频压缩感知方法 |
CN110830821A (zh) * | 2018-08-14 | 2020-02-21 | 海能达通信股份有限公司 | 基于切片的rtp流传输方法、装置、终端及服务器 |
WO2020063169A1 (zh) * | 2018-09-30 | 2020-04-02 | Oppo广东移动通信有限公司 | 数据处理方法及装置、电子设备及存储介质 |
CN109451092A (zh) * | 2018-12-07 | 2019-03-08 | 玲珑视界科技(北京)有限公司 | 一种基于ip段的cdn泛域名定方法及系统 |
CN111522784A (zh) * | 2020-04-20 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种非结构化数据文件的元数据同步方法、装置及设备 |
CN111914020A (zh) * | 2020-06-18 | 2020-11-10 | 北京旷视科技有限公司 | 数据同步方法及装置、数据查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
楚成彪等: "基于IEC 61970/61968的配电网通信系统信息建模", 《电力工程技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112866763B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106572358B (zh) | 一种直播时移方法及客户端 | |
CN107968790B (zh) | 自适应流创建和输送中的虚拟化 | |
US8683337B2 (en) | Seamless playback of composite media | |
US12052462B2 (en) | Fast tune-in for low latency streaming | |
US10623823B2 (en) | Method, system, and website server for playing website video | |
CN101795297B (zh) | 基于p2p技术的直播时移系统及其方法 | |
CN103581693B (zh) | 面向互联网的基于分片传输的大尺度直播时移方法及系统 | |
US10820066B2 (en) | Reconciling ABR segments across redundant sites | |
KR20210022134A (ko) | 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용 | |
EP3262523B1 (en) | System and method for frame duplication and frame extension in live video encoding and streaming | |
CN105075273A (zh) | 自适应流式传输技术 | |
CN107810625B (zh) | 通过客户端从服务器流传输媒体序列的方法和装置 | |
CN104125516A (zh) | 媒体文件接收、媒体文件发送方法和装置及系统 | |
CN111246314B (zh) | 时移直播方法、服务端装置、客户端装置及直播系统 | |
CA3073873A1 (en) | Method for creation and distribution of segmented video over distributed multicast-aware sparse networks with low latency | |
CN115119009A (zh) | 视频对齐方法、视频编码方法、装置及存储介质 | |
CN110072123B (zh) | 一种视频的恢复播放方法、视频播放终端及服务器 | |
CN112866763A (zh) | Hls多码率流切片的序列号生成方法、服务器及存储介质 | |
CN114417055A (zh) | 一种视频播放方法、装置、计算机设备和存储介质 | |
KR20220122973A (ko) | 전달된 콘텐츠 스트림에 기초하여 콘텐츠 스트림을 제공하는 기술 | |
CN112911315A (zh) | 一种流媒体直播录制方法、网络设备及存储介质 | |
CN111711826B (zh) | 视频直播服务系统及方法 | |
EP2624523B1 (en) | System and method for data stream fragmentation with scalability | |
US20230328334A1 (en) | Adaptive bit rate streaming | |
CN116527981A (zh) | 一种多路视频同步方法、系统、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |