基于hls协议的视频播放优化方法及系统

文档序号:1820131 发布日期:2021-11-09 浏览:22次 >En<

阅读说明:本技术 基于hls协议的视频播放优化方法及系统 (Video playing optimization method and system based on hls protocol ) 是由 叶戈 林榕 吴开钢 于 2021-08-03 设计创作,主要内容包括:本发明提供一种基于hls协议的视频播放优化方法及系统,所述方法包括:创建播放器,查询是否存在结束时间戳;若存在结束时间戳,所述播放器根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放;其中,所述结束时间戳为上一次创建的播放器在视频播放结束时刻所记录的时间戳;所述结束时间戳对应的播放时间节点为上一次创建的播放器在视频播放过程中获取并记录为时间戳的播放时间节点。通过在播放结束时保存当前时间节点为结束时间戳,在重新创建播放器时根据保存的结束时间戳寻找到对应的播放时间节点进行播放,避免播放延时的增加,优化播放效果。(The invention provides a video playing optimization method and a video playing optimization system based on an hls protocol, wherein the method comprises the following steps: creating a player and inquiring whether an ending time stamp exists; if the ending timestamp exists, the player searches a playing time node corresponding to the ending timestamp according to the ending timestamp to play; the end timestamp is a timestamp recorded by the last-created player at the video playing end moment; and the playing time node corresponding to the ending timestamp is the playing time node which is obtained and recorded as the timestamp by the player established last time in the video playing process. By saving the current time node as the end timestamp when the playing is finished, the corresponding playing time node is found for playing according to the saved end timestamp when the player is re-established, so that the increase of playing delay is avoided, and the playing effect is optimized.)

基于hls协议的视频播放优化方法及系统

技术领域

本发明涉及视频播放领域,具体地涉及一种基于hls协议的视频播放优化方法以及一种基于hls协议的视频播放优化系统。

背景技术

HLS(HTTP Live Streaming,HTTP实时流媒体)是一种由苹果公司提出的基于HTTP的流媒体网络传输协议。该协议大量被用于当今网络环境直播点播播放。虽然hls协议优点极多,但是hls协议直播延迟时间无法下到10秒以下,相对于RTMP协议(Real TimeMessaging Protocol,实时消息传输协议)延时最低可以到3、4秒左右而言,hls协议延时较长。hls的时延是本身协议技术特点决定的,使用该协议本身无法避免直播10秒时延或者误差。

hls协议进行数据传输的关键是index file,实际文件名称是以“.m3u8”为后缀的文件,在播放时会去请求该文件,但是hls协议的分片机制会将整体码流分开为一个个分片,每个分片通常时间为10s,客户端是通过下载分片的方式播放码流,因此需要录制码流10s后才形成一个分片,才会有数据传输,这就导致了hls协议必定存在10s延时,若再存在网络或其他方面造成的延时,则这个延时会增大。

发明内容

本发明实施例的目的是提供一种基于hls协议的视频播放优化方法及系统,该方法通过在播放结束时保存当前时间节点为结束时间戳,在重新创建播放器时根据保存的结束时间戳寻找到对应的播放时间节点进行播放,避免了播放延时的增加,优化播放效果。

为了实现上述目的,本发明实施例提供一种基于hls协议的视频播放优化方法,在客户端执行,所述方法包括:

创建播放器,查询是否存在结束时间戳;

若存在结束时间戳,所述播放器根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放;

其中,所述结束时间戳为上一次创建的播放器在视频播放结束时刻所记录的时间戳;所述结束时间戳对应的播放时间节点为上一次创建的播放器在视频播放过程中获取并记录为时间戳的播放时间节点。

可选的,所述视频播放结束时刻为客户端退出视频播放的时刻。

可选的,客户端在上一次创建的播放器退出播放时刻向服务端发送结束报文,所述结束报文包含客户端退出播放时刻的时间戳;

服务端从接收到的所述结束报文中获取客户端退出播放时刻的时间戳并存储为所述结束时间戳;服务端在创建播放器时将所述结束时间戳发送到所述服务端。通过服务端保存结束时间戳,服务端在重新创建播放器时将结束时间戳发送到客户端,客户端根据所述结束时间戳寻找到对应的播放时间节点进行播放,能够有效避免因为播放到分片中间段时重新创建播放器而导致的时延增加。

