视频的播放方法和装置与流程

文档序号:17325062发布日期:2019-04-05 21:45阅读:177来源:国知局
视频的播放方法和装置与流程

本发明涉及互联网领域,具体而言,涉及一种视频的播放方法和装置。



背景技术:

在生活中,常常会有连续播放多个视频中指定片段(并使用特定的主题效果)的需求,在相关技术中,为了实现该需求,可以通过如下方式来实现:

步骤s11,取第一个视频,根据用户选择的视频起始时间点,往前定位最近的一帧关键帧,从这帧关键帧开始解码,解出一帧帧的图像,一直解码到用户选择的视频结束时间点为止。

步骤s12,再取下一个视频,同样根据用户选择的视频起始时间点和结束时间点,把时间区间里的图像一帧帧解码出来,依次解码出用户选择的所有视频的相应时间区间内的图像帧。

步骤s13,把这些图像帧,编码压缩成一个独立的视频文件。

步骤s14,对这个独立的视频文件,使用常规的播放器进行播放解码,并叠加主题效果。

在上述的技术方案中,把每个视频解码出来取出相应片段内容的帧,再按照先后顺序,一点点编码压缩到最后的完整视频里,得到这个完整视频后,再在它的上面叠加主题效果。

解码和编码是非常耗时的操作,即使在设备(如安卓手机)上使用硬件加速进行解码和编码,也需要消耗视频时长三分之一到一半的时间。也就是说,用户想要得到一个十分钟的视频,每次更换视频的内容,就要耗费三到五分钟的时间,这样的时间消耗是用户无法忍受的,其原因在于播放多个视频前的准备时间较长。

针对相关技术中连续播放多个视频前的解码和编码需要消耗较长时间的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种视频的播放方法和装置,以至少解决相关技术中连续播放多个视频前的解码和编码需要消耗较长时间的技术问题。

根据本发明实施例的一个方面,提供了一种视频的播放方法,该播放方法包括:接收第一指示信息,第一指示信息至少包括指示按照第一顺序连续播放多个视频,以及,指示多个视频中每个视频的播放起始位置和播放结束位置的信息置;根据第一指示信息,获取待播放的多个视频;按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

根据本发明实施例的另一方面,还提供了一种视频的播放装置,该播放装置包括:接收单元,用于接收第一指示信息,第一指示信息至少包括指示按照第一顺序连续播放多个视频,以及,指示多个视频中每个视频的播放起始位置和播放结束位置的信息置;获取单元,用于根据第一指示信息,获取待播放的多个视频;播放单元,用于按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

根据本发明实施例的另一方面,还提供了一种视频的电子装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的任意一种方法。

根据本发明实施例的另一方面,还提供了一种视频的存储介质,存储介质上存储有运行时执行上述的任意一种方法的程序。

在本发明实施例中,在接收第一指示信息时,获取待播放的多个视频;并按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频,由于在播放过程中无需将多个视频中需播放的片段重新解编码为一个新视频进行播放,并提前准备好待播放视频,以在需要时进行播放,可以解决相关技术中连续播放多个视频前的解码和编码需要消耗较长时间的技术问题,进而达到直接对多个视频中待播放的片段进行直接连续播放的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的视频的播放方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的视频的播放方法的流程图;

图3是根据本发明实施例的一种可选的播放器结构的示意图;

图4是根据本发明实施例的一种可选的视频片段的示意图;

图5是根据本发明实施例的一种可选的输入数据的示意图;

图6是根据本发明实施例的一种可选的视频的播放方法的流程图;

图7是根据本发明实施例的一种可选的时间控制层的示意图;

图8是根据本发明实施例的一种可选的画面刷新层的示意图;

图9是根据本发明实施例的一种可选的解码器运行的示意图;

图10是根据本发明实施例的一种可选的图像显示的示意图;

图11是根据本发明实施例的一种可选的视频的播放装置的示意图;以及

图12是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

解码器(decoder),是一种能将数字视音频数据流解码还原成模拟视音频信号的硬件或软件设备。如视频的mpeg4,音频的mp3、ac3、dts等编码器可以将原始数据压缩存放,在多媒体方面,编码器主要把模拟视音频信号压缩数据编码文件,而解码器把数据编码文件转为模拟视音频信号。

帧:是影像动画中最小单位的单幅影像画面。一帧就是一副静止的画面,连续的帧就形成动画,如电视图像等。每一帧都是静止的图像,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。

