基于hls流媒体的视频数据加速下载方法及装置的制造方法_2

文档序号:9847229阅读:来源:国知局
一项对应的分片文件对应一个URL地址,根据该分片文件对应的URL地址可从网络媒体服务器中获取到对应的分片文件。
[0060]在该步骤中,循环启动定时器,可根据需要设置一个定时时长,如定时时长5分钟。
[0061]可以理解的是,该网络媒体客户端设置在终端内,可以是终端内部的网络媒体播放器,如系统自带播放器或用户自行安装的播放器等。此处,终端可以是智能移动终端如智能手机、Ipad等或是智能电视等。本实施例中该方法主要应用于终端的视频播放数据下载,以减少终端在启动视频数据加速下载时,导致客户端播放异常情况。
[0062]Sll、在定时器时间达到时,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成,若该HLS流媒体的播放请求对应的HLS流媒体未下载完成,则执行步骤SI 2,否则执行步骤SI 5。
[0063 ]在该步骤中,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成,如果该HLS流媒体的播放请求对应的HLS流媒体下载完成,则不需要启动多线程加速下载模式下载该HLS流媒体对应的分片文件;如果HLS流媒体的播放请求对应的HLS流媒体未下载完成,则执行后续步骤,以确定是否需要启动多线程加速下载模式下载该HLS流媒体对应的分片文件。
[0064]—般的,在终端中预置一个分片文件下载列表,在该分片文件下载列表中记录该HLS流媒体的播放请求对应的HLS流媒体已下载的分片文件。在该步骤中,可通过查看该分片文件下载列表确定该HLS流媒体的播放请求对应的HLS流媒体是否下载完成。
[0065]S12、获取缓存区中的数据量。
[0066]具体的,缓存区存储了从网络媒体服务器下载且未发送给网络媒体客户端的HLS流媒体的分片文件。从网络媒体服务器下载的HLS流媒体的分片文件先保存到缓存区中,然后再将缓存区中的HLS流媒体的分片文件分送给网络媒体客户端,且在将缓存区中的HLS流媒体的分片文件分送给网络媒体客户端后,将该已分送的HLS流媒体的分片文件从缓存区中删除。
[0067]需要说明的是,该缓存区中的数据量是指缓存区中的分片文件的总时长,如当缓存区中分片文件有10个,每个分片文件的播放时长为10s,则该缓存区的数据量为100s。
[0068]S13、判断该数据量是否大于或等于第一预设阀值,若该数据量大于或等于第一预设阀值,则执行步骤S14。
[0069]具体的,该第一预设阀值可根据需要设置,该第一预设阀值为非零的自然数。可选的,可将该第一预设阀值设置为90s。
[0070]在该步骤中,判断该缓存区中的数据量是否大于或等于第一预设阀值,如果该缓存区中的数据量大于或等于第一预设阀值,则说明当前网络状态良好,已从网络媒体服务器中下载到一定数量的分片文件。
[0071 ] SI 4、启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
[0072]具体的,如果当前网络状态良好,则启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件,即在当前网络状态良好时,尽可能同时开启多个任务下载分片文件。如在一实施例中,最大允许的任务个数为8个任务,则启动8个任务同时下载HLS流媒体的分片文件,一个任务对应下载一个分片文件,一个任务下载完一个分片文件后,继续下载另一个分片文件。从网络媒体服务器中获取的HLS流媒体的分片文件将保存在缓存区中。
[0073]在该步骤中,启动多线程加速下载模式,以下载尽可能多的分片文件,使得在网络媒体客户端在请求分片文件,能及时为网络媒体客户端提供分片文件,避免网络媒体客户端出现播放异常的情况。
[0074]S15、关闭定时器。
[0075]采用上述实施例,通过在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;在定时器时间达到时,判断该HLS流媒体的播放请求对应的HLS流媒体是否下载完成;若该HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;判断该数据量是否大于或等于第一预设阀值;若该数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件;即可在网络状态良好时(缓存区中的数据量大于或等于第一预设阀值时),启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,缓存区中缓存尽量多的分片文件,减少网络媒体客户端出现播放异常的情况。
[0076]参照图2,图2为图1中步骤S14步骤的细化流程示意图,该步骤包括:
[0077]S141、判断当前是否通过非加速下载模式下载HLS流媒体的分片文件,若当前未通过非加速下载模式下载HLS流媒体的分片文件,则执行步骤S142,否则执行步骤S143。
[0078]具体的,HLS流媒体的下载模式包括多线程加速下载模式和非加速下载模式,在非加速下载模式下,终端中负责视频下载的模块或线程直接将从网络媒体服务器中获取的分片文件传输给网络媒体客户端,而不将从网络媒体服务器中获取的分片文件保存到缓存区中,即该终端中负责视频下载的模块或线程直接只是透传网络媒体客户端向网络媒体服务器请求的分片文件。非加速下载模式优先于多线程加速下载模式,在该步骤中,判断终端当前是否通过非加速下载模式下载HLS流媒体的分片文件,如果终端当前正通过非加速下载模式下载HLS流媒体的分片文件,则终端不会同时进行多线程加速下载模式。
[0079]S142、启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
[0080]如当前未通过非加速下载模式下载HLS流媒体的分片文件,则终端启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件。
[0081]S143、在非加速下载模式下载完成后且接收到该网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从该网络媒体服务器中获取HLS流媒体的分片文件。
[0082]当终端当前通过非加速下载模式下载HLS流媒体的分片文件时,则终端继续按照非加速下载模式由负责视频下载的模块或线程直接透传网络媒体客户端向网络媒体服务器请求的分片文件,在非加速下载模式下载完成后,检测是否接收到网络媒体客户端发送的分片获取请求,若接收到网络媒体客户端的分片获取请求,则启动多线程加速下载模式,并根据该分片获取请求向网络媒体客户端返回对应的分片文件。
[0083]采用上述实施例,先判断当前是否通过非加速下载模式下载HLS流媒体的分片文件,根据判断结果确定何时启动多线程加速下载模式;可使得终端在通过非加速下载模式下载HLS流媒体的分片文件时,继续按照当前下载方式,为网络媒体客户端提供先要播放的数据,在非加速下载模式下载完成后,再启动多线程加速下载模式,以下载更多的HLS流媒体的分片文件。
[0084]参照图3,图3为本发明基于HLS流媒体的视频数据加速下载方法的第二实施例的流程示意图。
[0085]基于上述基于HLS流媒体的视频数据加速下载方法的第一实施例,在步骤S13之后,该方法还包括:
[0086]S16、若该数据量小于第一预设阀值,则判断该数据量是否为零,若该数据量为零,则执行步骤S17。
[0087]在该步骤中,判断该缓存区中的数据量是否为零,如果该缓存区中的数据量为零,则说明当前网络状态较差,终端中负责视频下载的模块或线程没有从网络媒体服务器中下载到一定数量的分片文件,使得当网络媒体客户端请求分片文件时,终端无法为网络媒体客户端提供足够的分片文件,将导致网络媒体客户端无法正常播放,出现卡顿现象。
[0088]S17、获取在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长。
[0089]该预设时间通常小于定时器的定时时长。在该步骤中,获取在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件的第一总时长,如在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件有5个,每个分片文件的播放时长为10s,则该第一总时长为50s;如终端在当前时刻之前的预设时间内发送给网络媒体客户端的分片文件为O个,则第一总时长为O。
[0090]S18、判断该第一总时长是否为零,若该第一总时长不为零,则执行步骤S19,该第一总时长为零,则执行步骤S21。
[0091]S19、获取在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长。
[0092]在该步骤中,获取在当前时刻之前的预设时间内发送第一个分片文件给网络媒体客户端的时刻,并根据当前时刻,得到终端在当前时刻之前的预设时间内发送第一分片文件到当前时刻的间隔时间,即第二总时长。
[0093]S20、若该第二总时长大于第一总时长,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加I。
[0094]若该第二总时长大于第一总时长,则说明网络媒体客户端出现了卡顿现象(可能是播放真的卡顿了,也可能是用户暂停了网络媒体客户端播放,或其他情况)。在该步骤中,启动多线程加速下载模式,创建最大允许的任务个数,以从网络媒体服务器中获取HLS流媒体的分片文件。在该步骤中,还控制计数器将计数值加1,在初次启动定时器时,该计数器的计数值为0,在循环启动定时器时,该计数器的计数值根据实际情况保持或递增。该计时器记录网络状态较差的次数。
[0095]S21、获取计数器的计数值。
[0096]S22、若该计数器的计数值为非零,则控制计数器将计数值加I。
[0097]若该计数器的计数值为非零,则说明网络媒体客户端之前发生过卡顿现象,控制计数值的计数值加I,即递增网络状态较差的次数。
[0098]S23、重新获取计数器的计数值,并在重新获取的计数器的计
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1