视频连续播放方法、装置、电子设备及存储介质与流程

文档序号:33418464发布日期:2023-03-10 23:06阅读:38来源:国知局
1.本公开实施例涉及计算机
技术领域
:,尤其涉及一种视频连续播放方法、装置、电子设备及存储介质。
背景技术
::2.现有的视频软件,在播放视频流或视频文件前,需要先通过解码器对视频进行解码。其中,软件中的解码器通常是指一个能够对数字视频进行解压缩的程序,通过预设的解码协议将压缩后的视频文件转化为能够进行渲染和播放的视频帧,对视频进行编码传输和解码播放,能够降低视频文件的大小,是一种常见的视频处理技术。3.现有技术中,在需要连续播放多段视频时,通常需要对每一段视频建立对应的解码器,因此,在多段视频进行切换的间隙,常会导致视频卡顿的问题。技术实现要素:4.本公开实施例提供一种视频连续播放方法、装置、电子设备及存储介质,以克服多段视频连续播放过程中视频切换间隙存在卡顿的问题。5.第一方面,本公开实施例提供一种视频连续播放方法,包括:基于第一解码器,播放第一视频;当所述第一视频播放至第一目标时间戳时,创建第二解码器,其中,所述第一目标时间戳为所述第一视频帧的播放时间戳;当所述第一视频播放至第二目标时间戳时,基于所述第二解码器,播放第二视频。6.第二方面,本公开实施例提供一种视频连续播放装置,包括:7.第一播放模块,用于基于第一解码器,播放第一视频;8.解码模块,用于当所述第一视频播放至第一目标时间戳时,创建第二解码器,其中,所述第一目标时间戳为所述第一视频帧的播放时间戳;9.第二播放模块,用于当所述第一视频播放至第二目标时间戳时,基于所述第二解码器,播放第二视频。10.第三方面,本公开实施例提供一种电子设备,包括:11.处理器,以及与所述处理器通信连接的存储器;12.所述存储器存储计算机执行指令;13.所述处理器执行所述存储器存储的计算机执行指令,以实现如上第一方面以及第一方面各种可能的设计所述的视频连续播放方法。14.第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的视频连续播放方法。15.第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的视频连续播放方法。16.本实施例提供的视频连续播放方法、装置、电子设备及存储介质,该方法通过基于第一解码器,播放第一视频;当所述第一视频播放至第一目标时间戳时,创建第二解码器,其中,所述第一目标时间戳为所述第一视频帧的播放时间戳;当所述第一视频播放至第二目标时间戳时,基于所述第二解码器,播放第二视频。由于在第一视频播放至结束前的第一视频帧时,提前创建了第二解码器,因此在第一视频播放结束时,可以直接通过已创建的第二解码器对第二视频进行解码,而无需等待创建解码器,因此可以减少段视频连续播放过程中视频切换间隙的卡顿,提高多段视频连续时视频间隙的切换流畅度。附图说明17.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。18.图1为本公开实施例提供的视频连续播放方法的一种应用场景图;19.图2为现有技术中一种对多段视频进行连续播放的示意图;20.图3为本公开实施例提供的视频连续播放方法的流程示意图一;21.图4为本公开实施例提供的一种确定第一目标时间戳的示意图;22.图5为本公开实施例提供的视频连续播放方法的流程示意图二;23.图6为本公开实施例提供的一种第三目标时间戳的示意图;24.图7为图5所示实施例中步骤s205的实现步骤的流程图;25.图8为本公开实施例提供的一种对第二视频进行解码的示意图;26.图9为本公开实施例提供的一种从第二视频帧开始播放第二视频的示意图;27.图10为本公开实施例提供的视频连续播放装置的结构框图;28.图11为本公开实施例提供的一种电子设备的结构示意图;29.图12为本公开实施例提供的电子设备的硬件结构示意图。具体实施方式30.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。31.下面对本公开实施例的应用场景进行解释:32.图1为本公开实施例提供的视频连续播放方法的一种应用场景图,本公开实施例提供的视频连续播放方法,可以应用于多视频片段拼接连续播放的应用场景下,示例性地,如图1所示,本实施例提供的方法可以应用于终端设备,其中,终端设备内缓存有a、b、c三个视频,a视频、b视频、c视频可以是一段长视频分割后形成的三段短视频。其中,更加具体地,例如,a视频、b视频、c视频分别对应三段内容上连续的视频(例如电视剧),如图中所示,当前正在播放a视频,在a视频播放结束后,会自动播放b视频,以及在b视频之后播放c视频。但在每一段视频中,分别包含一段起始区间(例如片头曲部分)和一段末尾区间(例如片尾曲部分),通过对每一段视频的起始区间和末尾区间的精确地跳转切换,可以实现视频间的无缝切换,使连续播放的a视频、b视频、c视频三段短视频从观感上为一段长视频。33.在实际播放过程中,在多段视频连续播放的场景中,每段视频播放过程中,需要创建对应的解码器对视频进行解码,然而,现有技术中,只有在对视频进行播放前,才会创建(软件)解码器对该视频进行解码,图2为现有技术中一种对多段视频进行连续播放的示意图,如图2所示,在对视频a和视频b连续播放的过程中,在播放a视频之前,首先需要创建用于解码a视频的解码器a;而在a视频播放完成后,需要创建用于解码b视频所需的解码器b,才能对b视频进行解码。因此对于多段视频连续播放的场景,在前一视频播放结束后,再创建解码器对后一视频进行解码,会造成处理耗时,从而使前后两段视频播放的间隙出现卡顿,无法形成多段视频之间无缝切换的观感,影响用户观看体验。本公开实施例提供一种视频连续播放方法以解决上述问题。34.图3为本公开实施例提供的视频连续播放方法的流程示意图一。本实施例的方法可以应用在终端设备中,该视频连续播放方法包括:35.步骤s101,基于第一解码器,播放第一视频。36.示例性地,第一解码器是基于多媒体框架,通过程序调用而被创建的解码器程序,用于将压缩的视频编码数据解压为像素数据,从而在终端设备进行渲染播放。其中,多媒体框架例如为ffmpeg框架,在例如此类多媒体框架中,包含有各种用于解码不同类型视频编码数据的解码器,根据视频的类型确定并创建对应的解码器。本实施例中,第一视频为播放视频,在第一视频播放前,终端设备通过如上的多媒体框架,创建与第一视频的视频类型匹配的第一解码器,并基于第一解码器,解码并播放第一视频。37.具体地,基于第一解码器,播放第一视频的方式,包括:基于第一解码器,对第一视频进行解码,生成第一视频的视频帧,根据各视频帧对应的播放时间戳,依次播放第一视频的各视频帧。其中,第一视频的视频帧,即为通过解码器解码后生成的像素数据。播放第一视频,实际上是终端设备将第一视频的视频帧按播放时间戳依次播放的过程。38.步骤s102,当第一视频播放至第一目标时间戳时,创建第二解码器。39.示例性地,在按照第一视频中各视频帧对应的播放时间戳播放第一视频的过程中,当播放至第一目标时间戳对应的第一视频帧时,创建第二解码器。其中,该第二解码器与第一解码器类似,也是基于多媒体框架,通过程序调用而被创建的解码器程序。第二解码器用于播放排在第一视频之后待播放的第二视频。40.其中,创建第二解码器的目的,是为了提前创建好用于对第二视频进行解码的解码器,避免第一视频播放结束后再创建解码器,导致的耗时卡顿。因此,第二解码器需要在第一视频播放结束前创建,第二解码器创建的时间点为第一视频播放至第一目标时间戳时。该第一目标时间戳可以是预设的,例如将第一视频播放总时长的90%对应的播放时间戳,确定为第一目标时间戳,或者将第一视频剩余30秒时的播放时间戳,确定为第一目标时间戳;也可以是根据第一视频的视频长度、视频内容等视频信息动态确定的。41.因此,本实施例中,在步骤s102之前,还可以包括确定第一目标时间戳的步骤。42.在一种可能的实现方式中,确定第一目标时间戳的实现方式包括:获取预设的目标剩余时长,其中,目标剩余时长是基于终端设备的配置参数确定的;根据目标剩余时长,确定第一目标时间戳。示例性地,目标剩余时长是表征第一视频剩余的播放时长的参数,例如30秒,该目标剩余时长可以基于终端设备预设的配置参数确定。43.在另一种可能的实现方式中,确定第一目标时间戳的实现方式包括:当第一视频解码完成时,将当前播放的视频帧的播放时间戳的后一个播放时间戳,确定为第一目标时间戳。44.图4为本公开实施例提供的一种确定第一目标时间戳的示意图,如图4所示,第一视频的播放过程中,终端设备对第一视频同步进行解码和播放,其中,解码过程的进度快于播放过程的进度,即解码位置较播放位置更靠近第一视频的末端。当解码过程完成时,即解码位置到的第一视频的末端时,将此刻的播放位置的下一位置对应的播放时间戳,确定为第一目标时间戳。也即,在解码过程结束后,立刻开始创建第二解码器。从而实现终端设备计算资源的充分利用,提高效率。45.在另一种可能的实现方式中,也可以根据第一视频的关键帧周期(groupofpicture,gop)的个数确定第一目标时间戳。其中,关键帧周期也可以称为帧组,是一个由一个即使解码刷新(idr,instantaneousdecodingrefresh)帧和一些列的p帧、b帧组成的帧集合(当然,关键帧周期内也可能包含其他i帧)。关键帧周期的个数越多,则视频的延迟越低、流畅度和清晰度越好,而相应的,由于i帧数量增加,其数据量也越大。在对多段视频进行连续播放的场景中,考虑到建立第二解码器之后还需要对第二视频进行预解码,并且对于连续播放的第一视频和第二视频,其视频画质(由用户设置)通常是一致的,因此,第一视频的关键帧周期的个数越多,则应该预留给第二解码器对第二视频进行预解码的时间应该越多,因此,第一目标时间戳应该越靠前。例如,总时长为1分钟的第一视频,当第一视频的关键帧周期个数为100时,第一目标时间戳为50秒;当第一视频的关键帧周期个数为200时,第一目标时间戳为40秒。本实施例中,通过第一视频的关键帧周期的个数,确定第一目标时间戳,实现了对第二解码器对第二视频进行预解码的所需时长的预判,从而提高创建第二解码器的时间准确性,进一步避免出现视频间的卡顿的概率。46.步骤s103,当第一视频播放至第二目标时间戳时,基于第二解码器,播放第二视频,其中第二目标时间戳位于第一目标时间戳之后。47.示例性地,在终端设备创建第二解码器后,第二解码器即处于待调用状态,创建第二解码器的过程会消耗一定的计算资源以及带来一定的耗时,但由于创建第二解码器的过程是与第一视频的播放过程同步的,因此用户不会感知到该过程的耗时,也因此不会感受到视频的卡顿。之后,在第一视频播放至第二目标时间戳时,基于处于待调用状态的第二解码器,对第二视频进行解码,可以实现第二视频的快速播放,由于没有创建第二解码器所造成的耗时,因此可以实现第一视频和第二视频的无缝切换。48.其中,第二目标时间戳,可以是第一视频的最后一帧对应的播放时间戳,即将第一视频全部播放完后,播放第二视频;也可以是第一视频中预设播放位置的播放时间戳,例如片尾曲位置的播放时间戳,即播放至第一视频的片尾曲位置,直接播放第二视频,从而实现第一视频与第二视频在内容上的连贯性。49.在一种可能的实现方式中,第二目标时间戳的方式包括:50.在本实施例中,解析第一视频的视频帧对应的视频内容,获得视频内容信息,视频内容信息用于表征第一视频的视频帧的内容类别;根据视频内容信息,确定第二目标时间戳。51.具体地,终端设备在播放第一视频的视频帧的过程中,对各视频帧进行解析,提取图像特征,并基于图像特征对视频帧对应的视频内容进行分类,确定对应的内容类别,即视频内容信息。其中,示例性地,内容类别例如包括“正常视频”、“片尾曲”、“广告”等。根据获得的视频内容信息,当视频内容信息对应的内容类别为“片尾曲”时,将当前的播放位置的下一视频帧对应的播放时间戳,确定为第二目标时间戳,即检测到视频帧中的内容为片尾曲时,切换至第二视频进行播放,从而实现跳过视频末尾的片尾曲、广告等内容的目的,实现第一视频与第二视频在内容上的连续性。52.在本实施例中,通过基于第一解码器,播放第一视频;当第一视频播放至第一目标时间戳时,创建第二解码器,其中,第一目标时间戳为第一视频帧的播放时间戳;当第一视频播放至第二目标时间戳时,基于第二解码器,播放第二视频。由于在第一视频播放至结束前的第一视频帧时,提前创建了第二解码器,因此在第一视频播放结束时,可以直接通过已创建的第二解码器对第二视频进行解码,而无需等待创建解码器,因此可以减少段视频连续播放过程中视频切换间隙的卡顿,提高多段视频连续时视频间隙的切换流畅度。53.图5为本公开实施例提供的视频连续播放方法的流程示意图二。本实施例中详细描述在创建第二解码器之后对第二视频进行预解码的步骤,该视频连续播放方法包括:54.步骤s201,基于第一解码器,对第一视频进行解码,生成第一视频的视频帧。55.步骤s202,根据各视频帧对应的播放时间戳,依次播放第一视频的各视频帧。56.步骤s203,当第一视频解码完成时,将当前播放的视频帧的播放时间戳的后一个播放时间戳,确定为第一目标时间戳。57.示例性地,在基于第一解码器,播放第一视频的过程中,包括对第一视频的解码和对第一视频进行播放两个处理环节。此两个处理环节,可以通过不同的线程异步执行,例如,终端设备的第一线程对第一视频进行解码,生成视频帧并缓存;终端设备的第二线程对缓存的第一视频的视频帧进行播放。通常地,第一线程对第一视频进行解码的进度要快于第二线程对视频帧播放的进度。在一种可能的实现方式中,终端设备通过第一线程播放第一视频的过程中,当第一视频播放至第一目标时间戳时,终端设备通过第二线程创建解码器,为后续解码第二视频做准备;与此同时,第一线程继续对第一视频进行播放。由于第二线程是之前用于对第一视频进行解码的工作线程,因此,第一目标时间戳,由第二线程对第一视频进行解码的进度确定。更具体地,在一种可能的实现方式中,当第二线程对第一视频解码完成时,将当前播放的视频帧的播放时间戳的后一个播放时间戳,确定为第一目标时间戳,也即,在第二线程解码过程结束后,立刻由第二线程开始创建第二解码器,第一线程和第二线程相互独立,因此,第二线程的创建第二解码器的过程,不会对第一线程播放第一视频的过程产生影响,因此,提高了计算资源利用效率,提高了视频播放流畅度。58.步骤s204,当第一视频播放至第一目标时间戳时,创建第二解码器。59.步骤s205,获取预设的第三目标时间戳,并基于第二解码器,依次对第二视频中第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成中间帧。60.示例性地,在创建第二解码器之后,若第一视频的末尾区间和第二视频的起始区间,所对应的视频内容是连续的,则在第一视频播放结束后,即第一视频的第二目标时间戳对应第一视频的最后一帧,直接播放第二视频,也可实现第一视频与第二视频之间内容上的连续性。然而,在一些情况下,第一视频的末尾区间与第二视频的起始区间在内容上不连续,例如存在片头曲、片尾曲、短暂的黑屏;或者是在内容上有重叠,则在第一视频播放至第二目标时间戳后,直接对第二视频进行跳转播放(seek),例如,直接跳过片头曲以及与第一视频末尾区间相重叠的片段,从第二视频与第一视频的内容衔接位置开始播放,该内容衔接位置,即第三目标时间戳对应的视频帧。其中,第三目标时间戳的确定方法,可以参照第二目标时间戳的确定方法,或者基于预设的时长阈值确定,此处不再赘述。图6为本公开实施例提供的一种第三目标时间戳的示意图,如图6所示,在第一视频播放至第二目标时间戳后,会直接跳转至第二视频的第三目标时间戳位置进行播放,而跳过第一视频的片尾曲(图中示为a片段)、第二视频的片头曲(图中示为b片段)、以及第二视频中与第一视频的末尾区间重复的内容片段(图中示为c片段),从而实现第一视频和第二视频的无间断播放。其中,第二视频中被跳过而不需要播放的视频帧,即为中间帧,例如第二视频的片头曲(b片段),和/或,第二视频中与第一视频的末尾区间重复的内容片段(c片段)。61.可选地,如图7所示,步骤s205包括步骤s2051、s2052和s2053三个具体的实现步骤:62.步骤s2051,确定第二视频帧所在的关键帧周期。63.步骤s2052,定位关键帧周期中的关键帧。64.步骤s2053,基于第二解码器,从关键帧位置开始依次进行解码,直至第二视频帧的前一视频帧,生成中间帧。65.示例性地,在该过程中,第二视频中的中间帧不需要被播放,但基于视频解码原理,是为了能够正常播放第二视频帧,仍需要对中间帧进行解码。本实施例步骤中,提供了一种确定中间帧的方法,通过先定位第二视频帧所在的关键帧周期,再确定关键帧周期中的idr帧,并对idr帧至第二视频帧之间的视频编码数据进行依次解码,生成中间帧,从而使解码器解码至第二视频帧的位置。图8为本公开实施例提供的一种对第二视频进行解码的示意图,如图8所示,在创建第二解码器后,终端设备的第一线程仍然对第一视频进行播放,与此同时,终端设备的第二线程确定第二视频帧对应的关键帧周期以及idr帧,并调用处于待调用状态的第二解码器,从idr帧开始解码,直至第二视频帧的前一视频帧,从而生成中间帧。示例性地,由于第一视频的播放过程和对第二视频进行解码,生成中间帧的过程是同步独立进行的,因此,在用户无感知的情况下,完成了中间帧的解码过程。66.步骤s206,当第一视频播放至第二目标时间戳时,基于第二解码器,从第二视频帧开始,对第二视频进行解码并播放。67.示例性地,在第一视频播放至第二目标时间戳时,第一视频中需要播放的内容已播放完毕,之后通过第二解码器,从第二视频的第二视频帧(即第三目标播放帧对应的视频帧)位置进行播放,从而实现第一视频向第二视频的切换,使用户在观看视频时的观感上,是在播放一段连续的视频,而不会觉察出视频切换的过程。68.具体地,可以基于第二视频帧,对第二视频进行跳转播放(seek)的方式,实现从第二视频帧开始播放的目的。图9为本公开实施例提供的一种从第二视频帧开始播放第二视频的示意图,如图9所示,在图8所示的对第二视频进行解码的过程的基础上,在开始跳转并播放第二视频时,可以直接定位第二视频帧对应的idr帧(即在第二视频帧之前,且最靠近第二视频帧的idr帧),然后再跳转至第二视频帧的位置,对其进行解压和后续播放,由于idr帧至第二视频帧之间的中间帧已经解码,因此不需要再对idr帧至第二视频帧之间的中间帧进行解码,提高对第二视频的解码效率,同时,由于中间帧无需进行渲染和播放,可以直接将中间帧丢弃,不进行渲染处理的相关步骤,从而进一步提高第二视频解码的效率,实现第二视频自第三目标时间戳的快速播放,以及第一视频与第二视频之间的无缝快速切换。其中,图8和图9所示实施例中的第一线程和第二线程所执行的方法步骤,仅是示例性地,可以根据具体使用需要设置,此处不具体限定。69.本实施例中,步骤s204的实现方式与本公开图3所示实施例中的步骤s102的实现方式相同,在此不再一一赘述。70.对应于上文实施例的视频连续播放方法,图10为本公开实施例提供的视频连续播放装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图10,视频连续播放装置3,包括:71.第一播放模块31,用于基于第一解码器,播放第一视频;72.解码模块32,用于当第一视频播放至第一目标时间戳时,创建第二解码器,其中,第一目标时间戳为第一视频帧的播放时间戳;73.第二播放模块33,用于当第一视频播放至第二目标时间戳时,基于第二解码器,播放第二视频。74.在本公开的一个实施例中,解码模块32,还用于:获取预设的目标剩余时长,其中,目标剩余时长是基于终端设备的配置参数,和/或第一视频的关键帧周期的个数确定的;根据目标剩余时长,确定第一目标时间戳。75.在本公开的一个实施例中,第一播放模块31,具体用于:基于第一解码器,对第一视频进行解码,生成第一视频的视频帧;根据各视频帧对应的播放时间戳,依次播放第一视频的各视频帧;解码模块32,还用于:当第一视频解码完成时,将当前播放的视频帧的播放时间戳的后一个播放时间戳,确定为第一目标时间戳。76.在本公开的一个实施例中,解码模块32,还用于:解析第一视频的视频帧对应的视频内容,获得视频内容信息,视频内容信息用于表征第一视频的视频帧的内容类别;根据视频内容信息,确定第二目标时间戳。77.在本公开的一个实施例中,在创建第二解码器之后,解码模块32,还用于:基于第二解码器,对第二视频进行解码,生成第二视频的视频帧。78.在本公开的一个实施例中,第二视频的视频帧包括中间帧;解码模块32在基于第二解码器,对第二视频进行解码,生成第二视频的视频帧时,具体用于:获取预设的第三目标时间戳;基于第二解码器,依次对第二视频中第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成中间帧。79.在本公开的一个实施例中,解码模块32在基于第二解码器,依次对第二视频中第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成中间帧时,具体用于:确定第二视频帧所在的关键帧周期;定位关键帧周期中的关键帧;基于第二解码器,从关键帧位置开始依次进行解码,直至第二视频帧的前一视频帧,生成中间帧。80.在本公开的一个实施例中,第二播放模块33在基于第二解码器,播放第二视频时,具体用于:基于第二解码器,从第二视频帧开始,对第二视频进行解码并播放。81.其中,第一播放模块31、解码模块32、第二播放模块33依次连接。本实施例提供的视频连续播放装置3可以执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。82.本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。83.图11为本公开实施例提供的一种电子设备的结构示意图,如图11所示,该电子设备4包括:84.处理器41,以及与处理器41通信连接的存储器42;85.存储器42存储计算机执行指令;86.处理器41执行存储器42存储的计算机执行指令,以实现如图2-图7所示实施例中的视频连续播放方法。87.其中,可选地,处理器41和存储器42通过总线43连接。88.相关说明可以对应参见图3-图9所对应的实施例中的步骤所对应的相关描述和效果进行理解,此处不做过多赘述。89.参考图12,其示出了适于用来实现本公开实施例的电子设备900的结构示意图,该电子设备900可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(personaldigitalassistant,简称pda)、平板电脑(portableandroiddevice,简称pad)、便携式多媒体播放器(portablemediaplayer,简称pmp)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。90.如图12所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(readonlymemory,简称rom)902中的程序或者从存储装置908加载到随机访问存储器(randomaccessmemory,简称ram)903中的程序而执行各种适当的动作和处理。在ram903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。91.通常,以下装置可以连接至i/o接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(liquidcrystaldisplay,简称lcd)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。92.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从rom902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。93.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。94.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。95.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。96.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,简称lan)或广域网(wideareanetwork,简称wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。97.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。98.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。99.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。100.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。101.第一方面,根据本公开的一个或多个实施例,提供了一种视频连续播放方,包括:基于第一解码器,播放第一视频;当所述第一视频播放至第一目标时间戳时,创建第二解码器,其中,所述第一目标时间戳为所述第一视频帧的播放时间戳;当所述第一视频播放至第二目标时间戳时,基于所述第二解码器,播放第二视频。102.根据本公开的一个或多个实施例,所述方法还包括:获取预设的目标剩余时长,其中,所述目标剩余时长是基于终端设备的配置参数,和/或所述第一视频的关键帧周期的个数确定的;根据所述目标剩余时长,确定所述第一目标时间戳。103.根据本公开的一个或多个实施例,基于第一解码器,播放第一视频,包括:基于所述第一解码器,对所述第一视频进行解码,生成第一视频的视频帧;根据各所述视频帧对应的播放时间戳,依次播放所述第一视频的各所述视频帧;所述方法还包括:当所述第一视频解码完成时,将当前播放的视频帧的播放时间戳的后一个播放时间戳,确定为所述第一目标时间戳。104.根据本公开的一个或多个实施例,所述方法还包括:解析所述第一视频的视频帧对应的视频内容,获得视频内容信息,所述视频内容信息用于表征所述第一视频的视频帧的内容类别;根据所述视频内容信息,确定所述第二目标时间戳。105.根据本公开的一个或多个实施例,在创建第二解码器之后,所述方法还包括:基于所述第二解码器,对所述第二视频进行解码,生成所述第二视频的视频帧。106.根据本公开的一个或多个实施例,所述第二视频的视频帧包括中间帧;基于所述第二解码器,对所述第二视频进行解码,生成所述第二视频的视频帧,包括:获取预设的第三目标时间戳;基于所述第二解码器,依次对所述第二视频中所述第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成所述中间帧。107.根据本公开的一个或多个实施例,基于所述第二解码器,依次对所述第二视频中所述第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成所述中间帧,包括:确定所述第二视频帧所在的关键帧周期;定位所述关键帧周期中的关键帧;基于所述第二解码器,从所述关键帧位置开始依次进行解码,直至所述第二视频帧的前一视频帧,生成所述中间帧。108.根据本公开的一个或多个实施例,基于所述第二解码器,播放所述第二视频,包括:基于所述第二解码器,从所述第二视频帧开始,对所述第二视频进行解码并播放。109.第二方面,根据本公开的一个或多个实施例,提供了一种视频连续播放装置,包括:110.第一播放模块,用于基于第一解码器,播放第一视频;111.解码模块,用于当所述第一视频播放至第一目标时间戳时,创建第二解码器,其中,所述第一目标时间戳为所述第一视频帧的播放时间戳;112.第二播放模块,用于当所述第一视频播放至第二目标时间戳时,基于所述第二解码器,播放第二视频。113.根据本公开的一个或多个实施例,所述解码模块,还用于:获取预设的目标剩余时长,其中,所述目标剩余时长是基于终端设备的配置参数,和/或所述第一视频的关键帧周期的个数确定的;根据所述目标剩余时长,确定所述第一目标时间戳。114.根据本公开的一个或多个实施例,所述第一播放模块,具体用于:基于所述第一解码器,对所述第一视频进行解码,生成第一视频的视频帧;根据各所述视频帧对应的播放时间戳,依次播放所述第一视频的各所述视频帧;所述解码模块,还用于:当所述第一视频解码完成时,将当前播放的视频帧的播放时间戳的后一个播放时间戳,确定为所述第一目标时间戳。115.根据本公开的一个或多个实施例,所述解码模块,还用于:解析所述第一视频的视频帧对应的视频内容,获得视频内容信息,所述视频内容信息用于表征所述第一视频的视频帧的内容类别;根据所述视频内容信息,确定所述第二目标时间戳。116.根据本公开的一个或多个实施例,在创建第二解码器之后,所述解码模块,还用于:基于所述第二解码器,对所述第二视频进行解码,生成所述第二视频的视频帧。117.根据本公开的一个或多个实施例,所述第二视频的视频帧包括中间帧;所述解码模块在基于所述第二解码器,对所述第二视频进行解码,生成所述第二视频的视频帧时,具体用于:获取预设的第三目标时间戳;基于所述第二解码器,依次对所述第二视频中所述第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成所述中间帧。118.根据本公开的一个或多个实施例,所述解码模块在基于所述第二解码器,依次对所述第二视频中所述第三目标时间戳对应的第二视频帧之前的视频帧进行解码,生成所述中间帧时,具体用于:确定所述第二视频帧所在的关键帧周期;定位所述关键帧周期中的关键帧;基于所述第二解码器,从所述关键帧位置开始依次进行解码,直至所述第二视频帧的前一视频帧,生成所述中间帧。119.根据本公开的一个或多个实施例,所述第二播放模块在基于所述第二解码器,播放所述第二视频时,具体用于:基于所述第二解码器,从所述第二视频帧开始,对所述第二视频进行解码并播放。120.第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;121.所述存储器存储计算机执行指令;122.所述处理器执行所述存储器存储的计算机执行指令,以实现如上第一方面以及第一方面各种可能的设计所述的视频连续播放方法。123.第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的视频连续播放方法。124.第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的视频连续播放方法。125.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。126.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。127.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1