根据本发明实施例,提供了一种视频的播放方法的方法实施例。

可选地,在本实施例中,上述视频的播放方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于pc、手机、平板电脑等。本发明实施例的视频的播放方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的视频的播放方法也可以是由安装在其上的客户端来执行。

当本发明实施例的视频的播放方法由服务器或终端来单独执行时,直接在服务器或终端上来执行与本申请的方法对应的程序代码即可。

当本发明实施例的视频的播放方法由服务器和终端共同来执行时,可由终端发起视频播放的需求,此时,由终端将第一指示信息发送给服务器,再由服务器来执行与本申请的方法对应的程序代码,并将待播放的视频流反馈给终端进行播放。

下面以在服务器或终端上来执行与本申请的方法对应的程序代码为例详述本申请的实施例,图2是根据本发明实施例的一种可选的视频的播放方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,接收第一指示信息,第一指示信息至少包括指示按照第一顺序连续播放多个视频,以及,指示多个视频中每个视频的播放起始位置和播放结束位置的信息置,也即第一指示信息用于指示按照第一顺序连续播放多个视频,并指示多个视频中每个视频的播放起始位置和播放结束位置。

第一指示信息可以是依据用户的操作信息生成的指示信息,如当用户在用于播放视频的播放器中设置好每个视频的播放起始位置和播放结束位置、以及所有视频的播放顺序之后生成的。

可选地,第一指示信息也可以是根据播放器中默认的设置(关于每个视频的播放起始位置和播放结束位置、以及所有视频的播放顺序的设置)生成的。当在用户选择好待播放的所有视频后根据默认设置生成。

上述的多个视频的视频文件相互独立,各自独立编码。允许所有视频的视频格式相同,也允许所有视频的视频格式不都相同,极端而言,允许任意两个视频的视频格式不同。

若所有视频的视频格式不都相同,可采用多个解码器对多个视频进行并行解码,避免了由于格式不同造成的更换解码器或者解码插件(具体包括解码器的启动、初始化、加载视频、视频解码等操作)所需消耗的时间,可以连续播放格式不同的多个视频。

步骤s204,根据第一指示信息(也即响应于第一指示信息),获取待播放的多个视频。

步骤s206,按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

对于播放多个视频而言,在播放时类似于播放同一个视频,对于任意两个视频中间的衔接,不会有任何停顿。例如,在播放第一视频的视频帧时,会对第二视频提前进行预解码,在当前时刻播放的视频帧为第一视频的播放结束位置的视频帧,在当前时刻的下一时刻直接跳转至预先解码好的第二视频的播放起始位置的视频帧进行播放。

通过上述步骤s202至步骤s206,在接收第一指示信息时,获取待播放的多个视频;并按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频,由于在播放过程中无需将多个视频中需播放的片段重新解编码为一个新视频进行播放,并提前准备好待播放视频,以在需要时进行播放,可以解决相关技术中连续播放多个视频前的解码和编码需要消耗较长时间的技术问题,进而达到直接对多个视频中待播放的片段进行直接连续播放的技术效果。

本申请的上述方法可以集成在视频播放器中使用,也可以集成在有视频播放需求的应用中使用。包括但不局限于p图(也即图像处理)应用、社交应用、视频处理应用、即时通讯应用。这些应用可安装在计算机、移动终端等智能设备上,即可得到上述的客户端。下面结合步骤s202至步骤s206详述本申请的实施例:

在步骤s202提供的技术方案中,客户端接收基于用户操作生成的第一指示信息,第一指示信息包括指示按照第一顺序(用户指定的播放顺序)连续播放多个视频,并指示多个视频中每个视频的播放起始位置和播放结束位置(也即用户在客户端中设置的播放起始位置和播放结束位置)。

可选地,第一指示信息还用于指示每个视频的存储位置,此存储位置即用户选择视频时,该视频所在的目录位置。

可选地,第一指示信息还用于指示播放视频时所使用的目标视频主题(也即主题效果,包括但不局限于视频背景、背景音乐、视频前景、字幕、插图等)。

在步骤s204提供的技术方案中,根据第一指示信息,客户端获取待播放的多个视频。具体而言,客户端按照第一指示信息指示的每个视频的存储位置对视频进行加载。

在步骤s206提供的技术方案中,客户端按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

