CN112866730A - 流媒体数据传输方法及装置、系统、电子设备、存储介质 - Google Patents
流媒体数据传输方法及装置、系统、电子设备、存储介质 Download PDFInfo
- Publication number
- CN112866730A CN112866730A CN202011628449.4A CN202011628449A CN112866730A CN 112866730 A CN112866730 A CN 112866730A CN 202011628449 A CN202011628449 A CN 202011628449A CN 112866730 A CN112866730 A CN 112866730A
- Authority
- CN
- China
- Prior art keywords
- data
- media data
- slice
- data block
- index file
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000004044 response Effects 0.000 claims abstract description 36
- 230000009191 jumping Effects 0.000 claims description 26
- 238000005520 cutting process Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 31
- 238000009482 thermal adhesion granulation Methods 0.000 description 10
- 102100024342 Contactin-2 Human genes 0.000 description 8
- 101000690440 Solanum lycopersicum Floral homeotic protein AGAMOUS Proteins 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 235000019580 granularity Nutrition 0.000 description 5
- 101100368725 Bacillus subtilis (strain 168) tagF gene Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 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/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/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
- H04N21/234309—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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- 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
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- 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
- H04N21/8456—Structuring 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)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供了一种流媒体数据传输方法及装置、系统、电子设备、存储介质,涉及计算机技术领域。该流媒体数据传输方法包括:将原始媒体数据转封装为流媒体数据;响应于检测到流媒体数据的播放模式为点播模式,将流媒体数据切分为第一切片数据块,并确定第一切片数据块对应的第一索引文件;响应于检测到流媒体数据的播放模式为直播模式,将流媒体数据切分为第二切片数据块,并确定第二切片数据块对应的第二索引文件;将第一索引文件或第二索引文件推送到客户端,客户端通过第一索引文件或第二索引文件下载第一切片数据块或第二切片数据块,以实现原始媒体数据的播放。本公开实施例的技术方案可以提高原始媒体数据的点播或直播的播放效率。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种流媒体数据传输方法、流媒体数据传输装置、流媒体数据传输系统、电子设备以及计算机可读存储介质。
背景技术
随着互联网的飞速发展,媒体数据播放的形式由单纯的直播模式,逐渐发展出可以根据用户需求对媒体数据进行跳转播放的点播模式;然而,直播模式或点播模式,都需要通过较低的延时即可实现对媒体数据的播放。因此,研究一种具有低延时的流媒体数据传输方法具有重要的现实意义。
然而,由于根据目前的媒体数据对应的直播网络协议,在客户端播放媒体数据具有较大的延时,且通过对等网络实现用户之间的媒体数据共享的代价较大,无法实现多个客户端之间媒体数据流的即时共享。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种流媒体数据传输方法、流媒体数据传输装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服媒体数据播放的高延时以及高成本的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种流媒体数据传输方法,应用于服务端,包括:获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或所述第二索引文件下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
在本公开的一些示例实施例中,基于前述方案,所述响应于检测到所述流媒体数据为点播模式,将所述流媒体数据切分为第一切片数据块,包括:确定所述流媒体数据对应的媒体数据流单元;获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,并确定与所述切片时长对应的多个媒体数据流单元的第一时间戳差值;检测到所述第一时间戳差值大于或等于所述切片时长,基于所述第一时间戳差值对应的所述媒体数据流单元生成第一切片数据块。
在本公开的一些示例实施例中,基于前述方案,在所述基于所述第一时间戳差值对应的媒体数据流单元生成第一切片数据块之后,所述方法还包括:实时获取所述第一切片数据块对应的时间戳,基于所述时间戳确定所述第一切片数据块的标识数据;确定所述流媒体数据对应的第一起始切片数据块和第一终止切片数据块;确定所述第一起始切片数据块对应的第一起始标识数据和所述第一终止切片数据块对应的第一终止标识数据;根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件。
在本公开的一些示例实施例中,基于前述方案,所述根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件,还包括:确定所述第一切片数据块中包含关键帧的第一媒体数据流单元以及包含所述第一媒体数据流单元的第一切片数据块的第一标识数据;获取所述第一媒体数据流单元在所述第一切片数据块中的第一位置信息,以及所述第一媒体数据流单元的第一相对时间戳;基于所述第一标识数据、所述第一位置信息和所述第一相对时间戳生成关键帧索引数据表,并将所述关键帧索引数据表保存到所述第一起始切片数据块的第一属性数据单元中,以使所述客户端根据所述第一属性数据单元对所述原始媒体数据进行跳转播放。
在本公开的一些示例实施例中,基于前述方案,响应于检测到所述流媒体数据为直播模式,将所述流媒体数据切分为多个第二切片数据块,包括:确定所述流媒体数据对应的媒体数据流单元;获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,确定所述切片时长对应的所述媒体数据流单元的第二时间戳差值;检测到所述第二时间戳差值大于或等于所述切片时长,基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块;获取预设的所述模板切片数据块对应的媒体数据流单元的数量,并根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块。
在本公开的一些示例实施例中,基于前述方案,在所述基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块之后,所述方法还包括:确定所述模板切片数据块对应的第二起始切片数据块;获取所述第二起始切片数据块的时间戳信息,基于所述时间戳信息,对所述第二起始切片数据块进行命名处理以确定所述第二起始切片数据块的第二起始标识数据;获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据;在检测到所述流媒体数据切割完成时,确定所述模板切片数据块对应的第二终止切片数据块和所述第二终止切片数据块对应的第二终止标识数据,所述流媒体数据切割未完成时,所述第二终止标识数据始终为零。
在本公开的一些示例实施例中,基于前述方案,在所述获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据之后,所述方法还包括:根据所述第二起始标识数据、所述第二终止标识数据、所述第二时间戳差值、所述媒体数据流单元的数量,构建所述第二索引文件。
在本公开的一些示例实施例中,基于前述方案,在所述根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块,还包括:基于所述媒体数据流单元的数量对所述第二切片数据块进行排序以确定所述第二切片数据块的第二位置信息;基于所述初始标识数据和所述第二位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据。
在本公开的一些示例实施例中,基于前述方案,在所述基于所述初始标识数据和所述位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据之后,所述方法还包括:通过所述位置信息相同的第二切片数据块构建所述第二切片数据流以使客户端基于对等网络根据所述第二切片数据流实现所述原始媒体数据的共享。
在本公开的一些示例实施例中,基于前述方案,在所述基于所述初始标识数据和所述位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据之后,所述方法还包括:遍历所述第二切片数据块,确定所述第二切片数据块中包含关键帧的第二媒体数据流单元;获取所述第二媒体数据流单元对应的所述目标标识数据;以及获取所述流媒体数据对应的第二属性数据单元,将所述目标标识数据作为所述第二媒体数据流单元的索引标识数据以基于所述第二属性数据单元,通过所述索引标识数据实现所述第二切片数据块的加载;所述第二属性数据单元包括元数据标签数据单元、音频编码数据单元和视频编码数据单元。
根据本公开实施例的第二方面,提供了一种流媒体数据传输方法,应用于客户端,包括:响应检测到播放原始媒体数据的指令时,从服务器获取所述原始媒体数据对应的索引文件;其中所述索引文件包括第一索引文件或第二索引文件;如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块以点播模式式播放所述原始媒体数据;如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据。
在本公开的一些示例实施例中,基于前述方案,如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块通过点播模式播放所述原始媒体数据,包括:响应于检测到所述第一切片数据块为第一起始切片数据块,获取所述第一起始切片数据块中的第一属性数据单元;获取所述第一属性数据单元中的关键帧索引数据表;根据所述关键帧索引数据表下载所述第一切片数据块以实现所述原始媒体数据的跳转播放。
在本公开的一些示例实施例中,基于前述方案,所述根据所述关键帧索引数据表下载所述第一切片数据块以实现所述原始媒体数据的跳转播放,包括:响应于对时间进度条的跳转操作,确定跳转时间点;根据所述跳转时间点在所述关键帧索引数据表中匹配得到与所述跳转时间点对应的目标时间点,并确定所述目标时间点对应的第一媒体数据流单元;根据所述第一媒体数据流单元中包含的第一标识数据、位置信息和第一相对时间戳,确定所述目标时间点对应的所述第一切片数据块的标识数据;基于所述第一标识数据更新所述第一起始标识数据得到更新后的第一起始标识数据,并根据所述更新后的第一起始标识数据更新所述第一索引文件得到更新后的第一索引文件,以根据所述更新后的第一索引文件下载所述第一切片数据块用于实现所述原始媒体数据的跳转播放。
在本公开的一些示例实施例中,基于前述方案,所述如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据,还包括:获取预设的超时时长阈值和所述第二切片数据块对应的第二起始标识数据;确定所述第二切片数据块的下载时长;响应于检测到所述下载时长超过所述超时时长阈值,确定所述第二切片数据块对应的目标标识数据,并根据所述目标标识数据更新所述第二起始标识数据;基于更新后的所述第二起始标识数据,更新所述第二索引文件以根据更新后的所述第二索引文件,重新下载所述第二切片数据块。
根据本公开实施例的第三方面,提供了一种流媒体数据传输装置,应用于服务端,包括:原始媒体数据转封装模块,用于获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;第一索引文件确定模块,用于响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;第二索引文件确定模块,用于响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;推送模块,用于将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或所述第二索引文件下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
在本公开的一些示例实施例中,基于前述方案,所述第一索引文件确定模块还包括第一切片数据块生成单元,所述第一切片数据块生成单元用于确定所述流媒体数据对应的媒体数据流单元,获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,并确定与所述切片时长对应的多个媒体数据流单元的第一时间戳差值,检测到所述第一时间戳差值大于或等于所述切片时长,基于所述第一时间戳差值对应的所述媒体数据流单元生成第一切片数据块。
在本公开的一些示例实施例中,基于前述方案,所述第一索引文件确定模块还包括第一索引文件生成单元,所述第一索引文件生成单元用于实时获取所述第一切片数据块对应的时间戳,基于所述时间戳确定所述第一切片数据块的标识数据;确定所述流媒体数据对应的第一起始切片数据块和第一终止切片数据块;确定所述第一起始切片数据块对应的第一起始标识数据和所述第一终止切片数据块对应的第一终止标识数据;根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置还包括关键帧索引数据表生成单元,所述关键帧索引数据表生成单元用于确定所述第一切片数据块中包含关键帧的第一媒体数据流单元以及包含所述第一媒体数据流单元的第一切片数据块的第一标识数据;获取所述第一媒体数据流单元在所述第一切片数据块中的第一位置信息,以及所述第一媒体数据流单元的第一相对时间戳;基于所述第一标识数据、所述第一位置信息和所述第一相对时间戳生成关键帧索引数据表,并将所述关键帧索引数据表保存到所述第一起始切片数据块的第一属性数据单元中,以使所述客户端根据所述第一属性数据单元对所述原始媒体数据进行跳转播放。
在本公开的一些示例实施例中,基于前述方案,第二索引文件确定模块还包括第二切片数据块生成单元,所述第二切片数据块生成单元用于确定所述流媒体数据对应的媒体数据流单元;获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,确定所述切片时长对应的所述媒体数据流单元的第二时间戳差值;检测到所述第二时间戳差值大于或等于所述切片时长,基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块;获取预设的所述模板切片数据块中对应的媒体数据流单元的数量,并根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置还包括模板切片数据块命名单元,所述模板切片数据块命名单元用于确定所述模板切片数据块对应的第二起始切片数据块;获取所述第二起始切片数据块的时间戳信息,基于所述时间戳信息,对所述第二起始切片数据块进行命名处理以确定所述第二起始切片数据块的第二起始标识数据;获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据;在检测到所述流媒体数据切割完成时,确定所述模板切片数据块对应的第二终止切片数据块和所述第二终止切片数据块对应的第二终止标识数据,所述流媒体数据切割未完成时,所述第二终止标识数据始终为零。
在本公开的一些示例实施例中,基于前述方案,所述第二索引文件确定模块还包括第二索引文件构建单元,所述第二索引文件构建单元用于根据所述第二起始标识数据、所述第二终止标识数据、所述第二时间戳差值、所述媒体数据流单元的数量,构建所述第二索引文件。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置还包括第二切片数据块命名单元,所述第二切片数据块命名单元用于基于所述媒体数据流单元的数量对所述第二切片数据块进行排序以确定所述第二切片数据块的第二位置信息;基于所述初始标识数据和所述第二位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置还包括第二切片数据流构建单元,所述第二切片数据流构建单元用于通过所述位置信息相同的第二切片数据块构建所述第二切片数据流以使客户端基于对等网络根据所述第二切片数据流实现所述原始媒体数据的共享。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置还包括第二切片数据块加载单元,所述第二切片数据块加载单元用于遍历所述第二切片数据块,确定所述第二切片数据块中包含关键帧的第二媒体数据流单元;获取所述第二媒体数据流单元对应的所述目标标识数据;以及获取所述流媒体数据对应的第二属性数据单元,将所述目标标识数据作为所述第二媒体数据流单元的索引标识数据以基于所述第二属性数据单元,通过所述索引标识数据实现所述第二切片数据块的加载;所述第二属性数据单元包括元数据标签数据单元、音频编码数据单元和视频编码数据单元。
根据本公开实施例的第四方面,提供了一种流媒体数据传输装置,应用于客户端,包括:索引文件获取模块,用于响应检测到播放原始媒体数据的指令时,从服务器获取所述原始媒体数据对应的索引文件;其中所述索引文件包括第一索引文件或第二索引文件;点播模式播放模块,用于如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块通过点播模式播放所述原始媒体数据;直播模式播放模块,用于如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据。
在本公开的一些示例实施例中,基于前述方案,所述点播模式播放模块模块还包括原媒体数据跳转播放单元,所述原媒体数据跳转播放单元用于响应于检测到所述第一切片数据块为第一起始切片数据块,获取所述第一起始切片数据块中的第一属性数据单元;获取所述第一属性数据单元中的关键帧索引数据表;根据所述关键帧索引数据表下载所述第一切片数据块以实现所述原始媒体数据的跳转播放。
在本公开的一些示例实施例中,基于前述方案,所述点播模式播放模块模块还包括第一索引文件更新单元,所述第一索引文件更新单元用于响应于对时间进度条的跳转操作,确定跳转时间点;根据所述跳转时间点在所述关键帧索引数据表中匹配得到与所述跳转时间点对应的目标时间点,并确定所述目标时间点对应的第一媒体数据流单元;根据所述第一媒体数据流单元中包含的第一标识数据、位置信息和第一相对时间戳,确定所述目标时间点对应的所述第一切片数据块的标识数据;基于所述第一标识数据更新所述第一起始标识数据得到更新后的第一起始标识数据,并根据所述更新后的第一起始标识数据更新所述第一索引文件得到更新后的第一索引文件,以根据所述更新后的第一索引文件下载所述第一切片数据块用于实现所述原始媒体数据的跳转播放。
在本公开的一些示例实施例中,基于前述方案,所述直播模式播放模块还包括第二索引文件更新单元,所述第二索引文件更新单元用于获取预设的超时时长阈值和所述第二切片数据块对应的第二起始标识数据;确定所述第二切片数据块的下载时长;响应于检测到所述下载时长超过所述超时时长阈值,确定所述第二切片数据块对应的目标标识数据,并根据所述目标标识数据更新所述第二起始标识数据;基于更新后的所述第二起始标识数据,更新所述第二索引文件以根据更新后的所述第二索引文件,重新下载所述第二切片数据块。
根据本公开实施例的第五方面,提供了一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意一项所述的流媒体数据传输方法。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的流媒体数据传输方法。
根据本公开实施例的第七方面,提供了一种流媒体数据传输系统,包括:切片数据服务器,用于将获取的原始媒体数据转封装为流媒体数据,并将所述流媒体数据切分为第一切片数据块或第二切片数据块,并生成所述第一切片数据块对应的第一索引文件或所述第二切片数据块对应的第二索引文件;内容分发服务器,与所述切片数据服务器通信连接,用于获取并存储所述切片数据服务器生成的所述第一切片数据块或所述第二切片数据块,以及所述第一索引文件或第二索引文件;客户端,与所述内容分发服务器通信连接,用于响应于检测到播放原始媒体数据的指令,从所述切片数据服务器获取用于播放所述原始媒体数据的所述第一索引文件或所述第二索引文件,并通过所述第一索引文件或所述第二索引文件从所述内容分发服务器请求下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
在本公开的一些示例实施例中,所述流媒体数据传输系统,还包括:共享服务器,与所述客户端通信连接,用于构建包含所述客户端的对等网络,并基于所述对等网络,在所述对等网络中的对等客户端请求播放所述原始媒体数据时,将所述客户端下载的所述第一切片数据块或所述第二切片数据块共享给所述对等客户端,以实现在所述对等客户端播放所述原始媒体数据。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开的示例实施例中的流媒体数据传输方法,获取原始媒体数据,并将原始媒体数据转封装为流媒体数据;响应于检测到流媒体数据的播放模式为点播模式,将流媒体数据切分为第一切片数据块,并确定第一切片数据块对应的第一索引文件;响应于检测到流媒体数据的播放模式为直播模式,将流媒体数据切分为第二切片数据块,并确定第二切片数据块对应的第二索引文件;将第一索引文件或第二索引文件推送到客户端,客户端通过第一索引文件或第二索引文件下载第一切片数据块或第二切片数据块,以实现所述原始媒体数据的播放。根据本示例实施例中的流媒体数据传输方法,一方面,将原始媒体流按需转封装为流媒体数据,可以采用内存管道的形式实现流媒体数据的输出,避免写入磁盘又重新读出数据耗时,进而提高原始媒体数据的播放效率;另一方面,根据原始媒体数据的播放形式,将流媒体数据切分为粒度不同的数据块,实现了服务器的负载均衡,提高了服务器的稳定性,同时,客户端可以通过对等网络实现粒度较小的数据块的共享,从而提高了原始媒体数据的分发与共享效率;再一方面,客户端可以通过少次下载切片数据块对应的索引文件,即可基于索引文件的内容直接下载切片数据块以实现原始媒体数据的加载与播放,从而降低原始媒体数据的播放延时。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的一些实施例的流媒体数据传输方法的示意图;
图2示意性示出了根据本公开的一些实施例的将流媒体数据切分为第一切片数据块的示意图;
图3示意性示出了根据本公开的一些实施例的生成第一索引文件的示意图;
图4示意性示出了根据本公开的一些实施例的生成关键帧索引数据表的示意图;
图5示意性示出了根据本公开的一些实施例的基于点播模式下服务端的工作原理的示意图;
图6示意性示出了根据本公开的一些实施例的生成第二切片数据块的示意图;
图7示意性示出了根据本公开的一些实施例的第二终止切片数据块对应的第二终止标识数据更新的示意图;
图8示意性示出了根据本公开的一些实施例的第二切片数据块命名的示意图;
图9示意性示出了根据本公开的一些实施例的基于直播模式下服务端的工作原理的示意图;
图10示意性示出了根据本公开的一些实施例的客户端的工作原理的示意图;
图11示意性示出了根据本公开的一些实施例的在客户端的原始媒体数据跳转播放的示意图;
图12示意性示出了根据本公开的一些实施例的检测原始媒体数据播放状态示意图;
图13示意性示出了根据本公开的一些实施例的客户端的工作原理图示意图;
图14示意性示出了根据本公开的一些实施例的流媒体数据传输装置的示意图;
图15示意性示出了根据本公开的一些实施例的另一流媒体数据传输装置的示意图;
图16示意性示出了根据本公开的一些实施例的流媒体数据传输系统的示意图;
图17示意性示出了根据本公开的一些实施例的电子设备的计算机系统的结构示意图;
图18示意性示出了根据本公开的一些实施例的计算机可读存储介质的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或操作以避免模糊本公开的各方面。
此外,附图仅为示意性图解,并非一定是按比例绘制。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在本示例实施例中,首先提供了一种流媒体数据传输方法,该流媒体数据传输方法可以应用于终端设备,例如手机、电脑等电子设备,还可以用于服务器。
图1示意性示出了根据本公开的一些实施例的流媒体数据传输方法流程的示意图。参考图1所示,该流媒体数据传输方法可以包括以下步骤:
步骤S110,获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;
步骤S120,响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;
步骤S130,响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;
步骤S140,将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或所述第二索引文件下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
根据本示例实施例中的流媒体数据传输方法,一方面,将原始媒体流按需转封装为流媒体数据,可以采用内存管道的形式实现流媒体数据的输出,避免写入磁盘又重新读出数据耗时,进而提高原始媒体数据的播放效率;另一方面,根据原始媒体数据的播放形式,将流媒体数据切分为粒度不同的数据块,实现了服务器的负载均衡,提高了服务器的稳定性,同时,客户端可以通过对等网络实现粒度较小的数据块的共享,从而提高了原始媒体数据的分发与共享效率;再一方面,客户端可以通过少次下载切片数据块对应的索引文件,即可基于索引文件的内容直接下载切片数据块以实现原始媒体数据的加载与播放,从而降低原始媒体数据的播放延时。
下面,以电脑终端为例,将对本示例实施例中的流媒体数据传输方法进行进一步的说明。
在步骤S110中,获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据。
在本公开的一个示例实施例中,原始媒体数据可以指可以在终端直接播放的多媒体数据,例如原始媒体数据可以是在终端直接播放的音频数据,也可以是在终端直接播放的视频数据,还可以是在终端直接播放的音视频数据,本例实施例对此不作特殊限定。
流媒体数据可以指对原始媒体数据进行格式转换之后的媒体数据,例如流媒体数据可以是FLV(FLASHVIDEO,Flash的视频格式)的媒体数据,也可以是ASF(Advanced StreamFormat,高级流媒体格式)的媒体数据,当然,流媒体数据还可以是RealMedia(实时媒体格式)的媒体数据,本例实施例对此不作特殊限定。
通过将原始媒体数据转封装为流媒体数据之后,可以采用内存管道的形式实现HTTP-FLV流的输出,避免写入磁盘又重新读出数据耗时;同时,可以以某种算法将流媒体数据物理切割成若干个小文件,并基于数据传输协议如HTTP(HyperText TransferProtocol,超文本传输协议)等传输到客户端,客户端可以以相应算法进行数据重组,并还原出整个原始媒体数据,实现原始媒体数据的播放。
在步骤S120中,响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件。
在本公开的一个示例实施例中,第一切片数据块可以指通过切片程序将流媒体数据切分为多个类似小文件的数据块,例如第一切片数据块可以是存储FLV视频和音频的参数信息,如音视频的内容时长、画面长、宽等的METADATA TAG(元数据标签数据块),第一切片数据块也可以是存储音频编码信息的AUDIO HEADER TAG(音频头部标签数据块),第一切片数据块还可以是存储视频编码信息的VIDEO HEADER TAG(视频头部标签数据块),当然,第一切片数据块还可以指由多个连续的流媒体数据的基本数据单元如TAG组成的数据块,本例实施例对此不作特殊限定。
第一索引文件可以指在点播模式下第一切片数据块的索引文件,例如第一索引文件可以是包含第一切片数据块中的起始切片数据块、终止切片数据块以及第一切片数据块内容等信息的索引文件,当然,第一索引文件还可以指包含关键帧的第一切片数据块的索引信息的索引文件,本例实施例对此不作特殊限定。
可以在确定客户端以点播模式播放原始媒体数据之后,将原始媒体数据封装为流媒体数据,并通过切片服务器对流媒体数据进行切割处理,得到第一切片数据块,根据切片服务器的时间戳以及播放第一切片数据块的帧对应的时间长度等信息,生成第一切片数据块的第一索引文件以使客户端可以通过下载第一索引文件,根据第一索引文件的内容下载第一切片数据块,将第一切片数据块重新组装得到原始媒体数据。
在步骤S130中,响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件。
在本公开的一个示例实施例中,第二切片数据块可以指在将原始媒体数据切割为与流媒体数据的基本数据单元同级的子切片数据块,例如第二切片数据块可以是包含关键帧的TAG数据块,也可以是不包含关键帧的TAG数据块,还可以是由一个基本数据单元构成的子切片数据块,还可以是由若干个基本数据单元构成的子切片数据块,本例实施例对此不作特殊限定。
第二索引文件可以指在直播模式下第二切片数据块的索引文件,例如第二索引文件可以是包含流媒体数据对应的起始切片数据块、终止切片数据块以及第二切片数据块内容等信息的索引文件,当然,第二索引文件还可以指包含关键帧的第二切片数据块的索引信息的索引文件,本例实施例对此不作特殊限定。
可以在确定客户端以直播模式播放原始媒体数据之后,将原始媒体数据封装为流媒体数据,并通过切片服务器对流媒体数据进行切割处理,得到第二切片数据块,根据切片服务器的时间戳以及播放第二切片数据块的帧对应的时间长度等信息,生成第二切片数据块的第二索引文件以使客户端可以通过下载第二索引文件,根据第二索引文件的内容下载第二切片数据块,将第二切片数据块重新组装得到原始媒体数据。
在步骤S140中,将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或所述第二索引文件下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
在本公开的一个示例实施例中,客户端可以指与服务建立通信连接的终端设备,例如,客户端可以是安装有浏览器的手机,也可以是安装有浏览器的电脑,当然,客户端还可以是其他设备如服务器等,本例实施例对此不作特殊限定。
优选的,切片服务器可以将通过对流媒体数据进行切割处理得到的第一切片数据块以及第一切片数据块对应的第一索引文件,或者第二切片数据块以及第二切片数据块对应的第二索引文件持续的推送到内容分发服务器中,内容分发服务器持续的将第一切片数据块以及第一切片数据块对应的第一索引文件,或者第二切片数据块以及第二切片数据块对应的第二索引文件推送到客户端,客户端接收到第一切片数据块以及第一切片数据块对应的第一索引文件,或者第二切片数据块以及第二切片数据块对应的第二索引文件后,可以通过共享服务器将第一切片数据块以及第一切片数据块对应的第一索引文件,或者第二切片数据块以及第二切片数据块对应的第二索引文件,发送到与其他对等客户端以实现第一切片数据块以及第一切片数据块对应的第一索引文件,或者第二切片数据块以及第二切片数据块对应的第二索引文件的共享与交换,以降低原始媒体数据的播放时延。
图2示意性示出了根据本公开的一些实施例的将流媒体数据切分为第一切片数据块的流程的示意图;参考图2所示,可以通过图2中的步骤生成第一切片数据块:
在步骤S210中,确定所述流媒体数据对应的媒体数据流单元;
在步骤S220中,获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,并确定与所述切片时长对应的多个媒体数据流单元的第一时间戳差值;
在步骤S230中,检测到所述第一时间戳差值大于或者等于所述切片时长,基于所述第一时间戳差值对应的所述媒体数据流单元生成第一切片数据块。
其中,媒体数据流单元可以指构成流媒体数据的基本数据流单元,例如当流媒体数据可以是FLV格式的媒体数据,媒体数据流单元可以是组成FLV格式的媒体数据的FLVTAG,当然,流媒体数据还可以是其他格式的媒体数据,媒体数据流单元还可以是组成其他格式的流媒体数据的基本数据流单元,本例实施例对此不作特殊限定。
切片时长可以指在切片服务器中预设的用于将流媒体数据切割为多个第一切片数据块的时长,通常是以秒为单位的,若客户端要求根据第一索引文件下载第一切片数据块,并基于第一切片数据块还原得到原始媒体数据的延时较低,可以将切片时长设置为1秒,当然,切片时长还可以是N(N>0)秒,本例实施例对此不作特殊限定。
第一时间戳差值可以指播放第一切片数据块的帧对应的时间长度,例如,切片时长为1秒,其中,媒体数据流单元TAG1的时间戳为500毫秒,媒体数据流单元TAG2的时间戳为520毫秒,第一时间戳差值可以是1020毫秒,则第一切片数据块可以是由媒体数据流单元TAG1和媒体流数据单元TAG2组成的切片数据块,当然,第一切片数据块也可以是由超过2个媒体数据流单元组成的,第一时间戳差值也可以是其他数值,本例实施例对此不作特殊限定。
优选的,由于每个流媒体数据是由多个媒体数据流单元组成的,而每个媒体数据流单元都有具体的时间戳,根据媒体数据流单元的时间戳信息将第一时间戳差值大于或等于切片时长的多个媒体数据流单元组合为一个第一切片数据块;在生成第一切片数据块的过程中,可以通过调整切片时长以减少生成第一切片数据块的时间消耗,从而降低生成第一切片数据块的延时。
图3示意性示出了根据本公开的一些实施例的生成第一索引文件的流程的示意图;参考图3所示,可以通过图3中的步骤生成第一索引文件:
在步骤S310中,实时获取所述第一切片数据块对应的时间戳,基于所述时间戳确定所述第一切片数据块的标识数据
在步骤S320中,确定所述流媒体数据对应的第一起始切片数据块和第一终止切片数据块;
在步骤S330中,确定所述第一起始切片数据块对应的第一起始标识数据和所述第一终止切片数据块对应的第一终止标识数据;
在步骤S340中,根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件。
其中,时间戳可以指用于通过切片服务器确定第一切片数据块的标识数据的时间信息,例如时间戳可以是切片服务器开始切割流媒体数据的时间信息,当然时间戳还可以指生成第一切片数据块的时间信息,本例实施例对此不作特殊限定。
第一起始切片数据块可以指在点播模式下,由切片服务器切割流媒体数据而产生的第一个第一切片数据块;第一终止切片数据块可以指在点播模式下,由切片服务器切割流媒体数据而产生的最后一个第一切片数据块。
第一起始标识数据可以指第一起始切片数据块的标识数据,例如,第一起始标识数据可以是通过切片服务器生成第一个第一切片数据块(第一起始切片数据块)对应的时间戳,第一起始标识数据也可以是第一起始切片数据块在切片服务器中的地址信息,当然,第一起始标识数据还可以是第一起始切片数据块对应的其他唯一标识信息,本例实施例对此不作特殊限定。
第一终止标识数据可以指第一终止切片数据块的标识数据,例如第一终止标识数据可以是通过切片服务器生成最后一个第一切片数据块(第一终止切片数据块)对应的时间戳,第一终止标识数据也可以是第一终止切片数据块在切片服务器中的地址信息,当然,第一终止标识数据还可以是第一终止切片数据块对应的其他唯一标识信息,本例实施例对此不作特殊限定。
优选的,根据每个第一切片数据块的第一时间戳差值、第一起始切片数据块对应的第一起始标识数据、第一终止切片数据块对应的第一终止标识数据构建第一切片数据块对应的第一索引文件,其中,每生成一个第一切片数据块,需要实时更新一下第一索引文件,即将新生的第一切片数据块对应的第一时间戳差值添加到之前的第一索引文件中,使得客户端可以根据第一索引文件可以持续的下载第一切片数据块,并基于第一切片数据块还原出原始媒体数据,进而可以以点播模式播放原始媒体数据。
图4示意性示出了根据本公开的一些实施例的生成关键帧索引数据表的流程的示意图;参考图4所示,客户端可以通过图4中的步骤基于关键帧索引数据表实现原始媒体数据的跳转播放:
在步骤S410中,确定所述第一切片数据块中包含关键帧的第一媒体数据流单元以及包含所述第一媒体数据流单元的第一切片数据块的第一标识数据;
在步骤S420中,获取所述第一媒体数据流单元在所述第一切片数据块中的第一位置信息,以及所述第一媒体数据流单元的第一相对时间戳;
在步骤S430中,基于所述第一媒体数据流单元、所述第一标识数据、所述第一位置信息和所述第一相对时间戳生成关键帧索引数据表,并将所述关键帧索引数据表保存到所述第一起始切片数据块的第一属性数据单元中,以使所述客户端根据所述第一属性数据单元对所述原始媒体数据进行跳转播放。
其中,第一媒体数据流单元可以指包含关键帧的媒体数据流单元;第一标识数据可以指包含关键帧的第一切片数据块对应的标识数据,例如第一标识数据可以是包含关键帧的第一起始切片数据块对应的第一起始标识数据,也可以是包含关键帧的第一终止切片数据块对应的第一终止标识数据,当然,第一标识数据还可以是其他不包含关键帧的第一切片数据块对应的标识数据,本例实施例对此不作特殊限定。
第一位置信息可以指第一媒体数据流单元在第一媒体数据流单元所属的第一切片数据块中的编号信息,例如,第一切片数据块可以是由媒体数据流单元TAG1、媒体流数据单元TAG2、媒体流数据单元TAG3组成的,其中第一切片数据块的标识数据为16076,且第一切片数据块中媒体流数据单元TAG2包含关键帧,位置信息可以使16076-2,当然,位置信息还可以是由其他第一切片数据块对应的第一标识数据和该第一切片数据块中其他包含关键帧的媒体数据流单元的编号信息组成的,本例实施例对此不作特殊限定。
第一相对时间戳可以指在播放完整的原始媒体数据时,第一媒体数据流单元中的关键帧对应的时间戳;关键帧索引数据表可以指实现原始媒体数据跳转播放的索引数据表,例如关键帧索引数据表可以是由第一媒体数据流单元的位置信息、第一媒体数据流单元的第一相对时间戳、第一媒体数据流单元所属的第一切片数据块对应的第一标识数据构建的索引数据表,当然,关键帧索引表还可以是包含其他索引信息的数据表,本例实施例对此不作特殊限定。
优选的,根据包含关键帧的第一媒体流数据单元对应的位置信息和对应的位置信息以及第一媒体数据流单元所属的第一切片数据块对应的第一标识信息,生成关键帧索引数据表,检测到客户端对时间进度条的跳转操作,确定原始媒体数据片段对应的跳转时间,基于跳转时间在关键帧索引数据表中匹配得到与跳转时间最接近的第一相对时间戳,进而确定第一相对时间戳对应的关键帧,从而下载关键帧对应的第一切片数据块,以及持续下载该第一切片数据块之后的第一切片数据块,以实现对原始媒体数据的跳转播放。
图5示意性示出了根据本公开的一些实施例的基于点播模式下服务端的工作原理的示意图;参考图5所示,服务端可以通过图5中的步骤生成或更新第一索引文件:
在步骤S511中,读取原始媒体数据,将原始媒体数据转封装为流媒体数据;
在步骤S512中,读取流媒体数据并将将流媒体数据缓存到缓存区;
在步骤S513中,解析流媒体数据对应的媒体数据流单元;
在步骤S514中,判断是否成功解析媒体数据流单元;若成功解析媒体数据流单元,执行步骤S515,否则跳转到步骤S512;
在步骤S515中,判断媒体数据流单元是否为第一属性数据单元,若媒体数据流单元为第一属性数据单元,执行步骤S516,否则跳转到步骤S517;
在步骤S516中,保存第一属性单元数据;
在步骤S517中,生成第一切片数据块,并存储到第一切片数据块列表中;
在步骤S518中,记录存储包含关键帧的第一媒体数据流单元;
在步骤S519中,生成第一切片数据块,并更新包含关键帧的第一切片数据块的第一标识数据;
在步骤S520中,更新第一索引文件中第一起始切片数据对应的第一起始标识数据和第一终止切片数据块对应的第一终止标识数据;
在步骤S521中,将所有包含关键帧的第一切片数据块对应的第一标识数据、第一媒体数据单元的第一位置信息和第一相对时间戳写入第一属性数据单元;
在步骤S522中,将第一属性数据单元中的信息写入第一起始切片数据块的第一媒体数据单元以实现对第一索引文件的更新。
在点播模式下,通过服务端实时的对第一索引文件进行更新,并将所有包含关键帧的第一切片数据块对应的第一标识数据、第一媒体数据单元的第一位置信息和第一相对时间戳写入第一属性数据单元,并第一属性数据单元存储的信息写入到第一起始切片数据块以实现对第一索引文件的实时更新;当检测到客户端对时间进度条的跳转操作,确定原始媒体数据片段对应的跳转时间,基于跳转时间在第一索引文件中匹配得到与跳转时间最接近的第一相对时间戳,进而确定第一相对时间戳对应的关键帧,从而可以下载关键帧对应的第一切片数据块,以及持续下载该第一切片数据块之后的其他第一切片数据块,以实现对原始媒体数据的跳转播放。
图6示意性示出了根据本公开的一些实施例的生成第二切片数据块的流程的示意图;参考图6所示,服务端可以通过图6中的步骤生成第二切片数据块:
在步骤S610中,确定所述流媒体数据对应的媒体数据流单元;
在步骤S620中,获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,确定所述切片时长对应的所述媒体数据流单元的第二时间戳差值;
在步骤S630中,检测到所述第二时间戳差值大于或等于所述切片时长,基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块;
在步骤S640中,获取预设的所述模板切片数据块对应的媒体数据流单元的数量,并根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块。
其中,模板切片数据块可以指在直播模式下由多个媒体数据流单元构成的切片数据块;第二时间戳差值可以指播放模板切片数据块的帧对应的时间长度,例如,切片时长为1秒时,媒体数据流单元TAG1的时间戳为500毫秒,媒体数据流单元TAG2的时间戳为220毫秒,媒体数据流单元TAG3的时间戳为320毫秒,则模板切片数据块可以是由媒体数据流单元TAG1、媒体流数据单元TAG2、媒体数据流单元TAG3组成的切片数据块,则第二时间戳差值是1050毫秒,当然,模板切片数据块也可以是由超过3个媒体数据流单元组成的,第二时间戳差值也可以是其他数值,本例实施例对此不作特殊限定。媒体数据流单元的数量可以指通过人为设定的用于将模板切片数据块进行均匀切割以得到多个第二切片数据块对应的数量。
优选的,可以将流媒体数据切分为第二切片数据块,进而基于第二切片数据块生成第二切片数据流,基于对等网络,在客户端实现第二切片数据的共享,进而提高将第二切片数据块重新组合得到模板切片数据块的效率,并不需要通过第二索引文件,逐一下载第二切片数据块,再耗费时间组装得到模板切片数据块,从而提高原始媒体数据的加载及播放效率。
图7示意性示出了根据本公开的一些实施例的第二终止切片数据块对应的第二终止标识数据更新的示意图;参考图7所示,服务端可以通过图7中的步骤实现第二终止切片数据块对应的第二终止标识数据的更新:
在步骤S710中,确定所述模板切片数据块对应的第二起始切片数据块;
在步骤S720中,获取所述第二起始切片数据块的时间戳信息,基于所述时间戳信息,对所述第二起始切片数据块进行命名处理以确定所述第二起始切片数据块的第二起始标识数据;
在步骤S730中,获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据;
在步骤S740中,在检测到所述流媒体数据切割完成时,确定所述模板切片数据块对应的第二终止切片数据块和所述第二终止切片数据块对应的第二终止标识数据,所述流媒体数据切割未完成时,所述第二终止标识数据始终为零。
其中,第二起始切片数据块可以指直播模式下,由切片服务器切割流媒体数据而产生的第一个模板数据块;第二终止切片数据块可以指在直播模式下,由切片服务器切割流媒体数据而产生的最后一个模板切片数据块。
第二起始标识数据可以指第二起始切片数据块的标识数据,例如第二起始标识数据可以是通过切片服务器生成第二个切片数据块(第二起始切片数据块)对应的时间戳,第二起始标识数据也可以是第二起始切片数据块在切片服务器中的地址信息,当然,第二起始标识数据还可以是第二起始切片数据块对应的其他唯一标识信息,本例实施例对此不作特殊限定。
第二终止标识数据可以指第二终止切片数据块的标识数据,例如第二终止标识数据可以是通过切片服务器生成最后一个模板切片数据块(第二终止切片数据块)对应的时间戳,第二终止标识数据也可以是第二终止切片数据块在切片服务器中的地址信息,当然,第二终止标识数据还可以是第二终止切片数据块对应的其他唯一标识信息,本例实施例对此不作特殊限定。
初始标识数据可以指模板切片数据块的标识数据,例如初始标识数据可以是第二起始切片数据块对应的第二起始标识数据,初始标识数据也可以是第二终止切片数据块对应的第二终止切片数据块对应的第二终止标识数据,当然,初始标识数据还可以指其他模板切片数据块对应的标识数据,本例实施例对此不作特殊特殊限定。
递增数值可以指与模板切片数据块的数目对应的递归次数,例如,第二起始标识数据120,递增数值可以是1,则第二个模板切片数据对应的初始标识数据可以是121,递增数据也可以是2,则第三个模板切片数据块对应的初始标识数据可以是123,即递增数据是n时,可以得到第n+1个模板切片数据块对应的初始标识数据。
在直播模式下,若流媒体数据切割未完成,可以规定第二终止切片数据块对应的第二终止标识数据始终为0,当检测到流媒体数据切割完成时,确定第二终止切片数据块对应的第二终止标识数据以实现第二终止标识数据的更新,并通知客户端原始媒体数据加载或播放结束。
在本公开的一种示例性实施例中,可以根据第二起始标识数据、第二终止标识数据、第二时间戳差值、媒体数据流单元的数量,构建第二索引文件。
其中,第二终止标识数据可以指在直播模式下,将流媒体数据切分得到的最后一个模板切片数据块对应的终止标识数据,即更新后的第二终止标识数据。
可以通过第二起始标识数据、第二终止标识数据、第二时间戳差值、媒体数据流单元的数量,构建第二索引文件;在直播模式下,将流媒体数据切分为多个模板切片数据块的数目是未知的,每生成一个模板切片数据块,需要更新一次第二索引文件,而第二索引文件并不包含模板切片数据块的下载地址以及每个模板的初始标识数据等冗余信息,减少了第二索引文件的解析时间。客户端可以下载一次第二索引文件,根据第二索引文件中的第二起始标识数据开始下载模板切片数据块,基于模板切片数据块得到原始媒体数据,降低了原始媒体数据的加载及播放延时。
图8示意性示出了根据本公开的一些实施例的第二切片数据块命名的示意图;参考图8所示,服务端可以通过图8中的步骤确定第二切片数据块对应的目标标识数据:
在步骤S810中,基于所述媒体数据流单元的数量对所述第二切片数据块进行排序以确定所述第二切片数据块的第二位置信息;
在步骤S820中,基于所述初始标识数据和所述第二位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据。
其中,第二位置信息可以指构成模板切片数据块中某一第二切片数据块的编号信息,目标标识数据可以指第二切片数据块对应的标识数据,例如,目标标识数据可以是由第二切片数据块所属的模板切片数据块对应的初始标识数据和第二切片数据块在所属的模板切片数据块中的编号信息组成的;具体的,假设初始标识数据为160的模板切片数据块是由第二切片数据块TAG2和第二切片数据块TAG2组成的,若第二切片数据块TAG1在模板切片数据块中的编号为1,第二切片数据块TAG2在模板切片数据块中的编号为2,则第二切片数据块TAG1对应的第二位置信息可以是1、第二切片数据块TAG2对应的第二位置信息可以是2,进而第二切片数据块TAG1对应的目标标识数据可以是160-1,第二切片数据块TAG2对应的目标标识数据可以是160-2,当然,第二切片数据块所属的模板切片数据块对应的初始标识数据和第二切片数据块对应的第二位置信息还可以是其他数据,本例实施例对此不作特殊限定。
可以通过第二切片数据块所属的模板切片数据块对应的初始标识数据和第二切片数据块对应的第二位置信息,确定第二切片数据块对应的目标标识数据,基于第二切片数据块对应的目标标识数据和模板切片数据块中第一个关键帧对应的模板切片数据块中的索引信息,可以实现任意一个包含最新关键帧的切片数据加载播放。
在本公开的一种示例性实施例中,可以通过位置信息相同的第二切片数据块构建第二切片数据流以使客户端基于对等网络根据第二切片数据流实现原始媒体数据的共享。
其中,第二切片数据流可以指由多个第二个切片数据块组成的数据流,例如,第一个模板切片数据块的初始标识数据为100,且第一个模板切片数据块是由两个第二切片数据块组成的,其中,两个第二切片数据块对应的目标标识数据分别为100-1、100-2,第二个模板切片数据块的初始标识数据为101,且第一个模板切片数据块是由三个第二切片数据块组成的,其中,三个第二切片数据块对应的目标标识数据分别为101-1、101-2、101-3,则可以将目标标识数据为100-1的第二切片数据块和目标标识数据为101-1的第二切片数据块组合生成第一通道第二切片数据流,也可以将将目标标识数据为100-2的第二切片数据块和目标标识数据为101-2的第二切片数据块组合生成第二通道第二切片数据流,当然,组成第二切片数据流还可以是其他的第二切片数据块,本例实施例对此不作特殊限定。
优选的,可以通过位置信息相同的第二切片数据块构建第二切片数据流,基于对等网络,客户端可以和其他同一等级的客户端共享(交换)第二切片数据流,以实现对第二切片数据块进行重组得到模板切片数据块,基于模板切片数据块提高原始媒体数据的加载播放效率。例如,与客户端3的对等的客户端有客户端1、客户端2和客户端4,初始标识数据为101的模板切片数据块由三个目标标识数据分别为101-1、101-2、101-3的第二切片数据块组成的,客户端1拥有第一通道的第二切片数据流,且第一通道的第二切片数据流是由目标标识数据为100-1的第二切片数据块和目标标识数据为101-1的第二切片数据块组成的,客户端2的拥有第二通道的第二切片数据流,且第二通道的第二切片数据流是由目标标识数据为100-1的第二切片数据块和目标标识数据为101-1的第二切片数据块组成的,客户端4拥有第四通道的第二切片数据流,且第四通道的第二切片数据流为目标标识数据为101-3的第二切片数据块。
客户端1可以将目标标识数据为101-1的第二切片数据块发送给客户端3,客户端2可以将目标标识数据为101-2的第二切片数据块发送给客户端3,同时从客户端4获取目标标识数据为101-3的第二切片数据块,并不需要客户端根据第二索引文件逐一下载目标标识数据分别为101-1、101-2、101-3的第二切片数据块,进而可以直接将从对等客户端获得的目标标识数据分别为101-1、101-2、101-3的第二切片数据块进行组合,即可得到初始标识数据为101的模板切片数据块,同理其他客户端也可以从对等的客户端获取第二切片数据块,并不需要根据第二索引文件下载模板切片数据块,提高了对等网络和数据资源的利用率。
在本公开的一种示例性实施例中,可以遍历第二切片数据块,确定第二切片数据块中包含关键帧的第二媒体数据流单元;获取第二媒体数据流单元对应的目标标识数据;以及获取流媒体数据对应的第二属性数据单元,将第二属性数据单元添加到第二媒体数据流单元中,并将目标标识数据作为索引标识数据以基于第二属性数据单元,通过索引标识数据实现所述第二切片数据块的加载;所述第二属性数据单元包括元数据标签数据单元、音频编码数据单元和视频编码数据单元。
其中,第二媒体数据流单元可以指在直播模式下包含关键帧的媒体数据单元;第二属性数据单元可以指包含元数据标签数据单元、音频编码数据单元和视频编码数据单元的属性数据单元,其中,元数据标签数据单元可以是包含模板切片数据块的第二时间戳差值、画布长、宽等信息的媒体数据流单元,音频编码数据单元可以是包含音频编码信息的媒体数据流单元,视频编码数据单元可以是包含视频编码信息的媒体数据单元。
在直播模式下,可以遍历流媒体数据对应的第二切片数据块以确定包含关键帧的第二切片数据块,并确定包含关键帧的第二切片数据块对应的目标标识数据,将元数据标签数据单元、音频编码数据单元、视频编码数据单元添加到包含关键帧的第二切片数据块中,基于包含关键帧的第二切片数据块的目标标识数据,确定对应的模板切片数据块的起始标识信息,加载模板切片对应的音视频内容,实现任意包含关键帧的模板切片数据块对应的音视频内容的播放。
图9示意性示出了根据本公开的一些实施例的基于直播模式下服务端的工作原理的示意图;参考图9所示,服务端可以通过图9中的步骤更新第二索引文件:
在步骤S911中,读取原始媒体数据,将原始媒体数据转封装为流媒体数据;
在步骤S912中,读取流媒体数据并将流媒体数据缓存到缓存区;
在步骤S913中,解析流媒体数据对应的媒体数据流单元;
在步骤S914中,判断是否成功解析媒体数据流单元,若成功解析媒体数据流单元,执行步骤S915,否则跳转到步骤S912;
在步骤S915中,判断媒体数据流单元是否为第二属性数据单元,若媒体数据流单元为第二属性数据单元,执行步骤S916,否则跳转到步骤S917;
在步骤S916中,保存第二属性单元的数据;
在步骤S917中,生成第二切片数据块,并存储到第二切片数据块列表中;
在步骤S918中,判断相邻的多个第二切片数据块对应的第二时间戳差值是否大于等于切片时长,若相邻的多个第二切片数据块对应的第二时间戳差值大于等于切片时长,执行步骤S919,否则跳转到步骤S913;
在步骤S919中,基于该多个第二个切片数据块生成一个模板切片数据块;
在步骤S920中,判断模板切片数据块中是否包含关键帧,若模板切片数据块中包含关键帧,执行步骤S921,否则跳转到步骤S922;
在步骤S921中,在模板切片数据块中包含第一个关键帧的第二媒体数据流单元中写入第二属性数据单元;
在步骤S922中,判断服务端是否设置了第二切片数据流,若服务端设置了第二切片数据流,执行步骤S923,否则跳转到步骤S924;
在步骤S923中,按模板切片数据块中的媒体数据流单元的数目将模板切片数据块切割生成第二切片数据块;
在步骤S924中,更新第二索引文件中的第二起始标识数据。
在直播模式下,可以将流媒体数据切割为与流媒体数据的媒体数据单元同级粒度的第二切片数据块,检测到第二切片数据块包含关键帧时,将第二属性单元添加到包含关键帧的第二切片数据块中,并根据包含关键帧的第二切片数据块对应的目标标识数据,确定第二切片数据块所述模板切片数据块的初始标识数据,基于第二切片数据块所述模板切片数据块的初始标识数据更新第二索引文件中第二起始切片数据块对应的第二起始标识数据以实现对第二索引文件的实时更新;此外,当检测到服务端设置了第二切片数据流,可以通过位置信息相同的第二切片数据块构建第二切片数据流,基于对等网络,客户端可以和其他同一等级的客户端共享(交换)第二切片数据流,以实现对第二切片数据块进行重组得到模板切片数据块,基于模板切片数据块提高原始媒体数据的加载播放效率。
图10示意性示出了根据本公开的一些实施例的客户端的工作原理的示意图;参考图10所示,客户端可以通过图10中的步骤加载并播放原始媒体数据:
在步骤S1010中,响应检测到播放原始媒体数据的指令时,从服务器获取所述原始媒体数据对应的索引文件;其中所述索引文件包括第一索引文件或第二索引文件;
在步骤S1020中,如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块以点播模式播放所述原始媒体数据;
在步骤S1030中,如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块以直播模式播放所述原始媒体数据。
其中,原始媒体数据通过点播模式或直播模式播放是在服务端设置的,在客户端只需要下载点播模式对应的第一索引文件,或下载直播模式对应的第二索引文件,根据第一索引文件下载第一切片数据块,将第一切片数据块重新组装得到原始媒体数据,就可以直接通过网页浏览器以点播模式播放原始媒体数据,或根据第二索引文件下载第二切片数据块,将第二切片数据块重新组装得到原始媒体数据,就可以直接通过网页浏览器以直播模式播放原始媒体数据。
在本公开的一种示例性实施例中,以点播模式播放原始媒体数据时,需要检测根据第一索引文件下载的第一切片数据块是否是第一起始切片数据块,当检测到第一切片数据块为第一起始切片数据块时,获取第一起始切片数据块中的第一属性数据单元,并获取第一属性数据单元中的关键帧索引数据表,基于关键下载帧索引数据表第一切片数据块以实现原始媒体数据流的跳转播放。
优选的,可以只下载一次第一索引文件,根据第一索引文件的内容确定第一起始切片数据块对应的第一标识数据,当检测到用户在交互界面上对原始媒体数据的跳转播放的操作时,例如当用户直接点击时间进度条时,确定用户点击操作对应的原始媒体数据的时间戳,根据时间戳确定与该时间戳最近的第一相对时间戳,基于该第一相对时间戳确定包含关键帧的第一媒体数据流单元,进而确定该第一媒体数据流单元对应的第一切片数据块,下载该第一切片数据块以及该第一切片数据块对应的时间戳之后的第一切片数据块,在点播模式下实现对原始媒体数据的跳转播放。
图11示意性示出了根据本公开的一些实施例的在客户端的原始媒体数据跳转播放的示意图;参考图11所示,客户端可以通过图11中的步骤实现原始媒体数据的跳转播放:
在步骤S1110中,响应于对时间进度条的跳转操作,确定跳转时间点;
在步骤S1120中,根据所述跳转时间点在所述关键帧索引数据表中匹配得到与所述跳转时间点对应的目标时间点,并确定所述目标时间点对应的第一媒体数据流单元;
在步骤S1130中,根据所述第一媒体数据流单元中包含的第一标识数据、位置信息和第一相对时间戳,确定所述目标时间点对应的所述第一切片数据块的标识数据;
在步骤S1140中,基于所述第一标识数据更新所述第一起始标识数据得到第二起始标识数据,并根据所述第二起始标识数据和终止标识数据,下载所述第一切片数据块以实现所述原始媒体数据流的跳转播放。
其中,时间进度条可以指用于调整原始媒体数据播放进度的控件,例如时间进度条可以是左端标注有“-”符号、右端标注有“+”符号中间是可以滑动的滑块对应的控件,也可以是包含快进控件和后退控件的控件组,当然,时间进度条还可以是其他具有调整原始媒体数据播放进度的控件,本例实施例对此不作特殊限定。
跳转时间点可以指用户改变时间进度条的当前状态对应的时间点,例如,当时间进度条是左端标注有“-”符号、右端标注有“+”符号中间是可以滑动的滑块对应的控件,且用户未对时间进度条进行跳转操作时,时间进度条的颜色可以是灰白色的,当用户对时间进度条中间的滑块进行滑动且滑动操作未停止时,时间进度条的颜色可以是橘色的,当用户对时间进度条中间的滑块进行滑动且滑动操作刚停止时,时间进度条的颜色可以是红色的,跳转时间点就是时间进度条的颜色由橘色跳转为红色时对应的时间点,当然,跳转时间点还可以指以其他形式改变时间进度条的状态对应的时间点,本例实施例对此不作特殊限定。
目标时间点可以指可以指在关键帧索引表中与跳转时间点较接近的时间点,例如目标时间点可以是与跳转时间点较接近的且包含关键帧的第一媒体数据单元对应的时间戳,也可以是与跳转时间点较接近的第一切片数据块对应的第一相对时间戳,当然,目标时间点还可以指其他在关键帧索引表中与跳转时间点较接近的时间点,本例实施例对此不作特殊限定。
优选的,可以实时监测时间进度条的信息,当检测到用户对时间进度条的点击或者拖动操作时,确定用户跳转操作对应的时间点即跳转时间点,基于跳转时间在关键帧索引数据表中匹配得到与跳转时间最接近的第一相对时间戳,进而根据第一相对时间戳确定包含关键帧的第一媒体数据单元,基于第一媒体数据单元确定第一关键帧对应的关键帧索引数据表,从而解析关键帧索引数据表中的第一属性数据单元,确定该第一媒体数据流单元对应的第一起始切片数据块的第一起始标识数据,根据第一起始标识数据下载第一相对时间戳对应的第一切片数据,并持续下载第一相对时间戳之后的第一切片数据块,即可实现对原始媒体数据的跳转播放。
图12示意性示出了根据本公开的一些实施例的检测原始媒体数据播放状态示意图;参考图12所示,客户端可以通过图12中的步骤实现原始媒体数据播放状态的检测:
在步骤S1210中,获取预设的超时时长阈值和所述第二切片数据块对应的第二起始标识数据;
在步骤S1220中,确定所述第二切片数据块的下载时长;
在步骤S1230中,响应于检测到所述下载时长超过所述超时时长阈值,确定所述第二切片数据块对应的目标标识数据,并根据所述目标标识数据更新所述第二起始标识数据;
在步骤S1240中,基于更新后的所述第二起始标识数据,更新所述第二索引文件以根据更新后的所述第二索引文件,重新下载所述第二切片数据块。
其中,超时时长阈值可以指用于检测第二切片数据块下载状态的时长阈值,例如,超时时长阈值可以是具体的时间值,当下载一个第二切片数据块的时长是1秒时,可以设置超时时长阈值为3秒,当检测到目标标识数据为120的第二切片数据块的下载时长为4秒时,即第二切片数据块的下载时长大于超时时长阈值,可以向用户图形界面返回下载超时或下载失败等信息,并重新下载第二索引文件,基于第二索引文件继续下载目标标识数据为120的第二切片数据块,当然超时时长阈值也可以是其他用于检测第二切片数据块下载状态的时长阈值,本例实施例对此不作特殊限定。
可选的,可以规定播放端持续下载切片过程超过3个数量的切片产生HTTP 404(请求页面不存在)返回码时,重新获取一次第二索引文件,以便发现直播切片流是否已经下载终止。
优选的,可以预设第二切片数据块对应的超时时长阈值,实时检测第二切片数据块对应的下载时长,当第二切片数据块的下载时长超过超时时长阈值,则可以向用户图形界面返回下载超时或下载失败等信息,同时客户端重新获取第二索引文件,并基于第二切片数据块的目标标识数据,确定该第二切片数据块所属的模板切片数据块对应的初始标识数据,进而基于该初始标识数据更新第二索引文件中的第二起始标识数据,以使网页浏览器基于更新后的第二起始标识数据重新下载该第二切片数据块,以及基于更新后的第二索引文件持续下载其他第二切片数据块,并将第二切片数据块组装得到模板切片数据块,基于模板切片数据块还原得到原始媒体数据,以实现在客户端以直播模式播放原始媒体数据。
图13示意性示出了根据本公开的一些实施例的客户端的工作原理图示意图;参考图13所示,客户端可以通过图13中的步骤实现原始媒体数据的播放:
在步骤S1311中,下载索引文件;
在步骤S1312中,解析索引文件内容;
在步骤S1313中,判断索引文件是否为第一索引文件,若索引文件为第一索引文件,执行步骤S1314,否则跳转到步骤S1322;
在步骤S1314中,从第一起始切片数据块开始下载第一切片数据块;
在步骤S1315中,下载下一个第一切片数据块;
在步骤S1316中,判断第一切片数据块是否为第一起始切片数据块,若第一切片数据块为第一起始切片数据块,执行步骤S1317,否则跳转到步骤S1319;
在步骤S1317中,解析第一切片数据块中的第一属性单元中的信息;
在步骤S1318中,保存第一媒体数据流单元中的关键帧索引数据表;
在步骤S1319中,向播放器写入第一切片数据块;
在步骤S1320中,判断第一切片数据块是否为第一终止切片数据块,若第一切片数据块为第一终止切片数据块,执行步骤S1328,否则跳转到步骤S1316;
在步骤S1321中,从第二起始标识数据对应的模板切片数据块开始下载数据;
在步骤S1322中,下载下一个模板切片数据块;
在步骤S1323中,判断模板切片数据块是否有对应的第二切片数据流,若模板切片数据块有对应的第二切片数据流,执行步骤S1324,否则跳转到步骤S1322;
在步骤S1324中,下载该模板切片数据块的所有第二切片数据块;
在步骤S1325中,判断该模板切片数据块对应的下载时长是否超过超时时长阈值,若该模板切片数据块对应的下载时长超过超时时长阈值,执行步骤S1326,否则跳转到步骤S1322
在步骤S1326中,重新下载第二索引文件;
在步骤S1327中,判断第二终止标识数据是否为0,若第二终止标识数据为0,执行步骤S1328,否则跳转到步骤S1322;
在步骤S1328中,结束。
优选的,客户端首先下载索引文件,并解析索引文件的内容,当检测到索引文件为第一索引文件时,根据第一索引文件下载第一切片数据块,若第一切片数据块为第一起始切片数据块,则解析第一起始切片数据块中存储的关键索引数据表,并将关键帧索引数据表缓存到缓存区以便根据关键帧索引数据表实现原始媒体数据的跳转播放,并根据第一索引文件下载下一个第一切片数据块,直到检测到第一切片数据块为第一终止切片数据块,提醒客户端在点播模式下原始媒体数据已经播放完毕;当检测到索引文件不是第一索引文件时,根据索引文件中的第二起始标识数据,下载模板切片数据块,并判断索引文件中是否被设置了第二切片数据流,若设置了第二切片数据流,则下载模板切片数据块对应的所有第二切片数据块以基于对等网络即时的将第二切片数据块共享给其他客户端,检测该模板切片数据块的下载时长,若该模板切片数据块的下载时长超过预设的超时时长阈值,则重新下载第二切片数据块,并可以向客户端发送下载失败或下载超时等提示信息,若该模板切片数据块的下载时长小于预设的超时时长阈值,则继续根据第二索引文件下载该模板切片数据块对应的时间戳之后的模板切片数据块以实现在直播模式下播放原始媒体数据。此外,可以由服务端将第一索引文件以及第一切片数据块推送到客户端,或者将第二索引文件以及第二切片数据块推送到客户端,也可以由客户端主动拉流获取第一索引文件以及第一切片数据块,或者由客户端主动拉流获取第二索引文件以及第二切片数据块。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种流媒体数据传输装置,应用于服务端。参照图14所示,该流媒体数据传输装置装置1400包括:原始媒体数据转封装模块1410、第一索引文件确定模块1420、第二索引文件确定模块1430、推送模块1440。其中:原始媒体数据转封装模块1410,用于获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;第一索引文件确定模块1420,用于响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;第二索引文件确定模块1430,用于响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;推送模块1440,用于将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或者所述第二索引文件下载所述第一切片数据块或者所述第二切片数据块,以实现所述原始媒体数据的播放。
在本公开的一些示例实施例中,基于前述方案,所述第一索引文件确定模块1420还包括第一切片数据块生成单元,所述第一切片数据块生成单元用于确定所述流媒体数据对应的媒体数据流单元,获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,并确定与所述切片时长对应的多个媒体数据流单元的第一时间戳差值,检测到所述第一时间戳差值大于或等于所述切片时长,基于所述第一时间戳差值对应的所述媒体数据流单元生成第一切片数据块。
在本公开的一些示例实施例中,基于前述方案,所述第一索引文件确定模块1420还包括第一索引文件生成单元,所述第一索引文件生成单元用于实时获取所述第一切片数据块对应的时间戳,基于所述时间戳确定所述第一切片数据块的标识数据;确定所述流媒体数据对应的第一起始切片数据块和第一终止切片数据块;确定所述第一起始切片数据块对应的第一起始标识数据和所述第一终止切片数据块对应的第一终止标识数据;根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置1400还包括关键帧索引数据表生成单元,所述关键帧索引数据表生成单元用于确定所述第一切片数据块中包含关键帧的第一媒体数据流单元以及包含所述第一媒体数据流单元的第一切片数据块的第一标识数据;获取所述第一媒体数据流单元在所述第一切片数据块中的第一位置信息,以及所述第一媒体数据流单元的第一相对时间戳;基于所述第一标识数据、所述第一位置信息和所述第一相对时间戳生成关键帧索引数据表,并将所述关键帧索引数据表保存到所述第一起始切片数据块的第一属性数据单元中,以使所述客户端根据所述第一属性数据单元对所述原始媒体数据进行跳转播放。
在本公开的一些示例实施例中,基于前述方案,第二索引文件确定模块1430还包括第二切片数据块生成单元,所述第二切片数据块生成单元用于确定所述流媒体数据对应的媒体数据流单元;获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,确定所述切片时长对应的所述媒体数据流单元的第二时间戳差值;检测到所述第二时间戳差值大于或等于所述切片时长,基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块;确定所述模板切片数据块中所述媒体数据流单元的数量,并根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置1400还包括模板切片数据块命名单元,所述模板切片数据块命名单元用于确定所述模板切片数据块对应的第二起始切片数据块;获取所述第二起始切片数据块的时间戳信息,基于所述时间戳信息,对所述第二起始切片数据块进行命名处理以确定所述第二起始切片数据块的第二起始标识数据;获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据;在检测到所述流媒体数据切割完成时,确定所述模板切片数据块对应的第二终止切片数据块和所述第二终止切片数据块对应的第二终止标识数据,所述流媒体数据切割未完成时,所述第二终止标识数据始终为零。
在本公开的一些示例实施例中,基于前述方案,所述第二索引文件确定模块1430还包括第二索引文件构建单元,所述第二索引文件构建单元用于根据所述第二起始标识数据、所述第二终止标识数据、所述第二时间戳差值、所述媒体数据流单元的数量,构建所述第二索引文件。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置1400还包括第二切片数据块命名单元,所述第二切片数据块命名单元用于基于所述媒体数据流单元的数量对所述第二切片数据块进行排序以确定所述第二切片数据块的第二位置信息;基于所述初始标识数据和所述第二位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置1400还包括第二切片数据流构建单元,所述第二切片数据流构建单元用于通过所述位置信息相同的第二切片数据块构建所述第二切片数据流以使客户端基于对等网络根据所述第二切片数据流实现所述原始媒体数据的共享。
在本公开的一些示例实施例中,基于前述方案,所述流媒体数据传输装置1400还包括第二切片数据块加载单元,所述第二切片数据块加载单元用于遍历所述第二切片数据块,确定所述第二切片数据块中包含关键帧的第二媒体数据流单元;获取所述第二媒体数据流单元对应的所述目标标识数据;以及获取所述流媒体数据对应的第二属性数据单元,将所述目标标识数据作为所述第二媒体数据流单元的索引标识数据以基于所述第二属性数据单元,通过所述索引标识数据实现所述第二切片数据块的加载;所述第二属性数据单元包括元数据标签数据单元、音频编码数据单元和视频编码数据单元。
在本示例实施例中,还提供了一种流媒体数据传输装置,应用于客户端。参照图15所示,该流媒体数据传输装置1500包括:索引文件获取模块1510、点播模式播放模块模块1520、直播模式播放模块1530。其中:索引文件获取模块1510,用于响应检测到播放原始媒体数据的指令时,从服务器获取所述原始媒体数据对应的索引文件;其中所述索引文件包括第一索引文件或第二索引文件;点播模式播放模块模块1520,用于如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块通过点播模式播放所述原始媒体数据;直播模式播放模块1530,用于如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据。
在本公开的一些示例实施例中,基于前述方案,所述点播模式播放模块模块1520还包括原媒体数据跳转播放单元,所述原媒体数据跳转播放单元用于响应于检测到所述第一切片数据块为第一起始切片数据块,获取所述第一起始切片数据块中的第一属性数据单元;获取所述第一属性数据单元中的关键帧索引数据表;根据所述关键帧索引数据表下载所述第一切片数据块以实现所述原始媒体数据的跳转播放。
在本公开的一些示例实施例中,基于前述方案,所述点播模式播放模块模块1520还包括第一索引文件更新单元,所述第一索引文件更新单元用于响应于对时间进度条的跳转操作,确定跳转时间点;根据所述跳转时间点在所述关键帧索引数据表中匹配得到与所述跳转时间点对应的目标时间点,并确定所述目标时间点对应的第一媒体数据流单元;根据所述第一媒体数据流单元中包含的第一标识数据、位置信息和第一相对时间戳,确定所述目标时间点对应的所述第一切片数据块的标识数据;基于所述第一标识数据更新所述第一起始标识数据得到更新后的第一起始标识数据,并根据所述更新后的第一起始标识数据更新所述第一索引文件得到更新后的第一索引文件,以根据所述更新后的第一索引文件下载所述第一切片数据块用于实现所述原始媒体数据的跳转播放。
在本公开的一些示例实施例中,基于前述方案,所述直播模式播放模块1530还包括第二索引文件更新单元,所述第二索引文件更新单元用于获取预设的超时时长阈值和所述第二切片数据块对应的第二起始标识数据;确定所述第二切片数据块的下载时长;响应于检测到所述下载时长超过所述超时时长阈值,确定所述第二切片数据块对应的目标标识数据,并根据所述目标标识数据更新所述第二起始标识数据;基于更新后的所述第二起始标识数据,更新所述第二索引文件以根据更新后的所述第二索引文件,重新下载所述第二切片数据块。
上述中流媒体数据传输装置各模块的具体细节已经在对应的流媒体数据传输方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了流媒体数据传输装置的若干模块或单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或单元的特征和功能可以在一个模块或单元中具体化。反之,上文描述的一个模块或单元的特征和功能可以进一步划分为由多个模块或单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述流媒体数据传输方法的系统1600。参照图16所示,该流媒体数据传输系统1600包括:切片数据服务器1610、内容分发服务器1620、客户端1630、共享服务器1640、对等客户端1650。其中,切片数据服务器1610,用于将获取的原始媒体数据转封装为流媒体数据,并将所述流媒体数据切分为第一切片数据块或第二切片数据块,并生成所述第一切片数据块对应的第一索引文件或所述第二切片数据块对应的第二索引文件;内容分发服务器1620,与所述切片数据服务器通信连接,用于获取并存储所述切片数据服务器生成的所述第一切片数据块或所述第二切片数据块,以及所述第一索引文件或第二索引文件;客户端1630,与所述内容分发服务器通信连接,用于响应于检测到播放原始媒体数据的指令,从所述切片数据服务器获取用于播放所述原始媒体数据的所述第一索引文件或所述第二索引文件,并通过所述第一索引文件或所述第二索引文件从所述内容分发服务器请求下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放;共享服务器1640,与所述客户端通信连接,用于构建包含所述客户端的对等网络,并基于所述对等网络,在所述对等网络中的对等客户端请求播放所述原始媒体数据时,将所述客户端下载的所述第一切片数据块或所述第二切片数据块共享给所述对等客户端1650,以实现在所述对等客户端播放所述原始媒体数据。
上述中流媒体数据传输系统中服务端以及客户端的具体细节已经在对应的流媒体数据传输方法中进行了详细的描述,因此此处不再赘述。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述流媒体数据传输方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图17来描述根据本公开的这种实施例的电子设备1700。图17所示的电子设备1700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图17所示,电子设备1700以通用计算设备的形式表现。电子设备1700的组件可以包括但不限于:上述至少一个处理单元1710、上述至少一个存储单元1720、连接不同系统组件(包括存储单元1720和处理单元1710)的总线1730、显示单元1740。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1710执行,使得所述处理单元1710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,所述处理单元1710可以执行如图1中所示的步骤S110,获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;步骤S120,响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;步骤S130,响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;步骤S140,将所述第一索引文件或者所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或者所述第二索引文件下载所述第一切片数据块或者所述第二切片数据块,以实现所述原始媒体数据的播放。
存储单元1720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1721和/或高速缓存存储单元1722,还可以进一步包括只读存储单元(ROM)1723。
存储单元1720还可以包括具有一组(至少一个)程序模块1725的程序/实用工具1724,这样的程序模块1725包括但不限于:操作系统、一个或多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1730可以为表示几类总线结构中的一种或多种,包括存储单元总线或存储单元控制器、外围总线、图形加速端口、处理单元或使用多种总线结构中的任意总线结构的局域总线。
电子设备1700也可以与一个或多个外部设备1770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或多个使得用户能与该电子设备1700交互的设备通信,和/或与使得该电子设备1700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1750进行。并且,电子设备1700还可以通过网络适配器1760与一个或多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1760通过总线1730与电子设备1700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
参考图18所示,描述了根据本公开的实施例的用于实现上述流媒体数据传输方法的程序产品1800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或器件使用或与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或传输用于由指令执行系统、装置或器件使用或与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施例。本申请旨在涵盖本公开的任何变型、用途或适应性变化,这些变型、用途或适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (20)
1.一种流媒体数据传输方法,其特征在于,应用于服务端,包括:
获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;
响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;
响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;
将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或所述第二索引文件下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
2.根据权利要求1所述的流媒体数据传输方法,其特征在于,所述响应于检测到所述流媒体数据为点播模式,将所述流媒体数据切分为第一切片数据块,包括:
确定所述流媒体数据对应的媒体数据流单元;
获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,并确定与所述切片时长对应的多个媒体数据流单元的第一时间戳差值;
检测到所述第一时间戳差值大于或等于所述切片时长,基于所述第一时间戳差值对应的所述媒体数据流单元生成第一切片数据块。
3.根据权利要求2所述的流媒体数据传输方法,其特征在于,在所述基于所述第一时间戳差值对应的媒体数据流单元生成第一切片数据块之后,所述方法还包括:
实时获取所述第一切片数据块对应的时间戳,基于所述时间戳确定所述第一切片数据块的标识数据;
确定所述流媒体数据对应的第一起始切片数据块和第一终止切片数据块;
确定所述第一起始切片数据块对应的第一起始标识数据和所述第一终止切片数据块对应的第一终止标识数据;
根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件。
4.根据权利要求3所述的流媒体数据传输方法,其特征在于,所述根据所述第一起始标识数据、所述第一终止标识数据、所述第一时间戳差值,对所述流媒体数据进行索引处理以生成所述流媒体数据对应的第一索引文件,还包括:
确定所述第一切片数据块中包含关键帧的第一媒体数据流单元以及包含所述第一媒体数据流单元的第一切片数据块的第一标识数据;
获取所述第一媒体数据流单元在所述第一切片数据块中的第一位置信息,以及所述第一媒体数据流单元的第一相对时间戳;
基于所述第一标识数据、所述第一位置信息和所述第一相对时间戳生成关键帧索引数据表,并将所述关键帧索引数据表保存到所述第一起始切片数据块的第一属性数据单元中,以使所述客户端根据所述第一属性数据单元对所述原始媒体数据进行跳转播放。
5.根据权利要求1所述的流媒体数据传输方法,其特征在于,响应于检测到所述流媒体数据为直播模式,将所述流媒体数据切分为多个第二切片数据块,包括:
确定所述流媒体数据对应的媒体数据流单元;
获取预设的切片时长,根据所述切片时长对所述流媒体数据进行切割处理,确定所述切片时长对应的所述媒体数据流单元的第二时间戳差值;
检测到所述第二时间戳差值大于或等于所述切片时长,基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块;
获取预设的所述模板切片数据块对应的媒体数据流单元的数量,并根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块。
6.根据权利要求5所述的流媒体数据传输方法,其特征在于,在所述基于所述第二时间戳差值对应的所述媒体数据流单元生成模板切片数据块之后,所述方法还包括:
确定所述模板切片数据块对应的第二起始切片数据块;
获取所述第二起始切片数据块的时间戳信息,基于所述时间戳信息,对所述第二起始切片数据块进行命名处理以确定所述第二起始切片数据块的第二起始标识数据;
获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据;
在检测到所述流媒体数据切割完成时,确定所述模板切片数据块对应的第二终止切片数据块和所述第二终止切片数据块对应的第二终止标识数据,所述流媒体数据切割未完成时,所述第二终止标识数据始终为零。
7.根据权利要求6所述的流媒体数据传输方法,其特征在于,在所述获取预设的递增数值,并基于所述第二起始标识数据和递增数值对所述模板切片数据块进行命名处理,得到所述模板切片数据块的初始标识数据之后,所述方法还包括:
根据所述第二起始标识数据、所述第二终止标识数据、所述第二时间戳差值、所述媒体数据流单元的数量,构建所述第二索引文件。
8.根据权利要求5所述的流媒体数据传输方法,其特征在于,在所述根据所述媒体数据流单元的数量对所述模板切片数据块进行均匀切分以得到所述第二切片数据块,还包括:
基于所述媒体数据流单元的数量对所述第二切片数据块进行排序以确定所述第二切片数据块的第二位置信息;
基于所述初始标识数据和所述第二位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据。
9.根据权利要求8所述的流媒体数据传输方法,其特征在于,在所述基于所述初始标识数据和所述位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据之后,所述方法还包括:
通过所述位置信息相同的第二切片数据块构建所述第二切片数据流以使客户端基于对等网络根据所述第二切片数据流实现所述原始媒体数据的共享。
10.根据权利要求8所述的流媒体数据传输方法,其特征在于,在所述基于所述初始标识数据和所述位置信息,对所述第二切片数据块进行命名处理,以得到所述第二切片数据块的目标标识数据之后,还包括:
遍历所述第二切片数据块,确定所述第二切片数据块中包含关键帧的第二媒体数据流单元;
获取所述第二媒体数据流单元对应的所述目标标识数据;以及
获取所述流媒体数据对应的第二属性数据单元,将所述第二属性数据单元添加到所述第二媒体数据流单元中,并将所述目标标识数据作为索引标识数据以基于所述第二属性数据单元,通过所述索引标识数据实现所述第二切片数据块的加载;所述第二属性数据单元包括元数据标签数据单元、音频编码数据单元和视频编码数据单元。
11.一种流媒体数据传输方法,其特征在于,应用于客户端,包括:
响应检测到播放原始媒体数据的指令时,从服务器获取所述原始媒体数据对应的索引文件;其中所述索引文件包括第一索引文件或第二索引文件;
如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块以点播模式式播放所述原始媒体数据;
如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据。
12.根据权利要求11所述的流媒体数据传输方法,其特征在于,如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块通过点播模式播放所述原始媒体数据,包括:
响应于检测到所述第一切片数据块为第一起始切片数据块,获取所述第一起始切片数据块中的第一属性数据单元;
获取所述第一属性数据单元中的关键帧索引数据表;
根据所述关键帧索引数据表下载所述第一切片数据块以实现所述原始媒体数据的跳转播放。
13.根据权利要求12所述的流媒体数据传输方法,其特征在于,所述根据所述关键帧索引数据表下载所述第一切片数据块以实现所述原始媒体数据的跳转播放,包括:
响应于对时间进度条的跳转操作,确定跳转时间点;
根据所述跳转时间点在所述关键帧索引数据表中匹配得到与所述跳转时间点对应的目标时间点,并确定所述目标时间点对应的第一媒体数据流单元;
根据所述第一媒体数据流单元中包含的第一标识数据、位置信息和第一相对时间戳,确定所述目标时间点对应的所述第一切片数据块的标识数据;
基于所述第一标识数据更新所述第一起始标识数据得到更新后的第一起始标识数据,并根据所述更新后的第一起始标识数据更新所述第一索引文件得到更新后的第一索引文件,以根据所述更新后的第一索引文件下载所述第一切片数据块用于实现所述原始媒体数据的跳转播放。
14.根据权利要求11所述的流媒体数据传输方法,其特征在于,所述如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据,还包括:
获取预设的超时时长阈值和所述第二切片数据块对应的第二起始标识数据;
确定所述第二切片数据块的下载时长;
响应于检测到所述下载时长超过所述超时时长阈值,确定所述第二切片数据块对应的目标标识数据,并根据所述目标标识数据更新所述第二起始标识数据;
基于更新后的所述第二起始标识数据,更新所述第二索引文件以根据更新后的所述第二索引文件,重新下载所述第二切片数据块。
15.一种流媒体数据传输装置,其特征在于,应用于服务端,包括:
原始媒体数据转封装模块,用于获取原始媒体数据,并将所述原始媒体数据转封装为流媒体数据;
第一索引文件确定模块,用于响应于检测到所述流媒体数据的播放模式为点播模式,将所述流媒体数据切分为第一切片数据块,并确定所述第一切片数据块对应的第一索引文件;
第二索引文件确定模块,用于响应于检测到所述流媒体数据的播放模式为直播模式,将所述流媒体数据切分为第二切片数据块,并确定所述第二切片数据块对应的第二索引文件;
推送模块,用于将所述第一索引文件或所述第二索引文件推送到客户端,所述客户端通过所述第一索引文件或所述第二索引文件下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
16.一种流媒体数据传输装置,其特征在于,应用于客户端,包括:
索引文件获取模块,用于响应检测到播放原始媒体数据的指令时,从服务器获取所述原始媒体数据对应的索引文件;其中所述索引文件包括第一索引文件或第二索引文件;
点播模式播放模块,用于如果所述索引文件为第一索引文件时,则下载所述第一索引文件对应的第一切片数据块,以根据所述第一切片数据块通过点播模式播放所述原始媒体数据;
直播模式播放模块,用于如果所述索引文件为第二索引文件时,则下载所述第二索引文件对应的第二切片数据块,以根据所述第二切片数据块通过直播模式播放所述原始媒体数据。
17.一种电子设备,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至14中任一项所述的流媒体数据传输方法。
18.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述的流媒体数据传输方法。
19.一种流媒体数据传输系统,其特征在于,包括:
切片数据服务器,用于将获取的原始媒体数据转封装为流媒体数据,并将所述流媒体数据切分为第一切片数据块或第二切片数据块,并生成所述第一切片数据块对应的第一索引文件或所述第二切片数据块对应的第二索引文件;
内容分发服务器,与所述切片数据服务器通信连接,用于获取并存储所述切片数据服务器生成的所述第一切片数据块或所述第二切片数据块,以及所述第一索引文件或第二索引文件;
客户端,与所述内容分发服务器通信连接,用于响应于检测到播放原始媒体数据的指令,从所述切片数据服务器获取用于播放所述原始媒体数据的所述第一索引文件或所述第二索引文件,并通过所述第一索引文件或所述第二索引文件从所述内容分发服务器请求下载所述第一切片数据块或所述第二切片数据块,以实现所述原始媒体数据的播放。
20.根据权利要求19所述的流媒体数据传输系统,其特征在于,所述系统还包括:
共享服务器,与所述客户端通信连接,用于构建包含所述客户端的对等网络,并基于所述对等网络,在所述对等网络中的对等客户端请求播放所述原始媒体数据时,将所述客户端下载的所述第一切片数据块或所述第二切片数据块共享给所述对等客户端,以实现在所述对等客户端播放所述原始媒体数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011628449.4A CN112866730B (zh) | 2020-12-31 | 2020-12-31 | 流媒体数据传输方法及装置、系统、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011628449.4A CN112866730B (zh) | 2020-12-31 | 2020-12-31 | 流媒体数据传输方法及装置、系统、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866730A true CN112866730A (zh) | 2021-05-28 |
CN112866730B CN112866730B (zh) | 2022-09-13 |
Family
ID=75999619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011628449.4A Active CN112866730B (zh) | 2020-12-31 | 2020-12-31 | 流媒体数据传输方法及装置、系统、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112866730B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438506A (zh) * | 2021-06-02 | 2021-09-24 | 曙光网络科技有限公司 | 视频文件的还原方法、装置、计算机设备和存储介质 |
CN113485966A (zh) * | 2021-07-05 | 2021-10-08 | 中国联合网络通信集团有限公司 | 多媒体存储方法及装置、电子设备和可读存储介质 |
CN114006896A (zh) * | 2021-10-12 | 2022-02-01 | 深圳Tcl新技术有限公司 | 一种数据混合传输方法、装置、电子设备和存储介质 |
WO2023027399A1 (en) * | 2021-08-25 | 2023-03-02 | Samsung Electronics Co., Ltd. | Method and device for downloading streaming media file |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716662A (zh) * | 2013-12-05 | 2014-04-09 | 乐视网信息技术(北京)股份有限公司 | 一种混合传输方法及服务器 |
CN107864382A (zh) * | 2017-10-24 | 2018-03-30 | 广东省南方数字电视无线传播有限公司 | 视频播放方法、装置和系统 |
US10182269B1 (en) * | 2018-04-24 | 2019-01-15 | Verizon Patent And Licensing Inc. | HTTP live streaming delivery over multicast |
CN109587514A (zh) * | 2017-09-28 | 2019-04-05 | 中国移动通信有限公司研究院 | 一种视频播放方法、介质和相关装置 |
US10277929B1 (en) * | 2016-06-22 | 2019-04-30 | Amazon Technologies, Inc. | Live streaming media content using on-demand manifests |
CN111262886A (zh) * | 2020-03-26 | 2020-06-09 | 桂林电子科技大学 | 一种对等网络自适应流媒体点播系统及服务质量保证方法 |
-
2020
- 2020-12-31 CN CN202011628449.4A patent/CN112866730B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716662A (zh) * | 2013-12-05 | 2014-04-09 | 乐视网信息技术(北京)股份有限公司 | 一种混合传输方法及服务器 |
US10277929B1 (en) * | 2016-06-22 | 2019-04-30 | Amazon Technologies, Inc. | Live streaming media content using on-demand manifests |
CN109587514A (zh) * | 2017-09-28 | 2019-04-05 | 中国移动通信有限公司研究院 | 一种视频播放方法、介质和相关装置 |
CN107864382A (zh) * | 2017-10-24 | 2018-03-30 | 广东省南方数字电视无线传播有限公司 | 视频播放方法、装置和系统 |
US10182269B1 (en) * | 2018-04-24 | 2019-01-15 | Verizon Patent And Licensing Inc. | HTTP live streaming delivery over multicast |
CN111262886A (zh) * | 2020-03-26 | 2020-06-09 | 桂林电子科技大学 | 一种对等网络自适应流媒体点播系统及服务质量保证方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438506A (zh) * | 2021-06-02 | 2021-09-24 | 曙光网络科技有限公司 | 视频文件的还原方法、装置、计算机设备和存储介质 |
CN113485966A (zh) * | 2021-07-05 | 2021-10-08 | 中国联合网络通信集团有限公司 | 多媒体存储方法及装置、电子设备和可读存储介质 |
WO2023027399A1 (en) * | 2021-08-25 | 2023-03-02 | Samsung Electronics Co., Ltd. | Method and device for downloading streaming media file |
CN114006896A (zh) * | 2021-10-12 | 2022-02-01 | 深圳Tcl新技术有限公司 | 一种数据混合传输方法、装置、电子设备和存储介质 |
CN114006896B (zh) * | 2021-10-12 | 2023-08-01 | 深圳Tcl新技术有限公司 | 一种数据混合传输方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112866730B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112866730B (zh) | 流媒体数据传输方法及装置、系统、电子设备、存储介质 | |
CN105052107B (zh) | 使用质量信息进行媒体内容自适应传输 | |
CN112653700B (zh) | 一种基于webrtc网页视频通信的方法 | |
CN105979404A (zh) | 一种流媒体的处理方法及装置 | |
CN109348254B (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
US11736749B2 (en) | Interactive service processing method and system, device, and storage medium | |
US11490173B2 (en) | Switch of audio and video | |
CN110784758A (zh) | 投屏处理方法和装置 | |
KR101909250B1 (ko) | 단말의 음성 정보에 기초하여 서비스 타입을 결정하는 음성 인식 서버, 서비스 타입에 따라 단말로 컨텐츠를 제공하는 컨텐츠 서버, 단말 및 방법 | |
CN104967862A (zh) | 一种视频存储方法及装置和视频搜索方法及装置 | |
CN108933764B (zh) | 一种实现快速起播的方法和装置 | |
US20170155697A1 (en) | Method and device for processing streaming media | |
US20180302692A1 (en) | Providing Advanced Playback And Control Functionality To Video Client | |
US11196868B2 (en) | Audio data processing method, server, client and server, and storage medium | |
KR20120048525A (ko) | Sms를 통해 원격 디바이스를 제어하는 방법 및 이를 위한 장치 | |
US20220256226A1 (en) | Video data processing method, electronic device and computer-readable medium | |
US20210375326A1 (en) | Method, device, and computer program product for storing and providing video | |
CN111510755A (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
US20170142454A1 (en) | Third-party video pushing method and system | |
CN103152606A (zh) | 视频文件处理方法及装置、系统 | |
CN108769830B (zh) | 一种缓存视频的方法以及相关设备 | |
CN113873288A (zh) | 在直播过程中生成回放的方法和装置 | |
EP2882199B1 (en) | Method and apparatus for prefetching content in a data stream | |
CN109587517B (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
CN116634246A (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 |