可选的,客户端存储客户端退出视频播放的时刻的时间戳作为所述结束时间戳。通过客户端保存结束时间戳,在创建播放器时,若查询到存在结束时间戳则根据所述结束时间戳寻找到对应的播放时间节点进行播放,能够有效避免因为播放到分片中间段时重新创建播放器而导致的时延增加。

可选的,所述创建播放器,查询是否存在结束时间戳,包括:

若不存在结束时间戳,则服务端仅响应客户端的请求创建播放器;

播放器重新请求当前分片,从分片头开始播放。

可选的,所述结束时间戳仅存储预设时间。

可选的,视频直播过程中,所述预设时间为9-20s;视频点播过程中,所述预设时间根据服务端的性能定制。设置预设时间为较短的时间能够节省服务器资源,同时也能够满足全屏退出到小视屏窗口播放这样的重新创建播放器的动作过程对结束时间戮的存储需求。

本发明第二方面提供一种基于hls协议的视频播放优化系统,所述系统包括:

时间戳记录模块,用于获取播放时间节点记录为时间戳;

结束时间戳存储模块,用于存储客户端退出视频播放的时刻的时间戳作为所述结束时间戳;

播放器,用于在创建时查询是否存在结束时间戳,根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放。该系统设置结束时间戳存储模块用于在播放结束时保存当前时间节点为结束时间戳,在播放器能够在重新创建播放器时根据保存的结束时间戳寻找到对应的播放时间节点进行播放,避免了播放延时的增加,优化播放效果。

可选的,所述结束时间戳存储模块包括:客户端结束时间戳存储模块和/或服务端结束时间戳存储模块;所述客户端结束时间戳存储模块设置在客户端,用于存储客户端退出视频播放的时刻的时间戳作为所述结束时间戳;所述服务端结束时间戳存储模块设置在服务端,用于从接收到的结束报文中获取客户端退出播放时刻的时间戳并存储为所述结束时间戳。结束时间戳存储模块可以设置在客户端也可以设置在服务端,满足不同的用户需求。

本发明还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请所述的基于hls协议的视频播放优化方法。

通过上述技术方案,本发明一方面提供一种基于hls协议的视频播放优化方法,该方法通过在播放结束时保存当前时间节点为结束时间戳,在重新创建播放器时根据保存的结束时间戳寻找到对应的播放时间节点进行播放,避免了播放延时的增加,优化播放效果。

另一方面,本发明提供一种基于hls协议的视频播放优化系统,该系统设置结束时间戳存储模块用于在播放结束时保存当前时间节点为结束时间戳,在播放器能够在重新创建播放器时根据保存的结束时间戳寻找到对应的播放时间节点进行播放,避免了播放延时的增加,优化播放效果。

本发明实施例的其它特征和优点将在随后的

具体实施方式

部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明一种实施方式提供的基于hls协议的视频播放优化方法流程图;

图2是本发明另一种实施方式提供的基于hls协议的视频播放优化方法流程图;

图3实施本发明提供的基于hls协议的视频播放优化系统框图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

在实际使用hls的直播中,除了起播阶段的10s时延,在后续的使用中,如果不断开网络,保持http连接,且网络通畅,本身码流传输不出问题,时延理论上不再增加,但是存在一种情况,如果客户端在播放当前分片(未播放完10s)时,在到达10s内进行重新创建播放器的动作(实际场景是全屏退出到小视屏窗口播放),播放器会去重新请求当前分片重新从0s播放,造成时延增加。例如播放到当前分片5s,重新请求同个片源,开始播放,那么播放的点会是5s前的画面。总共15s的时延。

同样的在使用hls的点播过程中,虽然不存在起播阶段10s的时延,但是因为在hls点播中,服务器记录的是当前下载分片顺序,那么如果在该分片10s内播放结束前退出播放,然后重新播放,存在重新播放当前分片的问题。即播放到5s时,退出重新播放,那么播放的点也将是该分片的0s处,并不是5s处。

这个缺点总的来说都是因为无法记录客户端播放时间节点,存在10s内的播放误差。

为了解决上述问题,本发明提供一种基于hls协议的视频播放优化方法,所述方法包括:

创建播放器,查询是否存在结束时间戳;

若存在结束时间戳,所述播放器根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放;

其中,所述结束时间戳为上一次创建的播放器在视频播放结束时刻所记录的时间戳;所述结束时间戳对应的播放时间节点为上一次创建的播放器在视频播放过程中获取并记录为时间戳的播放时间节点。

实施例一

如图1是本发明一种实施方式提供的基于hls协议的视频播放优化方法流程图,如图1所示,所述视频播放优化方法包括:

上一次创建的播放器在视频播放过程中获取播放时间节点记录为时间戳;获取播放时间节点需要播放器协同实现,获取当前播放时间节点填入时间戳timestamp当中。

客户端退出视频播放,保存当前客户端退出视频播放的时刻的时间戳作为所述结束时间戳。

客户端重新创建播放器,查询是否存在结束时间戳;

若存在结束时间戳,所述播放器根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放;

若不存在结束时间戳,播放器重新请求当前分片,从分片头开始播放。通过客户端保存结束时间戳,在重新创建播放器时,若查询到存在结束时间戳则根据所述结束时间戳寻找到对应的播放时间节点进行播放,能够有效避免因为播放到分片中间段时重新创建播放器而导致的时延增加。也就是说,如果客户端在播放当前分片时,例如播放到当前分片5s处,从全屏退出到小视频窗口播放,客户端会存储当前分片5s的时间戳作为结束时间戳,客户端重新创建播放器时,播放器重新请求到当前分片后会查询是否存储有时间戳,若有,则重新请求同个片源,寻找到当前分片的5s处进行播放,延时仍然接近10s,而不会变成15s。

在本实施例中,所述结束时间戳仅存储预设时间。

在本实施例中,视频直播过程中,所述预设时间为9-20s;视频点播过程中,所述预设时间根据服务端的性能定制。优选为10s,设置预设时间为9-20s能够节省服务器资源,同时也能够满足全屏退出到小视屏窗口播放这样的重新创建播放器的动作过程对结束时间戳的存储需求。结束时间戳仅仅应用于全屏和小视屏窗口切换过程,这个切换过程往往并不需要持续较长时间,因此设置结束时间戳的存储时间为9-20s,一方面能够快速释放出存储空间,另一方面,若切换过程中耽误太长时间,对于直播来说,已经进行到下一个分片,完全可以进行下一个分片的播放,以贴合直播的进度;对于点播来说,不需要贴合直播进度,重复播放的延时并不是关键,短时间的重复反而能够帮助用户回忆下前面的情节。

在重新创建播放器时,若上次结束播放与重新创建播放器之间的时间间隔超过预设时间,存储的时间戳将会自动删除,为系统运行节约服务器资源。此时客户端中不存在结束时间戳,播放器重新请求当前分片,从分片头开始播放。

实施例二

图2是本发明另一种实施方式提供的基于hls协议的视频播放优化方法流程图,如图2所示,所述视频播放优化方法包括:

上一次创建的播放器在视频播放过程中获取播放时间节点记录为时间戳;获取播放时间节点需要播放器协同实现,获取当前播放时间节点填入时间戳timestamp当中。

客户端退出视频播放,在上一次创建的播放器退出播放时刻向服务端发送结束报文,所述结束报文包含客户端退出播放时刻的时间戳;

服务端从接收到的所述结束报文中获取客户端退出播放时刻的时间戳并存储为所述结束时间戳;

客户端重新创建播放器;

服务端将所述结束时间戳发送到所述服务端;

客户端查询是否存在结束时间戳;

若存在结束时间戳,所述播放器根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放;

若不存在结束时间戳,播放器重新请求当前分片,从分片头开始播放。

通过服务端保存结束时间戳,服务端在重新创建播放器时将结束时间戳发送到客户端,客户端根据所述结束时间戳寻找到对应的播放时间节点进行播放,能够有效避免因为播放到分片中间段时重新创建播放器而导致的时延增加。

也就是说,如果客户端在播放当前分片时,例如播放到当前分片5s处,从全屏退出到小视频窗口播放,客户端会在退出播放时发送结束报文到服务端,结束报文中会携带结束播放时的时间戳5s,服务端接收到结束报文,获取到结束报文中的时间戳,然后存储为结束时间戳,当客户端重新请求创建播放器时,服务端将结束时间戳发送到客户端,同时相应创建播放器请求,执行创建播放器动作,当播放器重新请求到当前分片后会查询是否存储有时间戳,若有,则重新请求同个片源,寻找到当前分片的5s处进行播放,延时仍然接近10s,而不会变成15s。

在本实施例中,所述结束时间戳仅存储预设时间。