在本申请的实施例中,按照第一顺序连续播放多个视频包括:在完成对第一视频的播放之前,通过第一解码器对待播放的第二视频进行解码,得到解码后的数据,解码后的数据至少用于指示第二视频的播放起始位置上的视频画面;在播放到第一视频的播放结束位置时,继续从第二视频的播放起始位置上的视频画面开始播放。

在该实施例中,在播放第一视频时,利用第一解码器提前对待播放的第二视频进行解码,此处的解码至少包括对第二视频的播放起始位置上的视频帧进行解码,当然还可以包括对第二视频的播放起始位置后的视频帧进行解码。通过该预解码,从而使得在播放第二视频时,不用执行启动第一解码器、初始化第一解码器、利用第一解码器加载第二视频的视频文件、识别第二视频的视频文件、对第二视频的视频文件中播放起始位置上的视频帧进行解码等进行的操作,避免了中间停顿,实现了连续播放的效果。

需要说明的是,对于上述的第一视频,是采用与第一解码器并行运行的第二解码器进行解码。若多个视频的视频格式不同,则此处的第二解码器的解码插件是与第一视频的视频格式匹配的解码插件,相应地,第一解码器的解码插件也是与第二视频的视频格式匹配的解码插件。

上述的第二解码器并不是在完成对第一视频的解码之后就停止运行,本申请采用的是两个解码器(第一解码器和第二解码器)交替运行的机制,在完成对第一视频的播放之前,客户端利用第二解码器对第一视频进行解码,在完成对第一视频的播放之后,客户端继续利用第二解码器对多个视频中的第三视频进行解码,得到解码后的数据,第三视频为第一顺序指示的在第二视频播之后播放的视频。

在播放到第二视频的播放结束位置时,继续从第二解码器对第三视频解码得到的数据所指示的第三视频的播放起始位置上的视频画面开始播放。

在上述实施例中,若第三视频和第一视频的视频格式相同,那么在第二解码器对第三视频进行解码时所调用的解码插件与对第一视频进行解码时所调用的解码插件相同,若第三视频和第一视频的视频格式相同,则第二解码器调用与第三视频的视频格式相匹配的解码插件。

在一个可选地实施例中,对第一视频进行播放时,可通过第一线程执行第二解码器的解码逻辑代码对第一视频进行解码,并播放对第一视频进行解码得到的数据所指示的视频画面。相应地,对第二视频进行播放包括:时,可通过第二线程执行第一解码器的解码逻辑代码对第二视频进行解码,并播放对第二视频进行解码得到的数据所指示的视频画面,其中,第二线程与第一线程并行运行。

可选地,在按照第一顺序连续播放多个视频的过程中,接收操作指令,其中,操作指令用于指示对播放中的视频执行以下操作之一:暂停播放、结束播放、拖动、快进以及快退;响应于操作指令,执行操作指令所指示的操作。

为了避免用户的跨视频拖动快进带来的卡顿,在播放第一视频时,可利用多个第三解码器提前对第二视频之后的视频进行预解码,每个第三解码器用于对相应的一个视频进行解码,这样在出现用户的跨视频拖动快进时,可直接进入到相应画面,而不会出现卡顿停留情况。

在步骤s206提供的技术方案中,第一指示信息还用于指示播放视频时所使用的目标视频主题,其中,按照第一顺序连续播放多个视频包括:将多个视频的视频主题设置为目标视频主题,并按照第一顺序连续播放多个视频。此处的主题包括设置的视频的背景、背景音乐、字幕、贴图等信息。

在一个可选的实施例中,在按照第一顺序连续播放多个视频之后,按照第一顺序将多个视频中被播放的视频片段保存为一个目标视频,被播放的视频片段为第一指示信息指示的视频的播放起始位置至播放结束位置之间的片段。

在另一个可选的实施例中,在按照第一顺序连续播放多个视频之后,若用户对于前一次的调整不满意,可以对这多个视频的顺序、每个视频的播放起始位置和播放结束位置进行重新调整,生成与重新调整后的信息对应的第二指示信息,客户端接收第二指示信息,第二指示信息用于指示按照第二顺序连续播放多个视频,并指示多个视频中每个视频的播放起始位置和播放结束位置。并按照第二指示信息执行与前述实施例中接收第一指示信息时相同的流程。

下面结合具体的实时场景和实施方式详述本申请的实施例:

(一)实施场景一

