提高起播速度的方法、视频播放器及电子装置的制造方法

文档序号:10539513阅读:227来源:国知局
提高起播速度的方法、视频播放器及电子装置的制造方法
【专利摘要】本发明实施例公开了一种提高起播速度的方法、视频播放器及电子装置,该方法包括:向服务器发出下载视频文件的请求;读取服务器返回的视频文件的前三片段数据的网络地址;开启主线程及二个次线程;接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;接收用户在小范围内拖动进度条的操作,将进度条定位至相应的位置;获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号;使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放。从而解决了执行拖动操作后起播速度较慢的问题。
【专利说明】
提高起播速度的方法、视频播放器及电子装置
技术领域
[0001]本发明实施例涉及视频播放技术领域,尤其涉及一种提高起播速度的方法、视频播放器及电子装置。
【背景技术】
[0002]随着科学技术的发展,信息传播越来越快,多媒体技术发展日益更新,视频成为信息传播的重要途径,越来越多的用户选择观看视频来获取各种信息。
[0003]通常,我们通过HLS(Http Live Streaming)协议直播或点播观看网络视频。所述HLS中规定的视频文件包括M3U8描述信息及TS媒体文件。
[0004]在播放TS媒体文件时,用户经常会拖动进度条(seek操作)以实现跳过某些内容等。如图1所示,在步骤S150中,当播放器接收到用户的seek操作时,将进度条定位至相应的位置,获取所述进度条定位位置对应的时间点,并依据该时间点计算对应的片段数据的ID号,然后根据ID号获取M3U8描述信息中该片段的网络地址;接着重复执行步骤S120-S140以实现向服务器发送下载请求、接收服务器返回的数据进行播放并由主线程进行下一片段数据的下载。在用户执行seek操作后,播放器一直处于等待获取数据的状态,直到获取了下载的数据后才能开始继续播放,从执行seek操作到再次播放会停顿较长时间。因此起播速度较慢会给用户带来较差的体验度。

【发明内容】