在本实施例中,视频直播过程中,所述预设时间为9-20s;视频点播过程中,所述预设时间根据服务端的性能定制。优选为10s。设置预设时间为9-20s能够节省服务器资源,同时也能够满足全屏退出到小视屏窗口播放这样的重新创建播放器的动作过程对结束时间戳的存储需求。结束时间戳仅仅应用于全屏和小视屏窗口切换过程,这个切换过程往往并不需要持续较长时间,因此设置结束时间戳的存储时间为9-20s,一方面能够快速释放出存储空间,另一方面,若切换过程中耽误太长时间,对于直播来说,已经进行到下一个分片,完全可以进行下一个分片的播放,以贴合直播的进度;对于点播来说,不需要贴合直播进度,重复播放的延时并不是关键,短时间的重复反而能够帮助用户回忆下前面的情节。

在重新创建播放器时,若上次结束播放与重新创建播放器之间的时间间隔超过预设时间,存储的时间戳将会自动删除,为系统运行节约服务器资源。此时服务端中不存在结束时间戳,服务端仅响应客户端的请求创建播放器,播放器重新请求当前分片,从分片头开始播放。

为了进一步优化播放,所述方法还包括:

根据系统实时内存变化调整分片缓存的缓存量。根据内存大小调整换存量,能够保证不影响系统正常运行。

在一些实施例中,所述根据系统实时内存变化调整分片缓存的缓存量,包括:

根据系统剩余内存大小调整分片缓存的分片数量。对于设有播放内存的系统,则根据播放内存的大小来调整分片缓存的换存量。

在一些实施例中,例如海思平台系统中,通过命令方式(cat/proc/memdia-mem;cat/proc/meminfo;dumpsys meninfo;top;ps)获取到内存信息,过滤信息得到当前内存剩余大小,这些信息当中,其中memdia-men是MMZ(media memory zone,媒体存储区)信息,为主要媒体播放内存大小,如果剩余空间不足,则无法播放。海思平台将内存分为两部分os(operating system,操作系统)内存和MMZ内存,当MMZ内存初始设置时大,则os内存则少,为开机时固定大小。所以上文中获取的是MMZ信息,如果是其他平台,不区分内存,则直接获取系统剩余内存即可。

在一些实施例中,剩余内存不足10%时,缓存一个分片;当剩余内存不足30%又大于10%,缓存3个分片;当剩余内存大于30%,缓存5个分片。需要注意的是,缓存分片有上限,避免影响用户和其他进程需要空间。

在其他一些实施例中,所述根据系统实时内存变化调整分片缓存的缓存量,包括:

根据系统剩余内存大小改变缓冲区大小,根据解码出来的码率帧数以及分辨率计算分片大小,用缓冲区大小除以每个分片大小取整得到应该缓存的分片数量(部分m3u8文件有提供分片大小)。对于设置缓冲区的系统,则根据内存变化改变缓冲区大小,进而计算得到能够缓存的分片数量。

通过以上方法可以达到实时变化分片缓存的目的,这样的优点是内存不足时,保证系统操作正常不卡顿,能够正常播放,不卡屏,当内存充足时可以多缓冲更多的数据,以应对更复杂的网络环境,用户体验更佳,而等到用户操作seek时,也可以不需要重新缓冲等待。

本发明第二方面提供一种基于hls协议的视频播放优化系统,如图3所示,所述系统包括:

时间戳记录模块,用于获取播放时间节点记录为时间戳;

结束时间戳存储模块,用于存储客户端退出视频播放的时刻的时间戳作为所述结束时间戳;

播放器,用于在创建时查询是否存在结束时间戳,根据所述结束时间戳查找所述结束时间戳对应的播放时间节点进行播放。该系统设置结束时间戳存储模块用于在播放结束时保存当前时间节点为结束时间戳,在播放器能够在重新创建播放器时根据保存的结束时间戳寻找到对应的播放时间节点进行播放,避免了播放延时的增加,优化播放效果。

可选的,所述结束时间戳存储模块包括:客户端结束时间戳存储模块和/或服务端结束时间戳存储模块;所述客户端结束时间戳存储模块设置在客户端,用于存储客户端退出视频播放的时刻的时间戳作为所述结束时间戳,所述服务端结束时间戳存储模块设置在服务端,用于从接收到的结束报文中获取客户端退出播放时刻的时间戳并存储为所述结束时间戳。结束时间戳存储模块可以设置在客户端也可以设置在服务端,满足不同的用户需求。

可选的,所述系统还包括:缓存量调整模块,用于根据系统实时内存变化调整分片缓存的缓存量。

本发明还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请所述的基于hls协议的视频播放优化方法。

以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于胃肠镜视频图像数据收集、标注的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类