目前,用户对视频的处理需求,越来越大。提供高效的视频处理能力,是应用(如手机应用、计算机应用)努力的方向。用户在旅游或生活场景下,拍摄了多个内容相关的片段视频。往往会希望把它们整理成一个完整的视频,而且会希望往这个视频上,添加额外的音乐、文字、小贴图等等各种元素,来使得视频更加具有表现力。

手机会提供多种主题效果(风格、背景、模板),来满足不同用户的喜好,来适配不同内容视频的风格。用户需要先能预览到这些主题效果,才能从中选择自己喜欢的主题效果,生成最终完整的视频。

用户拍摄得到的视频,根据拍摄时的场景去拍摄,最终想要添加到最后完整视频里的,会有多余的部分。所以,用户会希望,在把多个视频整理成一个完整的视频时,可以指定每个视频的片段区间,挑选自己认为真正重要的视频内容片段,来整理出一个精华的完整视频。

在整理出一个精华的完整视频时,用户还可能进行调整,用户每次修改了选择的视频片段时间,每次切换不同的主题效果来进行预览,都希望能够快速看到效果,从而可以判断是否需要下一次的调整。

利用本申请的上述实施例中的方法,选择好待处理的视频、指定每个视频的片段截取时间(每个视频的播放起始位置和播放结束位置),这个播放器就可以马上把完整视频播放出来,中间没有任何的卡顿,从而提供了快速预览到效果的功能。

在实现本申请的“按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频”时,本实施例中提供了如下的一种可选的实施方式:通过设计一个包括五层的处理模型的播放器(或客户端)来实现。如图3所示,五层的处理模型包括:

状态控制层:控制播放器的每个状态。

时间控制层:控制播放器的时间轴,决定何时刷新下一帧。

画面刷新层:接到时间控制层的刷新请求,去解码层获取对应的帧图像数据。

解码层:采用双解码器双线程,负责对视频文件进行解码,当画面刷新层需要帧图像时,能第一时间给出帧图像出来。

渲染层:负责把解码出来的图像数据(帧图像)正确渲染到屏幕上。

在详细介绍五层处理模型之前,先介绍待播放视频片段的数据表示方式:

videoitem表示了一个视频要播放的片段范围,结构如图4所示,start指定这个片段的起始时间(播放起始位置),end指定了片段的结束时间(播放结束位置)。

输入的数据是以videoitem为基本单元的list列表,如图5所示。

播放器实现的五层模型,详细介绍如下:

(1)状态控制层

接收输入数据,并且控制本播放器的状态。实现的状态图如图6所示:

步骤s602,利用setsurfaces()函数设置解码出来的帧要渲染到的位置。并利用setdatasource()函数设置输入数据,即输入数据列表videoitemlist。

步骤s604,通过prepare()函数初始化播放器,使播放器进入准备状态。

步骤s606,通过start()函数使播放器开始播放。

步骤s608,执行用户指令所指示的操作,如接收指令时,通过pause()函数使播放器暂停,通过stop()函数结束播放器的播放等。

(2)时间控制层

用于感知时间的流逝,然后根据当前时间,决定是否需要刷新下一帧。如果需要刷新,则通知画面刷新层。

根据原视频的片段内帧的显示时间戳,换算成在本播放器里每帧的显示时间戳,得到结果mframestamps(mframestamps是个时间数据列表list)如图7所示。时间控制层,就是对比当前时间和mframestamps,来决定是否需要刷新下一帧。

(3)画面刷新层

用于在得到时间控制层刷新下一帧的指示,调度解码器,给出下一帧数据。

如图8所示,输入的所有的视频的片段信息,记录在mvideoitems中。在本播放器播放时,视频间的切换时间,记录在mendings中。mfrontworker和mbackworker是两个解码线程(或解码进程),mfrontworker负责解码当前需要的帧,mbackworker负责准备下个视频的片段的首帧。视频发生切换时,这两个解码线程也会发生切换。

(4)解码层

如图9所示,包括mbackworker和mfrontworker两个解码器,分别在两个线程中做解码动作。mfrontworker负责解码当前需要的帧,mfrontworker准备下个视频的片段的首帧。两个解码线程交互协作,,交替运行,从而快速给出下一帧。

(5)渲染层

每个解码器对应到一个surface(是原始图像缓冲区rawbuffer的一个句柄),解码的帧图像扔到了对应的surface中。渲染层控制每次图像刷新时,应该把哪个surface里的图像给出去渲染到显示器屏幕上。