[0005]本发明实施例要解决的技术问题在于,提出一种提高起播速度的方法,以解决执行seek操作后起播速度较慢的问题。
[0006]本发明实施例另一个要解决的技术问题在于,提出一种视频播放器,以解决执行seek操作后起播速度较慢的问题。
[0007]本发明实施例又一个要解决的技术问题在于,提出一种电子装置,以解决执行seek操作后起播速度较慢的问题。
[0008]为解决上述技术问题,本发明实施例首先提供一种提高起播速度的方法,包括:
SI:向服务器发出下载视频文件的请求;
S2:读取服务器返回的视频文件的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;
S3:开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;
S4:接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;
S5:播放器当前播放的片段数据对应的线程继续下载下一个片段数据;
S6:接收用户在小范围内拖动进度条的操作,将进度条定位至相应的位置;获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号,若计算出的对应的片段的ID号大于已经下载到的ID号范围,则跳转至步骤S3;
S7:播放器使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放;及
S8:重复步骤S3-S5直到接收到停止下载视频文件的指令或所述视频文件已下载完毕。[0009 ]另一方面,本发明实施例还提供了一种视频播放器,包括:
请求模块,用于向服务器发出下载视频文件的请求;
播放模块,用于读取服务器返回的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;将播放器当前播放的片段数据对应的线程释放,所述释放的线程继续下载下一个片段数据;
拖动模块,用于接收用户在小范围内拖动进度条的操作,并将进度条定位至相应的位置;
计算模块,用于获取所述进度条定位的时间点,并依据所述时间点计算对应的片段数据的网络地址;
所述播放模块,还用于依据网络地址从已下载的片段数据中获取对应的片段数据,将获取的片段数据通过所述主线程送至播放器进行播放,所述二个次线程分别获取该片段数据之后的二个片段数据,并依次播放。
[0010]又一方面,本发明实施例还提供了一种电子装置,包括如上所述的视频播放器。
[0011]本发明具有如下有益效果:本发明实施例中提供的提高起播速度的方法、视频播放器及电子装置,通过开启三个线程进行分段式下载数据以保证播放器的缓存内一直有三个片段数据,在执行seek操作后可直接从缓存中获取对应的片段数据进行播放,由于无需再次向服务器发送下载请求及接收服务器返回的数据,因此大大提高起播速度从而提升了用户的使用体验。
【附图说明】
[0012]图1为现有技术提供的一种执行seek操作到再次播放的流程示意图。
[0013]图2为本发明实施例一提供的一种提高起播速度的方法的流程示意图。
[0014]图3为本发明实施例二提供的一种提高起播速度的视频播放器的结构示意图。
【具体实施方式】
[0015]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0016]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各项步骤的顺序可以被重新安排。当其步骤完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0017]实施例一
图2为本发明实施例一提供的一种提高起播速度的方法流程示意图,该方法可以由视频播放器执行,其中该视频播放器可由软件和/或硬件实现,一般可集成在电子装置中。
[0018]所述电子装置可以是手机、平板电脑、IPAD、DVD或笔记本电脑等任一电子设备。
[0019]参见图2,本实施例的提高起播速度的方法包括如下步骤:
步骤S1、向服务器发出下载视频文件的请求。
[0020]具体的,当需要下载一视频文件,用户可以点击相关网络地址以向所述服务器发出下载请求。在本实施例中,所述视频文件是HLS中规定的MPEG2-TS视频文件。
[0021 ]通常,HLS是基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在1S系统、安卓及WINDOWS系统,为安装有这些系统的设备提供音视频直播和点播方案。HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。要实现HLS点播,重点在于对媒体文件分段。
[0022]优选的,用户可通过搜索页面输入的待下载的视频文件的网络地址以向服务器发出下载请求;或者,用户通过搜索页面输入的关键词以获取至少一网络地址以供用户选择,当用户选择并点击其中一网络地址后,则向服务器发出下载请求。
[0023]所述服务器存储着网络资源,比如视频文件、文档和图像等。
[0024]步骤S2、读取服务器返回的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址。
[0025]通常,所述HLS中规定的MPEG2-TS视频文件包括M3U8描述信息及TS媒体文件。所述MPEG2-TS视频文件进行切片后得到多个TS媒体文件,然后用M3U8描述信息建立索引,由播放器自动加载和播放。
[0026]在本实施例中,服务器接收到下载视频文件的请求后,返回M3U8描述信息给播放器,播放器解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址。
[0027]示例性的,所述视频文件前三片段数据“segmentO”、“segment I”及“segment 2”的网络地址如下:
#EXTINF:5.120,
/play/slices/0.ts?id=segment=0#EXTINF:10.000,
/play/slices/1.ts?id=segment=l#EXTINF:10.000,
/play/slices/2.ts?id=segment=2
步骤S3、播放器开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求。
[0028]为了加快下载速度,所述播放器开启多个线程。在本实施例中,所述播放器开启主线程及二个次线程共三个线程,所述主线程及二个次线程同时向服务器分别发出下载“segment O”、“segment I”及“segment 2”片段数据的请求。
[0029]进一步的,所述主线程及二个次线程同时向服务器发出下载数据的请求包括所述视频文件的前后连接的三个片段数据的网络地址。
[0030]步骤S4:接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放。
[0031]具体的,所述服务器接收到下载“segmentO”、“segment I”及“segment 2”片段数据的请求后,分别向主线程和二个次线程返回segment O”、“segment I”及“segment 2”片段数据,所述主线程和二个次线程分别将下载到的数据依次传送给视频播放器以进行播放。首先,主线程将“segment O”传送给视放器进行播放;当“segment O”片段数据播放完毕后,第一次线程将“segment I”片段数据送入播放器进行播放;当“segment I”片段数据播放完毕后,第二次线程将“segment 2”片段数据送入播放器进行播放。
[0032]步骤S5:播放器当前播放的片段数据对应的线程继续下载下一个片段数据。
[0033]具体的,当主线程将“segmentO”片段数据传送至播放器进行播放时,继续下载下一个片段数据“segment 3”片段数据;当第一次线程将“segment I”片段数据传送至播放器进行播放时,继续下载下一个片段数据“segment 4”片段数据,如此反复,一直保持三个下载线程不断的进行下载数据工作,播放器也一直都拥有后面的3个segment片段数据等待播放。
[0034]步骤S6:接收用户在小范围内拖动进度条的操作(seek操作),将进度条定位至相应的位置;获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号,若计算出的对应的片段的ID号大于已经下载到的ID号范围,则跳转至步骤S3。
[0035]通常,所述seek操作的长度分为小范围和大范围两种,本实施例提到的seek操作专指小范围,具体是指用户拖动进度条的范围不超过前后连接的三个片段数据对应的时长范围。即在M3U8描述信息中的前后连接的三个segment片段所在的时长范围内。
[0036]步骤S7:播放器使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放。
[0037]由于用户执行的是小范围内seek操作,而通过S4步骤中即已下载了该小范围seek操作的拖动范围内的全部片段数据,并存在缓存中,因此,仅需要依据该片段数据的ID号直接获取该片段数据即可进行播放。由于不需要再下载片段数据,因此,本发明的方式在执行seek操作后,可以很快速地再次播放,即大大提高起播速度。在本步骤中,对于比进度条定位的时间点所对应的ID号要小的其他ID号所对应的片段数据,可以全部擦除。
[0038]优选的,为了使所述视频文件的下载及播放流畅,执行步骤S7又重复执行S3-S5步骤以实现下一片段数据的下载及播放。
[0039]进一步的,本实施例的方法还包括步骤S8:当接收到停止下载视频文件的指令或视频文件下载完毕时,停止播放视频文件。
[0040]本发明实施例的技术方案,通过向服务器发出下载视频文件的请求;读取服务器返回的视频文件的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;播放器当前播放的片段数据对应的线程继续下载下一个片段数据;接收用户在小范围内拖动进度条的操作,将进度条定位至相应的位置;获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号,播放器使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放。由于在执行seek操作后,无需按照现有方式去向服务器发送下载请求和接收服务器返回的数据,也不用去计算下载到的数据量,而是直接从缓存buffer中获取该片段数据以送入播放器进行播放,因此可以很快速地再次播放,即大大提高起播速度从而提高用户体验度。
[0041 ] 实施例二
图3为本发明实施例二提供的一种视频播放器的结构示意图。
[0042]本实施例的视频播放器具体包括:请求模块30、播放模块31、拖动模块32及计算模块33。
[0043]其中,所述请求模块30,用于向服务器发出下载视频文件的请求。
[0044]所述播放模块31,用于读取服务器返回的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;播放器开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;播放器当前播放的片段数据对应的线程继续下载下一个片段数据。
[0045]所述拖动模块32,用于接收用户在小范围内拖动进度条的操作,并将进度条定位至相应的位置。
[0046]所述计算模块33,用于获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号。
[0047]所述播放模块31,使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放。
[0048]优选的,为了使所述视频文件的下载及播放流畅,在执行完seek操作后,播放完当前片段数据后又重复执行上述步骤以实现后面片段数据的下载及播放,如此反复,直到接收到停止下载视频文件的指令或所述视频文件已下载完毕。
[0049]优选的,上述方案基础上,还包括:
判断模块,用于当接收到停止下载视频文件的指令或视频文件下载完毕时,停止播放视频文件。
[0050]本实施例的技术方案提供的视频播放器,其中利用请求模块30向服务器发出下载视频文件的请求;利用播放模块31读取服务器返回的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;播放器开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;播放器当前播放的片段数据对应的线程继续下载下一个片段数据;利用拖动模块32将进度条定位至相应的位置;利用计算模块33获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号;及利用所述播放模块31使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放。由于在执行seek操作后,无需按照现有方式去向服务器发送下载请求和接收服务器返回的数据,也不用去计算下载到的数据量,直接从缓存buffer中获取该片段数据以送入播放器进行播放,因此可以很快速地再次播放,即大大提高起播速度从而提高用户体验度。
[0051 ] 实施例三
本实施例三提供了一种电子装置,该电子装置包括本发明实施例中所述的视频播放器,可以通过执行本发明实施例中的提高起播速度的方法以实现seek操作后可以快速的再次播放。
[0052]所述电子装置具体可以是手机、平板电脑、IPAD、DVD或笔记本电脑等任一种电子设备。
[0053]本发明实施例的电子可以通过向服务器发出下载视频文件的请求;向服务器发出下载视频文件的请求;读取服务器返回的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;接收服务器通过所述主线程及二个次线程返回请求的数据依次送至所述播放器进行播放;播放器当前播放的片段数据对应的线程继续下载下一个片段数据;将进度条定位至相应的位置;获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号;使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放。采用本发明的电子装置,可以解决执行seek操作后起播速度较慢的问题,从而提升了用户的使用体验。
[0054]上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的方法。
[0055]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种提高起播速度的方法,其特征在于,包括: Si:向服务器发出下载视频文件的请求; S2:读取服务器返回的视频文件的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址; S3:开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求; S4:接收服务器通过所述主线程及二个次线程返回请求的数据并依次送至所述播放器进行播放; S5:播放器当前播放的片段数据对应的线程继续下载下一个片段数据; S6:接收用户在小范围内拖动进度条的操作,将进度条定位至相应的位置;获取所述进度条定位的时间点,并依据所述时间点计算对应的片段ID号,若计算出的对应的片段的ID号大于已经下载到的ID号范围,则跳转至步骤S3; S7:播放器使用上述片段的ID号从缓存中找到对应的片段数据,同时擦除小于该ID号的ID号对应的片段数据,然后进行播放;及 S8:重复步骤S3-S5直到接收到停止下载视频文件的指令或所述视频文件已下载完毕。2.根据权利要求1所述的方法,其特征在于,所述主线程及二个次线程同时向服务器发出下载数据的请求包括所述视频文件的前后连接的三片段数据的网络地址。3.根据权利要求1所述的方法,其特征在于,所述视频文件是HLS中规定的MPEG2-TS视频文件。4.根据权利要求1所述的方法,其特征在于,所述用户在小范围内拖动进度条的操作具体是指用户拖动进度条的范围不超过前后连接的三个片段数据对应的时长范围。5.一种视频播放器,其配置于电子装置中,其特征在于,包括: 请求模块,用于向服务器发出下载视频文件的请求; 播放模块,用于读取服务器返回的M3U8描述信息并解析所述M3U8描述信息以获取所述视频文件前三片段数据的网络地址;开启主线程及二个次线程,所述主线程及二个次线程同时向服务器发出下载数据的请求;接收服务器通过所述主线程及二个次线程返回请求的数据并依次送至所述播放器进行播放;将播放器当前播放的片段数据对应的线程释放,所述释放的线程继续下载下一个片段数据; 拖动模块,用于接收用户在小范围内拖动进度条的操作,并将进度条定位至相应的位置; 计算模块,用于获取所述进度条定位的时间点,并依据所述时间点计算对应的片段数据的网络地址; 所述播放模块,还用于依据网络地址从已下载的片段数据中获取对应的片段数据,将获取的片段数据通过所述主线程送至播放器进行播放,所述二个次线程分别获取该片段数据之后的二个片段数据,并依次播放。6.根据权利要求5所述的视频播放器,其特征在于,所述视频播放器还包括停止模块: 若接收到停止下载视频文件的指令,或音频数据及视频数据下载完毕,则停止播放视频文件。7.根据权利要求5所述的视频播放器,其特征在于,所述主线程及二个次线程同时向服务器发出下载数据的请求包括所述视频文件的前后连接的三片段数据的网络地址。8.根据权利要求5所述的视频播放器,其特征在于,所述视频文件是HLS中规定的MPEG2-TS视频文件。9.根据权利要求5所述的视频播放器,其特征在于,所述用户在小范围内拖动进度条的操作具体是指用户拖动进度条的范围不超过前后连接的三个片段数据对应的时长范围。10.—种电子装置,其特征在于,包括权利要求5-9任一项所述的视频播放器。
【文档编号】H04N21/8352GK105898535SQ201511026988
【公开日】2016年8月24日
【申请日】2015年12月30日
【发明人】韩旭
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1