发明内容
为克服相关技术中存在的问题,本发明提供一种视频播放方法及装置。
根据本发明实施例的第一方面,提供一种视频播放方法,包括:
在所述终端播放视频时,监测所述终端的网络传输速率;
获取与所述网络传输速率相匹配的目标码率;
向预设服务器发送包含所述目标码率的视频获取请求,以使所述预设服务器根据接收到的所述视频获取请求,向所述终端发送与所述视频获取请求相匹配的目标视频数据;
获取所述预设服务器发送的所述目标视频数据,并在所述终端上播放所述目标视频数据。
根据本发明实施例的第二方面,提供一种视频播放方法,包括:
接收预设终端发送的视频获取请求;
获取与所述视频获取请求相匹配的目标视频数据;
将所述目标视频数据发送给所述预设终端。
根据本发明实施例的第三方面,提供一种视频播放装置,包括:
网络传输速率监测单元,用于在所述终端播放视频时,监测所述终端的网络传输速率;
目标码率获取单元,用于获取与所述网络传输速率相匹配的目标码率;
视频获取请求单元,用于向预设服务器发送包含所述目标码率的视频获取请求,以使所述预设服务器根据接收到的所述视频获取请求,向所述终端发送与所述视频获取请求相匹配的目标视频数据;
目标视频数据获取单元,用于获取所述预设服务器发送的所述目标视频数据;
目标视频数据播放单元,用于在所述终端上播放所述目标视频数据。
根据本发明实施例的第四方面,提供一种视频播放装置,包括:
视频获取请求接收单元,用于接收预设终端发送的视频获取请求;
目标视频数据获取单元,用于获取与所述视频获取请求相匹配的目标视频数据;
目标视频数据发送单元,用于将所述目标视频数据发送给所述预设终端。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供的视频播放方法,在终端播放视频时,监测该终端的网络传输速率,并获取与该网络传输速率相匹配的目标码率,并向预设服务器发送包含该目标码率的视频获取请求,以使预设服务器根据接收到的该视频获取请求向终端发送对应的目标视频数据,在终端上播放预设服务器发送的目标视频数据。这样在终端上播放的目标视频数据可以适应终端的网络传输的变化,使得终端在网络传输速率较低时,也能正常播放用户所需观看的视频,避免因终端网络状况不佳而出现卡顿时,还需用户手动调节视频播放的清晰度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了详细阐述本发明实施例中提供的视频播放方法及装置,如图1所示,图1为本发明实施例中提供的视频播放播放方法的应用场景示意图。其中,图1包括:终端100和服务器200,其中,
终端100可以是个人电脑、手机或电视机等设备,本发明实施例中用户通过终端100在播放从服务器200的视频时,主要针对终端100通过HLS的动态码率自适应方式从服务器获取视频。服务器200存放的视频为TS切片文件,实施例中将TS切片文件简称为TS文件。
示例性的,针对某一目标视频数据,服务器200将该目标视频进行切片处理,得到多个不同的TS文件,每个TS文件采用独立编码的形式存放。并且同一目标视频数据可以包括多个不同清晰度(码率)的视频文件,每个视频文件由多个不同的TS文件组成。这样在终端100正在播放目标视频时,检测终端当前的网速,根据终端100当前的网速可以确定能够支持播放视频的码率,例如,当终端100当前的网速为100kbps时,能够支持播放480p的视频文件;当终端100当前的网速为200kbps时,能够支持播放720p的视频文件。另外,终端将当前的网速作为请求发送给服务器200,服务器200会根据该请求中视频的播放时刻和终端的网速情况,选择终端100正在播放的视频中相应的TS文件发送给终端100,这样终端100在接收到服务器200发送的TS文件后,在对该TS文件解码等操作后进行播放。
因此,为了详细阐述上述终端100与服务器200之间的数据交互,以解决用户在观看视频中,由于终端当前的网络状况还需手动选择视频清晰度的问题,本发明实施例提供了一种视频播放方法,应用于终端,如图2所示,该方法可以包括如下步骤:
在步骤S210中,在终端播放视频时,监测终端的网络传输速率。
用户在通过终端网上在线观看视频,或者通过视频播放器点播观看某些视频时,由于上网高峰期或其他原因,造成用户网络传输速率不稳定时,会导致用户不能正常观看视频。
很多视频播放器通过服务器为用户提供了多码率的视频,这样用户在终端的网络传输速率不佳的情况下,造成观看的视频画面出现卡顿等现象,这时用户还需手动选择视频播放器上的清晰度,例如,在用户观看清晰度为720p的视频时,如果当前网速较慢,导致出现卡顿现象,用户可能会选择观看480p的视频,而一旦终端的网络传输速率恢复到可以支持播放720p的视频,用户还不会发觉,仍旧会继续观看清晰度为480p的视频,这样大大降低了用户的观看体验。另外,如果用户感觉清晰度为480p的视频观看质量不佳,可能会不断尝试从清晰度为480p切换到清晰度为720p,然而如果终端当前的网速没有恢复到足以支持终端播放清晰度为720p的视频,频繁的视频清晰度切换操作也会严重影响用户的正常观看视频。
另外,在监测终端的网络传输速率时,可以实时获取终端的当前网络传输速率,还可以周期性的获取终端的网络传输速率,抑或是求出某一时间段内的平均网络传输速率等,可以根据需要设定,本发明实施例不限于此。
在步骤S220中,获取与网络传输速率相匹配的目标码率。
本法发明实施例中将终端当前的网络传输速率与所需播放视频的码率(即清晰度)结合起来,以便动态的调整终端所需播放视频的清晰度。
因此,需要在获取与网络传输速率相匹配的目标码率,以便播放与目标码率对应的视频,以适应终端当前的网络传输速率,避免卡顿等现象的发生。
在步骤S230中,向预设服务器发送包含目标码率的视频获取请求,以使预设服务器根据接收到的视频获取请求,向终端发送与视频获取请求相匹配的目标视频数据。
为了获取到与终端当前的网络传输速率相匹配的视频数据,需要向预设服务器发送包含目标码率的视频获取请求。
在步骤S240中,获取预设服务器发送的目标视频数据,并在终端上播放目标视频数据。
在获取到终端发送的与终端当前网络传输相匹配的目标视频数据后,就可以在终端上播放该目标视频数据,使得播放的目标视频数据与终端的当前网络传输速率相适应,避免因网络状况而导致的播放卡顿等现象的发生。
本发明实施例提供的视频播放方法,在终端播放视频时,监测该终端的网络传输速率,并获取与该网络传输速率相匹配的目标码率,并向预设服务器发送包含该目标码率的视频获取请求,以使预设服务器根据接收到的该视频获取请求向终端发送对应的目标视频数据,在终端上播放预设服务器发送的目标视频数据。这样在终端上播放的目标视频数据可以适应终端的网络传输的变化,使得终端在网络传输速率较低时,也能正常播放用户所需观看的视频,避免因终端网络状况不佳而出现卡顿时,还需用户手动调节视频播放的清晰度。
为了详细阐述如何获取与终端的网络传输速率相匹配的目标码率,作为图2方法的细化,在本发明的另一实施例中,如图3所示,步骤S220还可以包括如下步骤:
在步骤S221中,获取预先建立的码率关系对应表。
示例性的,如表1所示,表1为码率关系对应表,给出了一定情况下终端的部分网络传输速率下所支持播放的码率情况,具体可以根据用户的实际情况进行选择或定义。
表1
网络传输速率 |
码率 |
100kbps~200kbps |
480p |
200kbps~300kbps |
720p |
≥300kbps |
1080p |
在步骤S222中,在码率关系对应表中查找与网络传输速率相对应的目标码率。
通过查找码率关系对应表,可以在获取到终端当前的网络传输速率的情况下,查找与网络传输速率对应的目标码率。例如,在终端当前的网络传输速率为105kbps时,通过在码率关系对应表中查找与之对应的码率可知,105kbps对应的目标码率为480p,说明终端此时的网络传输速率支持播放480p的视频。
作为图2方法的细化,在本发明提供的又一实施例中,如图4所示,步骤S210还可以包括如下步骤:
在步骤S211中,实时获取所述终端的网络传输速率。
在步骤S212中,判断所述网络传输速率是否大于预设网络传输速率。
当所述网络传输速率法院预设网络传输速率时,执行步骤S220。
由于终端的网络传输速率可能是有时候高,有时候低,但有时少许的网络传输速率的变化不影响终端支持播放视频的码率,因此需要对终端传输的网络传输速率进行判断,在网络传输速率超过或低于某个网络传输速率阈值时,执行如查找表1中与当前网络传输速率对应的码率的步骤。示例性的,在终端的网络传输速率在100kbps~200kbps之间变动时,无需重新向预设服务器发送视频获取请求,只需按照原有的视频码率获取播放即可,只有超过对应的区间范围时,才重新向预设服务器发送视频获取请求,以调整播放视频的码率,适应当前的网络传输速率,以正常播放视频,播放当前网络传输速率支持的最大码率的视频。
由于用户通过终端点播或在在线观看视频时,需要通过终端向预设服务器发送相应的视频获取请求,预设服务器在获取到该请求后,会将与该请求对应的视频数据发送给终端,以在该终端上播放。因此,为了详细阐述上述终端100与服务器200之间在服务器200侧执行流程,以解决用户在观看视频中,由于终端当前的网络状况还需手动选择视频清晰度的问题,本发明实施例还提供了一种视频播放方法,应用于服务器,如图5所示,该方法可以包括如下步骤:
在步骤S510中,接收预设终端发送的视频获取请求。
视频获取请求中包括目标码率,由于本发明实施例中,服务器向终端发送的视频数据为TS文件,由于视频中同一视频内容的TS文件可以有多个码率,因此需要将对应于目标码率的TS文件发送给预设终端。
在步骤S520中,获取与视频获取请求相匹配的目标视频数据。
仍旧可以结合上述实施例及表1来进行说明,这里不在赘述。
在步骤S530中,将目标视频数据发送给预设终端。
需要说明的是,在获取与视频获取请求对应的目标视频数据时,还需要根据终端播放视频的播放时刻来选择下一时刻所需播放的视频,避免发送错误内容的视频TS文件。
作为图5方法的细化,在本发明提供的又一实施例中,视频获取请求包括播放时刻和目标码率,目标视频数据为TS视频文件;如图6所示,步骤S520还可以包括如下步骤:
在步骤S521中,查找与目标码率相对应的视频源文件。
由于同一内容的视频可以包括多个不同码率的视频源文件,因此首先需要查找与目标码率相对应的视频源文件,仍旧可以结合上述实施例及表1来说明。示例性的,如果当前终端的网络传输速率为105kbps,那么经过查找表1可知,此时该网络传输速率下对应的码率为480p,这样查找480p对应的视频源文件。其中,不同码率的源文件可能保存在同一服务器下,也可能保存在不同服务器下。
在步骤S522中,根据播放时刻获取视频源文件中的目标TS视频文件。
在步骤S523中,将目标TS文件作为目标视频数据。
由于同一个视频被切分为多个TS文件,为了使终端播放的视频为连续的播放,避免播放混乱,需要根据视频的播放时刻来确定视频源文件中的目标TS视频文件。示例性的,在该播放时刻为12分55秒时,查找12分55秒中对应的TS文件在视频源文件中的下一个TS文件,将下一个TS文件作为目标TS视频文件。
本发明实施例中提供的视频播放方法,在服务器侧执行时,在接收到预设终端发送的视频获取请求后,还需获取与该视频获取请求相匹配的目标视频数据,并将该目标视频数据发送给预设终端。这样在预设终端上播放的目标视频数据可以适应终端的网络传输的变化,使得终端在网络传输速率较低时,也能正常播放用户所需观看的视频,避免因终端网络状况不佳而出现卡顿时,还需用户手动调节视频播放的清晰度。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,作为对上述各实施例的实现,本发明实施例还提供了一种视频播放装置,该装置位于终端中,如图7所示,该装置包括:网络传输速率监测单元10、目标码率获取单元20、视频获取请求单元30、目标视频数据获取单元40和目标视频数据播放单元50,其中,
网络传输速率监测单元10,用于在所述终端播放视频时,监测所述终端的网络传输速率;
目标码率获取单元20,用于获取与所述网络传输速率相匹配的目标码率;
视频获取请求单元30,用于向预设服务器发送包含所述目标码率的视频获取请求,以使所述预设服务器根据接收到的所述视频获取请求,向所述终端发送与所述视频获取请求相匹配的目标视频数据;
目标视频数据获取单元40,用于获取所述预设服务器发送的所述目标视频数据;
目标视频数据播放单元50,用于在所述终端上播放所述目标视频数据。
在本发明又一实施例中,基于图7,如图8所示,所述目标码率获取单元20,包括:
码率关系对应表获取模块21,用于获取预先建立的码率关系对应表;
目标码率获取模块22,用于在所述码率关系对应表中查找与所述网络传输速率相对应的目标码率。
在本发明又一实施例中,基于图7,如图9所示,所述网络传输速率监测单元10,包括:
网络传输速率获取模块11,用于实时获取所述终端的网络传输速率;
网络传输速率判断模块12,用于判断所述网络传输速率是否大于预设网络传输速率。
并且,作为对上述各实施例的实现,本发明实施例还提供了一种视频播放装置,该装置位于服务器中,如图10所示,该装置包括:
视频获取请求接收单元910,用于接收预设终端发送的视频获取请求;
目标视频数据获取单元920,用于获取与所述视频获取请求相匹配的目标视频数据;
目标视频数据发送单元930,用于将所述目标视频数据发送给所述预设终端。
在本发明又一实施例中,基于图10,如图11所示,所述视频获取请求包括播放时刻和目标码率,所述目标视频数据为TS视频文件;所述目标视频数据获取单元920,包括:
视频源文件查找模块921,用于查找与所述目标码率相对应的视频源文件;
目标TS视频文件获取模块922,用于根据所述播放时刻获取所述视频源文件中的目标TS视频文件;
目标视频数据确定模块923,用于将所述目标TS文件作为所述目标视频数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供的视频播放装置,在终端播放视频时,监测该终端的网络传输速率,并获取与该网络传输速率相匹配的目标码率,并向预设服务器发送包含该目标码率的视频获取请求,以使预设服务器根据接收到的该视频获取请求向终端发送对应的目标视频数据,在终端上播放预设服务器发送的目标视频数据。这样在终端上播放的目标视频数据可以适应终端的网络传输的变化,使得终端在网络传输速率较低时,也能正常播放用户所需观看的视频,避免因终端网络状况不佳而出现卡顿时,还需用户手动调节视频播放的清晰度。
可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。