通过上述实施方式,用户在选择完多个视频及指定每个视频待播放的时间片段后,可以马上看到这些视频片段合成一整个视频的播放效果,流畅度和一个完整的视频一样。当用户修改选择的视频,修改选择视频的时间片段后,也同样能马上预览到这些视频片段无缝衔接播放的效果。

(二)实施场景二

目前,随着互联网的发展,视频越来越丰富,如何从中找到有价值的视频成为比较繁琐的事情,例如对于同一个事件(领域、新闻等)可能存在大量的视频(其中可能有重复、重叠的),利用本申请的上述方法,可以对这一系列视频进行处理,得到一个集中了主要内容的视频,从而便于用户进行观看,省去了用户自己找视频、拖拽过滤重复内容的时间。

具体实施方案可以参考上述实时场景一中的实现方案,在此不再赘述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例,还提供了一种用于实施上述视频的播放方法的视频的播放装置。图11是根据本发明实施例的一种可选的视频的播放装置的示意图,如图11所示,该装置可以包括:接收单元112、获取单元114以及播放单元116。

接收单元112,用于接收第一指示信息,第一指示信息至少包括指示按照第一顺序连续播放多个视频,以及,指示多个视频中每个视频的播放起始位置和播放结束位置的信息置。

第一指示信息可以是依据用户的操作信息生成的指示信息,如当用户在用于播放视频的播放器中设置好每个视频的播放起始位置和播放结束位置、以及所有视频的播放顺序之后生成的。

可选地,第一指示信息也可以是根据播放器中默认的设置(关于每个视频的播放起始位置和播放结束位置、以及所有视频的播放顺序的设置)生成的。当在用户选择好待播放的所有视频后根据默认设置生成。

上述的多个视频的视频文件相互独立,各自独立编码。允许所有视频的视频格式相同,也允许所有视频的视频格式不都相同,极端而言,允许任意两个视频的视频格式不同。

获取单元114,用于根据第一指示信息,获取待播放的多个视频。

播放单元116,用于按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

对于播放多个视频而言,在播放时类似于播放同一个视频,对于任意两个视频中间的衔接,不会有任何停顿。例如,在播放第一视频的视频帧时,会对第二视频提前进行预解码,在当前时刻播放的视频帧为第一视频的播放结束位置的视频帧,在当前时刻的下一时刻直接跳转至预先解码好的第二视频的播放起始位置的视频帧进行播放。

需要说明的是,该实施例中的接收单元112可以用于执行本申请实施例中的步骤s202,该实施例中的获取单元114可以用于执行本申请实施例中的步骤s204,该实施例中的播放单元116可以用于执行本申请实施例中的步骤s206。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,在接收第一指示信息时,获取待播放的多个视频;并按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频,由于在播放过程中无需将多个视频中需播放的片段重新解编码为一个新视频进行播放,并提前准备好待播放视频,以在需要时进行播放,可以解决相关技术中连续播放多个视频前的解码和编码需要消耗较长时间的技术问题,进而达到直接对多个视频中待播放的片段进行直接连续播放的技术效果。

本申请的上述装置可以集成在视频播放器中使用,也可以集成在有视频播放需求的应用中使用。包括但不局限于p图应用、社交应用、视频处理应用、即时通讯应用。这些应用可安装在计算机、移动终端等智能设备上,即可得到上述的客户端。

在本申请的实施例中,播放单元包括:第一解码模块,用于在完成对第一视频的播放之前,通过第一解码器对待播放的第二视频进行解码,得到解码后的数据,其中,解码后的数据至少用于指示第二视频的播放起始位置上的视频画面;第一播放模块,用于在播放到第一视频的播放结束位置时,继续从第二视频的播放起始位置上的视频画面开始播放。

可选地,上述的第二解码器并不是在完成对第一视频的解码之后就停止运行,本申请采用的是两个解码器(第一解码器和第二解码器)交替运行的机制,本申请的装置还可包括:第二解码模块,用于在完成对第一视频的播放之后,通过第二解码器对多个视频中的第三视频进行解码,得到解码后的数据,其中,在第一视频的结束播放之前,第二解码器用于对第一视频进行解码,第三视频为第一顺序指示的在第二视频播之后播放的视频;第二播放模块,用于在播放到第二视频的播放结束位置时,继续从第二解码器解码得到的数据所指示的第三视频的播放起始位置上的视频画面开始播放。

