CN105611328B - 基于hls流媒体的视频数据加速下载方法及装置 - Google Patents
基于hls流媒体的视频数据加速下载方法及装置 Download PDFInfo
- Publication number
- CN105611328B CN105611328B CN201510991756.1A CN201510991756A CN105611328B CN 105611328 B CN105611328 B CN 105611328B CN 201510991756 A CN201510991756 A CN 201510991756A CN 105611328 B CN105611328 B CN 105611328B
- Authority
- CN
- China
- Prior art keywords
- streaming media
- hls streaming
- slicing files
- hls
- downloading mode
- 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
Links
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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于HLS流媒体的视频数据加速下载方法,该方法包括:在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;若所述HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;判断所述数据量是否大于或等于第一预设阀值;若所述数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。本发明还公开了一种基于HLS流媒体的视频数据加速下载装置。采用本发明,可减少网络媒体客户端出现播放异常的情况。
Description
技术领域
本发明涉及流媒体技术领域,尤其涉及一种基于HLS流媒体的视频数据加速下载方法及装置。
背景技术
HLS(HTTP Live Streaming,超文本直播流)是基于HTTP的流媒体传输协议,可实现流媒体的直播和点播。协议支持媒体数据加密与流切换(例如不同码率),媒体数据创建后立即传输,播放接近实时。
HLS播放列表由一个有序的媒体URI列表和信息标签组成,每个媒体URI指向一个媒体文件(分片文件),这个媒体文件是单个连续媒体流上的一个片断。为了播放媒体流,客户端首先获取播放列表,然后获取并播放播放列表中的每个流媒体文件。
在现有技术中,基于HLS流媒体的视频数据下载加速可以通过多任务的形式实现,即启动多个任务同时下载多个分片文件并依序发送给客户端播放;在使用多个任务下载数据时,最多可以使速率提高达到两倍的程度,但是需要注意的是,每个单任务下载数据的速度反而降低了,而且是任务数越多单个任务的速率越慢,这就意味着播放视频时,不能随时随意的启动多任务进行码流的下载,如当多个任务同时下载多个分片文件时,当前需要播放的分片文件没有下载过来,而暂时不需要播放的分片文件却下载过来了,这将影响客户端正常播放。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于HLS流媒体的视频数据加速下载方法及装置,旨在解决的现有技术中,在启动视频数据加速下载时,容易导致客户端播放异常的技术问题。
为实现上述目的,本发明提供一种基于HLS流媒体的视频数据加速下载方法,该方法包括:
在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
若所述HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;
判断所述数据量是否大于或等于第一预设阀值;以及
若所述数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
优选地,所述启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件的步骤包括:
判断当前是否通过非加速下载模式下载HLS流媒体的分片文件;
若当前未通过非加速下载模式下载HLS流媒体的分片文件,则启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
优选地,所述启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件的步骤还包括:
若当前通过非加速下载模式下载HLS流媒体的分片文件,则在非加速下载模式下载完成后且接收到所述网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
优选地,判断所述数据量是否大于或等于第一预设阀值的步骤之后,该方法还包括:
若所述数据量小于第一预设阀值,则判断所述数据量是否为零;
若所述数据量为零,则获取当前时刻之前的预设时间内发送给所述网络媒体客户端的分片文件的第一总时长;
判断所述第一总时长是否为零;
若所述第一总时长不为零,则获取在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
若所述第二总时长大于第一总时长,则启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加1。
优选地,所述判断所述第一总时长是否为零的步骤之后,该方法还包括:
若所述第一总时长为零,则获取计数器的计数值;
若所述计数器的计数值为非零,则控制计数器将计数值加1;
重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
此外,为实现上述目的,本发明还提供一种基于HLS流媒体的视频数据加速下载装置,该装置包括:
启动模块,用于在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
第一判断模块,用于在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
第一获取模块,用于在所述HLS流媒体的播放请求对应的HLS流媒体未下载完成时,获取视频数据加速下载装置中的缓存区中的数据量;
第二判断模块,用于判断所述数据量是否大于或等于第一预设阀值;
第一控制模块,用于在所述数据量大于或等于第一预设阀值时,启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
优选地,所述第一控制模块包括:
第一判断单元,用于在所述数据量大于或等于第一预设阀值时,判断所述视频数据加速下载装置当前是否通过非加速下载模式下载HLS流媒体的分片文件;
第一控制单元,用于在所述视频数据加速下载装置当前未通过非加速下载模式下载HLS流媒体的分片文件时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
优选地,所述第一控制模块还包括:
第二控制单元,用于在所述视频数据加速下载装置当前通过非加速下载模式下载HLS流媒体的分片文件时,在非加速下载模式下载完成后且接收到所述网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
优选地,所述装置还包括:
第三判断模块,用于在所述第二判断模块的判断结果为所述数据量小于第一预设阀值时,判断所述数据量是否为零;
第二获取模块,用于在所述数据量为零时,获取所述视频数据加速下载装置在当前时刻之前的预设时间内发送给所述网络媒体客户端的分片文件的第一总时长;
第三获取模块,用于在所述第一总时长不为零时,获取所述视频数据加速下载装置在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
第三控制模块,用于在所述第二总时长大于第一总时长时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加1。
优选地,所述装置还包括:
第四获取模块,用于在所述第一总时长为零时,获取计数器的计数值;
第四控制模块,用于在所述计数器的计数值为非零时,控制计数器将计数值加1;
第五控制模块,用于重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
本发明的基于HLS流媒体的视频数据加速下载方法及装置,通过在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;若所述HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;判断所述数据量是否大于或等于第一预设阀值;若所述数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件;即可在网络状态良好时(缓存区中的数据量大于或等于第一预设阀值时),启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,在视频数据加速下载装置中缓存尽量多的分片文件,减少网络媒体客户端出现播放异常的情况。
附图说明
图1为本发明基于HLS流媒体的视频数据加速下载方法的第一实施例的流程示意图;
图2为图1中步骤S14的一实施例的细化流程示意图;
图3为本发明基于HLS流媒体的视频数据加速下载方法的第二实施例的流程示意图;
图4为本发明基于HLS流媒体的视频数据加速下载装置的第一实施例的结构示意图;
图5为本发明基于HLS流媒体的视频数据加速下载装置中的第一控制模块的细化结构示意图;
图6为本发明基于HLS流媒体的视频数据加速下载装置的第二实施例的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明基于HLS流媒体的视频数据加速下载方法的第一实施例的流程示意图,该方法包括:
S10、在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器。
该播放请求中可包括HLS流媒体的播放列表,播放列表中的每一项对应一个分片文件,每个分片有一个唯一的编号,如,其中一个分片的编号为100,各个分片文件按照播放顺序进行排序,先播放的分片文件的编号较小。该播放列表中的每一项对应的分片文件对应一个URL地址,根据该分片文件对应的URL地址可从网络媒体服务器中获取到对应的分片文件。
在该步骤中,循环启动定时器,可根据需要设置一个定时时长,如定时时长5分钟。
可以理解的是,该网络媒体客户端设置在终端内,可以是终端内部的网络媒体播放器,如系统自带播放器或用户自行安装的播放器等。此处,终端可以是智能移动终端如智能手机、Ipad等或是智能电视等。本实施例中该方法主要应用于终端的视频播放数据下载,以减少终端在启动视频数据加速下载时,导致客户端播放异常情况。
S11、在定时器时间达到时,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成,若该HLS流媒体的播放请求对应的HLS流媒体未下载完成,则执行步骤S12,否则执行步骤S15。
在该步骤中,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成,如果该HLS流媒体的播放请求对应的HLS流媒体下载完成,则不需要启动多线程加速下载模式下载该HLS流媒体对应的分片文件;如果HLS流媒体的播放请求对应的HLS流媒体未下载完成,则执行后续步骤,以确定是否需要启动多线程加速下载模式下载该HLS流媒体对应的分片文件。
一般的,在终端中预置一个分片文件下载列表,在该分片文件下载列表中记录该HLS流媒体的播放请求对应的HLS流媒体已下载的分片文件。在该步骤中,可通过查看该分片文件下载列表确定该HLS流媒体的播放请求对应的HLS流媒体是否下载完成。
S12、获取缓存区中的数据量。
具体的,缓存区存储了从网络媒体服务器下载且未发送给网络媒体客户端的HLS流媒体的分片文件。从网络媒体服务器下载的HLS流媒体的分片文件先保存到缓存区中,然后再将缓存区中的HLS流媒体的分片文件分送给网络媒体客户端,且在将缓存区中的HLS流媒体的分片文件分送给网络媒体客户端后,将该已分送的HLS流媒体的分片文件从缓存区中删除。
需要说明的是,该缓存区中的数据量是指缓存区中的分片文件的总时长,如当缓存区中分片文件有10个,每个分片文件的播放时长为10s,则该缓存区的数据量为100s。
S13、判断该数据量是否大于或等于第一预设阀值,若该数据量大于或等于第一预设阀值,则执行步骤S14。
具体的,该第一预设阀值可根据需要设置,该第一预设阀值为非零的自然数。可选的,可将该第一预设阀值设置为90s。
在该步骤中,判断该缓存区中的数据量是否大于或等于第一预设阀值,如果该缓存区中的数据量大于或等于第一预设阀值,则说明当前网络状态良好,已从网络媒体服务器中下载到一定数量的分片文件。
S14、启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
具体的,如果当前网络状态良好,则启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件,即在当前网络状态良好时,尽可能同时开启多个任务下载分片文件。如在一实施例中,最大允许的任务个数为8个任务,则启动8个任务同时下载HLS流媒体的分片文件,一个任务对应下载一个分片文件,一个任务下载完一个分片文件后,继续下载另一个分片文件。从网络媒体服务器中获取的HLS流媒体的分片文件将保存在缓存区中。
在该步骤中,启动多线程加速下载模式,以下载尽可能多的分片文件,使得在网络媒体客户端在请求分片文件,能及时为网络媒体客户端提供分片文件,避免网络媒体客户端出现播放异常的情况。
S15、关闭定时器。
采用上述实施例,通过在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;在定时器时间达到时,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成;若该HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;判断该数据量是否大于或等于第一预设阀值;若该数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件;即可在网络状态良好时(缓存区中的数据量大于或等于第一预设阀值时),启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,缓存区中缓存尽量多的分片文件,减少网络媒体客户端出现播放异常的情况。
参照图2,图2为图1中步骤S14步骤的细化流程示意图,该步骤包括:
S141、判断当前是否通过非加速下载模式下载HLS流媒体的分片文件,若当前未通过非加速下载模式下载HLS流媒体的分片文件,则执行步骤S142,否则执行步骤S143。
具体的,HLS流媒体的下载模式包括多线程加速下载模式和非加速下载模式,在非加速下载模式下,终端中负责视频下载的模块或线程直接将从网络媒体服务器中获取的分片文件传输给网络媒体客户端,而不将从网络媒体服务器中获取的分片文件保存到缓存区中,即该终端中负责视频下载的模块或线程直接只是透传网络媒体客户端向网络媒体服务器请求的分片文件。非加速下载模式优先于多线程加速下载模式,在该步骤中,判断终端当前是否通过非加速下载模式下载HLS流媒体的分片文件,如果终端当前正通过非加速下载模式下载HLS流媒体的分片文件,则终端不会同时进行多线程加速下载模式。
S142、启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
如当前未通过非加速下载模式下载HLS流媒体的分片文件,则终端启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件。
S143、在非加速下载模式下载完成后且接收到该网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
当终端当前通过非加速下载模式下载HLS流媒体的分片文件时,则终端继续按照非加速下载模式由负责视频下载的模块或线程直接透传网络媒体客户端向网络媒体服务器请求的分片文件,在非加速下载模式下载完成后,检测是否接收到网络媒体客户端发送的分片获取请求,若接收到网络媒体客户端的分片获取请求,则启动多线程加速下载模式,并根据该分片获取请求向网络媒体客户端返回对应的分片文件。
采用上述实施例,先判断当前是否通过非加速下载模式下载HLS流媒体的分片文件,根据判断结果确定何时启动多线程加速下载模式;可使得终端在通过非加速下载模式下载HLS流媒体的分片文件时,继续按照当前下载方式,为网络媒体客户端提供先要播放的数据,在非加速下载模式下载完成后,再启动多线程加速下载模式,以下载更多的HLS流媒体的分片文件。
参照图3,图3为本发明基于HLS流媒体的视频数据加速下载方法的第二实施例的流程示意图。
基于上述基于HLS流媒体的视频数据加速下载方法的第一实施例,在步骤S13之后,该方法还包括:
S16、若该数据量小于第一预设阀值,则判断该数据量是否为零,若该数据量为零,则执行步骤S17。
在该步骤中,判断该缓存区中的数据量是否为零,如果该缓存区中的数据量为零,则说明当前网络状态较差,终端中负责视频下载的模块或线程没有从网络媒体服务器中下载到一定数量的分片文件,使得当网络媒体客户端请求分片文件时,终端无法为网络媒体客户端提供足够的分片文件,将导致网络媒体客户端无法正常播放,出现卡顿现象。
S17、获取在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长。
该预设时间通常小于定时器的定时时长。在该步骤中,获取在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长,如在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件有5个,每个分片文件的播放时长为10s,则该第一总时长为50s;如终端在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件为0个,则第一总时长为0。
S18、判断该第一总时长是否为零,若该第一总时长不为零,则执行步骤S19,该第一总时长为零,则执行步骤S21。
S19、获取在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长。
在该步骤中,获取在当前时刻之前的预设时间内发送第一个分片文件给网络媒体客户端的时刻,并根据当前时刻,得到终端在当前时刻之前的预设时间内发送第一分片文件到当前时刻的间隔时间,即第二总时长。
S20、若该第二总时长大于第一总时长,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加1。
若该第二总时长大于第一总时长,则说明网络媒体客户端出现了卡顿现象(可能是播放真的卡顿了,也可能是用户暂停了网络媒体客户端播放,或其他情况)。在该步骤中,启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件。在该步骤中,还控制计数器将计数值加1,在初次启动定时器时,该计数器的计数值为0,在循环启动定时器时,该计数器的计数值根据实际情况保持或递增。该计时器记录网络状态较差的次数。
S21、获取计数器的计数值。
S22、若该计数器的计数值为非零,则控制计数器将计数值加1。
若该计数器的计数值为非零,则说明网络媒体客户端之前发生过卡顿现象,控制计数值的计数值加1,即递增网络状态较差的次数。
S23、重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
该次数阀值可根据需要设置,如设置为5次。在该步骤中,在该重新获取的计数值的计数值大于预设的次数阀值时,则说明检测到网络媒体客户端发生卡顿后又经过数次循环定时器到时,网络媒体客户端却一直没有接收到分片文件,此时应该启动多线程加载下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
采用上述实施例,在缓存区的数据量为零时,即该终端中未缓存到数据,则根据终端在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长和计数器的计数值(表示网络状态较差的次数)确定是否启动多线程加速下载模式,可更加准确的确定启动多线程加速下载模式的时机,以下载更多的HLS流媒体的分片文件。
参照图4,图4为本发明基于HLS流媒体的视频数据加速下载装置的第一实施例结构示意图,该装置包括:
启动模块10,用于在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
第一判断模块11,用于在定时器时间达到时,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
第一获取模块12,用于在该HLS流媒体的播放请求对应的HLS流媒体未下载完成时,获取视频数据加速下载装置中的缓存区中的数据量;
第二判断模块13,用于判断该数据量是否大于或等于第一预设阀值;
第一控制模块14,用于在该数据量大于或等于第一预设阀值,启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。该播放请求中可包括HLS流媒体的播放列表,播放列表中的每一项对应一个分片文件,每个分片有一个唯一的编号,如,其中一个分片的编号为100,各个分片文件按照播放顺序进行排序,先播放的分片文件的编号较小。该播放列表中的每一项对应的分片文件对应一个URL地址,根据该分片文件对应的URL地址可从网络媒体服务器中获取到对应的分片文件。
该启动模块10循环启动定时器,可根据需要设置一个定时时长,如定时时长5分钟。
可以理解的是,该网络媒体客户端设置在终端内,可以是终端内部的网络媒体播放器,如系统自带播放器或用户自行安装的播放器等。此处,终端可以是智能移动终端如智能手机、Ipad等或是智能电视等。
该第一判断模块11判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成,如果该HLS流媒体的播放请求对应的HLS流媒体下载完成,则不需要通过视频数据加速下载装置启动多线程加速下载模式下载该HLS流媒体对应的分片文件;如果HLS流媒体的播放请求对应的HLS流媒体未下载完成,则需要通过第一获取模块12、第二判断模块13和第一控制模块14确定是否需要通过视频数据加速下载装置启动多线程加速下载模式下载该HLS流媒体对应的分片文件。
一般的,在视频数据加速下载装置中预置一个分片文件下载列表,在该分片文件下载列表中记录该HLS流媒体的播放请求对应的HLS流媒体已下载的分片文件。该第一判断模块11可通过查看该分片文件下载列表确定该HLS流媒体的播放请求对应的HLS流媒体是否下载完成。
具体的,该视频数据加速下载装置中的缓存区存储了从网络媒体服务器下载且未发送给网络媒体客户端的HLS流媒体的分片文件。视频数据加速下载装置先将从网络媒体服务器下载的HLS流媒体的分片文件保存到缓存区中,在将缓存区中的HLS流媒体的分片文件分送给网络媒体客户端后,将该已分送的HLS流媒体的分片文件从缓存区中删除。该视频数据加速下载装置连接在网络媒体客户端与网络媒体服务器之间。
需要说明的是,该缓存区中的数据量是指缓存区中的分片文件的总时长,如当缓存区中分片文件有10个,每个分片文件的播放时长为10s,则该缓存区的数据量为100s。
具体的,该第一预设阀值可根据需要设置,该第一预设阀值为非零的自然数。可选的,可将该第一预设阀值设置为90s。
该第二判断模块13判断该缓存区中的数据量是否大于或等于第一预设阀值,如果该缓存区中的数据量大于或等于第一预设阀值,则说明当前网络状态良好,该视频数据加速下载装置已从网络媒体服务器中下载到一定数量的分片文件。
具体的,该第一控制模块14在该数据量大于或等于第一预设阀值(在该数据量大于或等于第一预设阀值时,说明当前网络状态良好),启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件。如在一实施例中,最大允许的任务个数为8个任务,则该第一控制模块14启动8个任务同时下载HLS流媒体的分片文件,一个任务对应下载一个分片文件,一个任务下载完一个分片文件后,继续下载另一个分片文件。从网络媒体服务器中获取的HLS流媒体的分片文件将保存在缓存区中。
该第一控制模块14启动多线程加速下载模式,以下载尽可能多的分片文件,使得在网络媒体客户端在请求分片文件,能及时为网络媒体客户端提供分片文件,避免网络媒体客户端出现播放异常的情况。
该第一控制模块14,还用于在该第一判断模块11的判断结果为该HLS流媒体的播放请求对应的HLS流媒体下载完成时,关闭定时器。
可以理解的是,该视频数据加速下载装置设置在终端内部,该网络媒体客户端与该视频数据加速下载装置设置在同一个终端内,当需要播放相应视频时,发送播放请求至该视频数据加速下载装置以获取相应视频数据,该终端通过该视频数据加速下载装置从网络媒体服务器获取视频数据。该视频数据加速下载装置可通过软件及/或硬件实现。
采用上述实施例,可在网络状态良好时(缓存区中的数据量大于或等于第一预设阀值时),启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,缓存区中缓存尽量多的分片文件,减少网络媒体客户端出现播放异常的情况。
进一步的,如图5所示,该第一控制模块14包括:
第一判断单元141,用于在该数据量大于或等于第一预设阀值时,判断视频数据加速下载装置当前是否通过非加速下载模式下载HLS流媒体的分片文件;
第一控制单元142,用于在该网络媒体客户端当前未通过非加速下载模式下载HLS流媒体的分片文件时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件;
第二控制单元143,用于在该网络媒体客户端当前通过非加速下载模式下载HLS流媒体的分片文件时,则在非加速下载模式下载完成后且接收到该网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
具体的,该视频数据加速下载装置中也可进行非加速下载模式,在非加速下载模式下,该视频数据加速下载装置将从网络媒体服务器中获取的分片文件传输给网络媒体客户端,而不将从网络媒体服务器中获取的分片文件保存到缓存区中,即该视频数据下载装置只是透传网络媒体客户端向网络媒体服务器请求的分片文件。
在视频数据加速下载装置中,非加速下载模式优先于多线程加速下载模式,该第一判断单元141判断视频数据加速下载装置当前是否通过非加速下载模式下载HLS流媒体的分片文件,如果该视频数据加速下载装置当前正通过非加速下载模式下载HLS流媒体的分片文件,则视频数据加速下载装置不会同时进行多线程加速下载模式。
如当前未通过非加速下载模式下载HLS流媒体的分片文件,则该第一控制单元142启动多线程加速下载模式,创建最大允许的任务个数,以从该网络媒体服务器中获取HLS流媒体的分片文件。
该第二控制单元143在该视频数据加速下载装置当前通过非加速下载模式下载HLS流媒体的分片文件时,则让该视频数据加速下载装置继续按照非加速下载模式透传网络媒体客户端向网络媒体服务器请求的分片文件,在非加速下载模式下载完成后,检测是否接收到网络媒体客户端发送的分片获取请求,若接收到网络媒体客户端的分片获取请求,则启动多线程加速下载模式,并根据该分片获取请求向网络媒体客户端返回对应的分片文件。
采用上述实施例,第一控制模块14先判断当前是否通过非加速下载模式下载HLS流媒体的分片文件,根据判断结果确定何时启动多线程加速下载模式;可使得终端在通过非加速下载模式下载HLS流媒体的分片文件时,继续按照当前下载方式,为网络媒体客户端提供先要播放的数据,在非加速下载模式下载完成后,再启动多线程加速下载模式,以下载更多的HLS流媒体的分片文件。
参照图6,图6为本发明基于HLS流媒体的视频数据加速下载装置的第二实施例的结构示意图。
基于上述基于HLS流媒体的视频数据加速下载装置的第一实施例,该装置还包括:
第三判断模块15,用于在该第二判断模块的判断结果为该数据量小于第一预设阀值时,判断该数据量是否为零;
第二获取模块16,用于在该数据量为零时,获取该视频数据加速下载装置在当前时刻之前的预设时间内发送给该网络媒体客户端的分片文件的第一总时长;
第三获取模块17,用于在该第一总时长不为零时,获取该视频数据加速下载装置在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
第三控制模块18,用于在该第二总时长大于第一总时长时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加1;
第四获取模块19,用于在该第一总时长为零时,获取计数器的计数值;
第四控制模块20,用于在该计数器的计数值为非零时,控制计数器将计数值加1;
第五控制模块21,用于重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
该第三判断模块15判断该缓存区中的数据量是否为零,如果该缓存区中的数据量为零,则说明当前网络状态较差,该视频数据加速下载装置没有从网络媒体服务器中下载到一定数量的分片文件,使得当网络媒体客户端向该视频数据加速下载装置请求分片文件时,该视频数据加速下载装置无法为网络媒体客户端提供足够的分片文件,将导致网络媒体客户端无法正常播放,出现卡顿现象。
该预设时间通常小于定时器的定时时长。该第二获取模块16获取视频数据加速下载装置在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长,如该视频数据加速下载装置在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件有5个,每个分片文件的播放时长为10s,则该第一总时长为50s;如该视频数据加速下载装置在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件为0个,则第一总时长为0。
该第三获取模块17获取视频数据加速下载装置在当前时刻之前的预设时间内发送第一个分片文件给网络媒体客户端的时刻,并根据当前时刻,得到视频数据加速下载装置在当前时刻之前的预设时间内发送第一分片文件到当前时刻的间隔时间,即第二总时长。
若该第二总时长大于第一总时长,则说明网络媒体客户端出现了卡顿现象(可能是播放真的卡顿了,也可能是用户暂停了网络媒体客户端播放,或其他情况)。该第三控制模块18控制视频数据加速下载装置启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件。该第三第一控制模块14还控制计数器将计数值加1,在初次启动定时器时,该计数器的计数值为0,在循环启动定时器时,该计数器的计数值根据实际情况保持或递增。该计时器记录网络状态较差的次数。
若该计数器的计数值为非零,则说明网络媒体客户端之前发生过卡顿现象,该第四控制模块20控制计数值的计数值加1,即递增网络状态较差的次数。
该次数阀值可根据需要设置,如设置为5次。在该重新获取的计数值的计数值大于预设的次数阀值时,则说明检测到网络媒体客户端发生卡顿后又经过数次循环定时器到时,网络媒体客户端却一直没有接收到分片文件,则该第五控制模块21控制视频数据加载装置启动多线程加载下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
采用上述实施例,在缓存区的数据量为零时,即该终端中未缓存到数据,则根据终端在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长和计数器的计数值(表示网络状态较差的次数)确定是否启动多线程加速下载模式,可更加准确的确定启动多线程加速下载模式,以下载更多的HLS流媒体的分片文件。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于HLS流媒体的视频数据加速下载方法,其特征在于,该方法包括:
在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
若所述HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量,其中,所述缓存区中的数据量为所述缓存区中存储的从网络媒体服务器下载且未发送给网络媒体客户端的HLS流媒体的分片文件的总播放时长;
判断所述数据量是否大于或等于第一预设阀值;以及
若所述数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
2.如权利要求1所述的基于HLS流媒体的视频数据加速下载方法,其特征在于,所述HLS流媒体的下载模式包括多线程加速下载模式和非加速下载模式,所述启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件的步骤包括:
判断当前是否通过非加速下载模式下载HLS流媒体的分片文件;
若当前未通过非加速下载模式下载HLS流媒体的分片文件,则启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件;
其中,非加速下载模式是将从网络媒体服务器中获取的HLS流媒体的分片文件传输给网络媒体客户端,而不将从网络媒体服务器中获取的HLS流媒体的分片文件保存到所述缓存区中。
3.如权利要求2所述的基于HLS流媒体的视频数据加速下载方法,其特征在于,所述启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件的步骤还包括:
若当前通过非加速下载模式下载HLS流媒体的分片文件,则在非加速下载模式下载完成后且接收到所述网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
4.如权利要求1所述的基于HLS流媒体的视频数据加速下载方法,其特征在于,所述判断所述数据量是否大于或等于第一预设阀值的步骤之后,该方法还包括:
若所述数据量小于第一预设阀值,则判断所述数据量是否为零;
若所述数据量为零,则获取在当前时刻之前的预设时间内发送给所述网络媒体客户端的分片文件的第一总时长;
判断所述第一总时长是否为零;
若所述第一总时长不为零,则获取在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
若所述第二总时长大于第一总时长,则启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加1。
5.如权利要求4所述的基于HLS流媒体的视频数据加速下载方法,其特征在于,所述判断所述第一总时长是否为零的步骤之后,该方法还包括:
若所述第一总时长为零,则获取计数器的计数值;
若所述计数器的计数值为非零,则控制计数器将计数值加1;
重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
6.一种基于HLS流媒体的视频数据加速下载装置,其特征在于,该装置包括:
启动模块,用于在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
第一判断模块,用于在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
第一获取模块,用于在所述HLS流媒体的播放请求对应的HLS流媒体未下载完成时,获取视频数据加速下载装置中的缓存区中的数据量,其中,所述缓存区中的数据量为所述缓存区中存储的从网络媒体服务器下载且未发送给网络媒体客户端的HLS流媒体的分片文件的总播放时长;
第二判断模块,用于判断所述数据量是否大于或等于第一预设阀值;
第一控制模块,用于在所述数据量大于或等于第一预设阀值时,启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
7.如权利要求6所述的基于HLS流媒体的视频数据加速下载装置,其特征在于,所述HLS流媒体的下载模式包括多线程加速下载模式和非加速下载模式,所述第一控制模块包括:
第一判断单元,用于在所述数据量大于或等于第一预设阀值时,判断所述视频数据加速下载装置当前是否通过非加速下载模式下载HLS流媒体的分片文件;
第一控制单元,用于在所述视频数据加速下载装置当前未通过非加速下载模式下载HLS流媒体的分片文件时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件;
其中,非加速下载模式是将从网络媒体服务器中获取的HLS流媒体的分片文件传输给网络媒体客户端,而不将从网络媒体服务器中获取的HLS流媒体的分片文件保存到所述缓存区中。
8.如权利要求7所述的基于HLS流媒体的视频数据加速下载装置,其特征在于,所述第一控制模块还包括:
第二控制单元,用于在所述视频数据加速下载装置当前通过非加速下载模式下载HLS流媒体的分片文件时,则在非加速下载模式下载完成后且接收到所述网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
9.如权利要求1所述的基于HLS流媒体的视频数据加速下载装置,其特征在于,所述装置还包括:
第三判断模块,用于在所述第二判断模块的判断结果为所述数据量小于第一预设阀值时,判断所述数据量是否为零;
第二获取模块,用于在所述数据量为零时,获取所述视频数据加速下载装置在当前时刻之前的预设时间内发送给所述网络媒体客户端的分片文件的第一总时长;
第三获取模块,用于在所述第一总时长不为零时,获取所述视频数据加速下载装置在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
第三控制模块,用于在所述第二总时长大于第一总时长时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加1。
10.如权利要求9所述的基于HLS流媒体的视频数据加速下载装置,其特征在于,所述装置还包括:
第四获取模块,用于在所述第一总时长为零时,获取计数器的计数值;
第四控制模块,用于在所述计数器的计数值为非零时,控制计数器将计数值加1;
第五控制模块,用于重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510991756.1A CN105611328B (zh) | 2015-12-25 | 2015-12-25 | 基于hls流媒体的视频数据加速下载方法及装置 |
PCT/CN2016/083871 WO2017107378A1 (zh) | 2015-12-25 | 2016-05-30 | 基于hls流媒体的视频数据加速下载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510991756.1A CN105611328B (zh) | 2015-12-25 | 2015-12-25 | 基于hls流媒体的视频数据加速下载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105611328A CN105611328A (zh) | 2016-05-25 |
CN105611328B true CN105611328B (zh) | 2019-01-01 |
Family
ID=55990819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510991756.1A Active CN105611328B (zh) | 2015-12-25 | 2015-12-25 | 基于hls流媒体的视频数据加速下载方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105611328B (zh) |
WO (1) | WO2017107378A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105611328B (zh) * | 2015-12-25 | 2019-01-01 | 深圳Tcl新技术有限公司 | 基于hls流媒体的视频数据加速下载方法及装置 |
CN109803167A (zh) * | 2017-11-17 | 2019-05-24 | 中国电信股份有限公司 | 流媒体文件传输方法、流媒体客户端和计算机可读存储介质 |
CN110149524B (zh) * | 2018-02-11 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 直播流切片系统、直播流切片方法、装置及可读介质 |
CN109587580A (zh) * | 2018-11-15 | 2019-04-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于自适应cdn的视频分段下载方法及系统 |
CN109640053A (zh) * | 2018-12-27 | 2019-04-16 | 四川九洲电器集团有限责任公司 | 一种采集多协议流媒体设备异常实时流方法 |
US11622164B2 (en) | 2019-07-12 | 2023-04-04 | Carrier Corporation | System and method for streaming video/s |
CN110471709B (zh) * | 2019-07-15 | 2022-12-06 | 北京字节跳动网络技术有限公司 | 一种加速网页打开速度的方法、装置、介质和电子设备 |
CN112243138B (zh) * | 2019-07-16 | 2023-04-11 | 中国移动通信集团浙江有限公司 | Cdn网络故障诊断方法、装置、设备和存储介质 |
CN110769326B (zh) * | 2019-11-21 | 2022-03-01 | 广州方硅信息技术有限公司 | 视频切片文件的加载、视频文件的播放方法和装置 |
CN112261118B (zh) * | 2020-10-19 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 多媒体数据的异常检测方法、终端及服务器 |
CN112527811A (zh) * | 2020-12-22 | 2021-03-19 | 山东鲁能软件技术有限公司 | 一种指标监控数据实时更新方法及系统 |
CN114666627A (zh) * | 2022-03-01 | 2022-06-24 | 深圳市博安智控科技有限公司 | 一种流媒体视频预加载的方法、装置、电子设备以及存储介质 |
CN114679438B (zh) * | 2022-03-03 | 2024-04-30 | 上海艾策通讯科技股份有限公司 | 流媒体数据传输方法、装置、计算机设备和存储介质 |
CN116192816B (zh) * | 2022-06-01 | 2024-08-13 | 中兴通讯股份有限公司 | 数据传输方法、发送服务器、接收服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103327415A (zh) * | 2013-06-05 | 2013-09-25 | 北京奇虎科技有限公司 | 一种加速网络视频下载的方法和装置 |
CN103957431A (zh) * | 2014-04-30 | 2014-07-30 | 深圳创维数字技术股份有限公司 | 一种流媒体传输控制方法及流媒体服务器 |
CN104320424A (zh) * | 2014-11-20 | 2015-01-28 | 三星电子(中国)研发中心 | 一种流媒体分片下载方法和装置 |
WO2015150812A1 (en) * | 2014-04-03 | 2015-10-08 | Orbital Multi Media Holdings Corporation | Data flow control method and system |
CN105025330A (zh) * | 2014-04-30 | 2015-11-04 | 深圳Tcl新技术有限公司 | 基于dash协议的媒体文件播控方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105611328B (zh) * | 2015-12-25 | 2019-01-01 | 深圳Tcl新技术有限公司 | 基于hls流媒体的视频数据加速下载方法及装置 |
-
2015
- 2015-12-25 CN CN201510991756.1A patent/CN105611328B/zh active Active
-
2016
- 2016-05-30 WO PCT/CN2016/083871 patent/WO2017107378A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103327415A (zh) * | 2013-06-05 | 2013-09-25 | 北京奇虎科技有限公司 | 一种加速网络视频下载的方法和装置 |
WO2015150812A1 (en) * | 2014-04-03 | 2015-10-08 | Orbital Multi Media Holdings Corporation | Data flow control method and system |
CN103957431A (zh) * | 2014-04-30 | 2014-07-30 | 深圳创维数字技术股份有限公司 | 一种流媒体传输控制方法及流媒体服务器 |
CN105025330A (zh) * | 2014-04-30 | 2015-11-04 | 深圳Tcl新技术有限公司 | 基于dash协议的媒体文件播控方法和装置 |
CN104320424A (zh) * | 2014-11-20 | 2015-01-28 | 三星电子(中国)研发中心 | 一种流媒体分片下载方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105611328A (zh) | 2016-05-25 |
WO2017107378A1 (zh) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105611328B (zh) | 基于hls流媒体的视频数据加速下载方法及装置 | |
CN103327415B (zh) | 一种加速网络视频下载的方法和装置 | |
CN103475932A (zh) | 网络视频的无缝在线播放方法及装置、网络电视系统 | |
CN111064954B (zh) | 一种可供旁路视频播放质量评价使用的方法和装置 | |
CN100393068C (zh) | 一种缓存流媒体数据的方法 | |
CN104506950A (zh) | 网络流媒体播放中的多线程下载方法、装置及下载设备 | |
CN106550284B (zh) | 一种播放分片视频的方法及装置 | |
CN111582924B (zh) | 一种云游戏的广告投放系统、方法及装置 | |
CN104202655B (zh) | 一种音视频文件下载方法及装置 | |
CN103414959B (zh) | 一种加快网络视频播放速度的方法和装置 | |
CN102903377B (zh) | 一种播放包含多视频段的视频的方法及装置 | |
CN105812840A (zh) | 一种直播视频传输方法、装置,以及视频直播系统 | |
CN106791930B (zh) | 一种视频处理方法和装置 | |
CN105245945A (zh) | 网络多媒体数据的播放方法及播放系统 | |
CN105979276A (zh) | 一种基于播放器的播放方法及装置 | |
CN108924630B (zh) | 一种显示缓存进度的方法和播放设备 | |
CN106851326A (zh) | 一种播放方法和装置 | |
CN106412630B (zh) | 视频列表切换控制方法及装置 | |
CN106303563B (zh) | 流媒体在线播放方法、装置、执行终端以及存储介质 | |
CN105872764A (zh) | 基于p2p网络的数据下载方法及装置 | |
CN103118277A (zh) | 一种视频加速方法 | |
CN105025343A (zh) | 一种ts视频的缓存方法及装置 | |
CN105760377A (zh) | 一种信息处理方法和装置 | |
CN109561347A (zh) | 一种互联网视频播放质量判定方法及系统 | |
CN108241693A (zh) | 同步数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |