The invention relates to a media playing method and device, the method comprises the following steps: the terminal browser loads the HLS media web page, extract the page video URL; according to the video URL, find the local terminal cache file corresponding to the presence of the media; if the terminal does not exist on the local media should cache files, create the corresponding URL download task, pre caching TS fragments in a predetermined section; received by users of HLS media web media files in the play instruction, play pre caching TS fragments, and determine whether the media file download is complete; when the media file is not downloaded, TS fragment not download media files to find. Multiple threads to download, and in the download process, continue to play the downloaded media files TS fragment. The invention realizes the buffer management of the video through the cache and the multiplex of the download, reduces the waiting time of the user, reduces the consumption of the flow, and improves the user playing experience.
【技术实现步骤摘要】
本专利技术涉及媒体播放
,尤其涉及一种媒体播放方法及装置。
技术介绍
目前,用户在使用移动客户端观看视频网站的视频时,视频网站大部分会基于HLS(HTTPLiveStreaming,实时流传输)协议分发视频流。HLS协议最大的优点是:部署方便,便于分发,对服务器的性能要求比较低,支持自适应码率播放。但是,HLS协议有一个很大的缺点是:HLS要求把视频流切分成大量的小TS视频文件,随着观看时间的增长,手机中会产生大量的碎片文件,对存储I/O要求相当苛刻,缓存或管理这些小切片文件非常复杂,稍微处理不慎,就会导致误删碎片文件、无法查找、影响请求速度等等,进而会影响用户的观看体验。目前的手机客户端视频播放器中,对于HLS视频缓存的管理都比较简单,只缓存一段TS(TransportStream,传输流)切分片段,并且没有做缓存与下载的复用功能。例如:对于一个HLS的视频源,播放器会下载当前播放位置的TS视频片段,当前TS片段播放完后,会立刻释放,接着下载下一个TS片段。现有技术方案会导致三个问题:(1)用户向视频开始位置方向做seek的操作时,播放器必须重新下载seek所在位置的TS片段,而该片段之前已经下载播放后被释放了,造成了流量的浪费,并且增加了用户seek后等待播放的时间;(2)用户向视频末尾方向做seek操作时,播放器只从之前播放位置向后多下载了一个TS片段,而用户的seek的位置较远,seek位置所在的TS片段还没有下载,用户就得等播放器下载当前TS后才能播放视频,降低了用户的播放体验;(3)如果用户播放该视频时,还想把该HLS视 ...
【技术保护点】
一种媒体播放方法,其特征在于,包括:在终端浏览器加载实时流传输HLS媒体网页时,抽取出所述HLS媒体网页中视频的统一资源定位符URL;根据所述视频的URL,查找终端本地是否存在对应的媒体缓存文件;若终端本地不存在对应的媒体缓存文件,则创建所述URL对应的下载任务,预缓存预定段的TS片段;在接收到用户对所述HLS媒体网页中的媒体文件的播放指令时,播放所述预缓存的TS片段,并判断所述媒体文件是否下载完成;当所述媒体文件未下载完成时,找到所述媒体文件中未下载的TS片段,以多线程方式进行下载,并在下载的过程中,持续播放已下载的媒体文件的TS片段。
【技术特征摘要】
1.一种媒体播放方法,其特征在于,包括:在终端浏览器加载实时流传输HLS媒体网页时,抽取出所述HLS媒体网页中视频的统一资源定位符URL;根据所述视频的URL,查找终端本地是否存在对应的媒体缓存文件;若终端本地不存在对应的媒体缓存文件,则创建所述URL对应的下载任务,预缓存预定段的TS片段;在接收到用户对所述HLS媒体网页中的媒体文件的播放指令时,播放所述预缓存的TS片段,并判断所述媒体文件是否下载完成;当所述媒体文件未下载完成时,找到所述媒体文件中未下载的TS片段,以多线程方式进行下载,并在下载的过程中,持续播放已下载的媒体文件的TS片段。2.根据权利要求1所述的方法,其特征在于,所述查找终端本地是否存在对应的媒体缓存文件的步骤之后,还包括:若终端本地存在对应的媒体缓存文件,则在接收到用户对所述HLS媒体网页中的媒体文件的播放指令时,播放所述终端本地的媒体缓存文件,并执行步骤:判断所述媒体文件是否下载完成。3.根据权利要求2所述的方法,其特征在于,所述判断所述媒体文件是否下载完成的步骤之后还包括:当所述媒体文件下载完成时,读取终端本地的媒体缓存文件进行播放。4.根据权利要求2所述的方法,其特征在于,所述当所述媒体文件未下载完成时,找到所述媒体文件中未下载的TS片段,以多线程方式进行下载的步骤包括:当所述媒体文件未下载完成时,按照从前向后的顺序,遍历所述媒体文件的各TS片段信息,找到所述媒体文件中未下载的TS片段;根据所述媒体文件中未下载的TS片段的链接信息,向媒体服务器发起
\tHTTP请求,以多线程方式下载TS片段。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:在媒体文件播放过程中,若接收到用户在播放进度条上向前或向后的拖动指令以改变播放位置时,获取改变后的当前播放位置对应的TS片段;判断所述当前播放位置对应的TS片段是否已经下载;若所述当前播放位置对应的TS片段没有下载,则下载当前播放位置对应的TS片段;若所述当前播放位置对应的TS片段已经下载,则播放已下载的TS片段。6.根据权利要求5所述的方法,其特征在于,所述判断所述当前播放位置对应的TS片段是否已经下载的步骤之后还包括:若所述当前播放位置对应的TS片段已经下载,则判断当前播放是否结束;若当前播放未结束,则按照从前向后的顺序,遍历所述媒体文件的各TS片段信息,找到所述媒体文件中未下载的TS片段进行下载;若当前播放已结束,则判断所述媒体文件是否被添加到了下载任务中,如果所述媒体文件已经添加了下载...
【专利技术属性】
技术研发人员:应玉龙,
申请(专利权)人:深圳市腾讯计算机系统有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。