可选地,播放单元还包括:第三播放模块,用于通过第一线程执行第二解码器的解码逻辑代码对第一视频进行解码,并播放对第一视频进行解码得到的数据所指示的视频画面。第一播放模块还用于通过第二线程执行第一解码器的解码逻辑代码对第二视频进行解码,并播放对第二视频进行解码得到的数据所指示的视频画面,其中,第二线程与第一线程并行运行。

可选地,第一指示信息还用于指示播放视频时所使用的目标视频主题,播放单元还用于将多个视频的视频主题设置为目标视频主题,并按照第一顺序连续播放多个视频。

可选地,本申请的装置还可包括:保存单元,用于在按照第一顺序连续播放多个视频之后,按照第一顺序将多个视频中被播放的视频片段保存为一个目标视频,其中,被播放的视频片段为第一指示信息指示的视频的播放起始位置至播放结束位置之间的片段。

在按照第一顺序连续播放多个视频之后,接收单元还用于接收第二指示信息,其中,第二指示信息用于指示按照第二顺序连续播放多个视频,并指示多个视频中每个视频的播放起始位置和播放结束位置。

通过上述实施方式,用户在选择完多个视频及指定每个视频待播放的时间片段后,可以马上看到这些视频片段合成一整个视频的播放效果,流畅度和一个完整的视频一样。当用户修改选择的视频,修改选择视频的时间片段后,也同样能马上预览到这些视频片段无缝衔接播放的效果。

作为一种可选的实施例,本申请的上述装置可以集成在视频播放器中使用,也可以集成在有视频播放需求的应用中使用。包括但不局限于p图应用、社交应用、视频处理应用、即时通讯应用。这些应用可安装在计算机、移动终端等智能设备上。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例,还提供了一种用于实施上述视频的播放方法的服务器或终端(即电子装置)。

图12是根据本发明实施例的一种终端的结构框图,如图12所示,该终端可以包括:一个或多个(图12中仅示出一个)处理器1201、存储器1203、以及传输装置1205(如上述实施例中的发送装置),如图12所示,该终端还可以包括输入输出设备1207。

其中,存储器1203可用于存储软件程序以及模块,如本发明实施例中的视频的播放方法和装置对应的程序指令/模块,处理器1201通过运行存储在存储器1203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的视频的播放方法。存储器1203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1203可进一步包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1203用于存储应用程序。

处理器1201可以通过传输装置1205调用存储器1203存储的应用程序,以执行下述步骤:接收第一指示信息,第一指示信息至少包括指示按照第一顺序连续播放多个视频,以及,指示多个视频中每个视频的播放起始位置和播放结束位置的信息置;根据第一指示信息,获取待播放的多个视频;按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

处理器1201还用于执行下述步骤:在完成对第一视频的播放之前,通过第一解码器对待播放的第二视频进行解码,得到解码后的数据,其中,解码后的数据至少用于指示第二视频的播放起始位置上的视频画面;在播放到第一视频的播放结束位置时,继续从第二视频的播放起始位置上的视频画面开始播放。

采用本发明实施例,在接收第一指示信息时,获取待播放的多个视频;并按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频,由于在播放过程中无需将多个视频中需播放的片段重新解编码为一个新视频进行播放,并提前准备好待播放视频,以在需要时进行播放,可以解决相关技术中连续播放多个视频前的解码和编码需要消耗较长时间的技术问题,进而达到直接对多个视频中待播放的片段进行直接连续播放的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图12所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图12其并不对上述电子装置的结构造成限定。例如,终端还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行视频的播放方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s21,接收第一指示信息,第一指示信息至少包括指示按照第一顺序连续播放多个视频,以及,指示多个视频中每个视频的播放起始位置和播放结束位置的信息置;

s22,根据第一指示信息,获取待播放的多个视频;

s23,按照第一顺序连续播放多个视频,当在当前时刻播放到多个视频中第一视频的播放结束位置时,在当前时刻的下一时刻从多个视频中第二视频的播放起始位置继续播放,第二视频为第一顺序指示的在第一视频之后播放的视频。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s31,在完成对第一视频的播放之前,通过第一解码器对待播放的第二视频进行解码,得到解码后的数据,其中,解码后的数据至少用于指示第二视频的播放起始位置上的视频画面;

s32,在播放到第一视频的播放结束位置时,继续从第二视频的播放起始位置上的视频画面开始播放。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1