CN105025391A - 视频播放方法和装置 - Google Patents

视频播放方法和装置 Download PDF

Info

Publication number
CN105025391A
CN105025391A CN201410182809.0A CN201410182809A CN105025391A CN 105025391 A CN105025391 A CN 105025391A CN 201410182809 A CN201410182809 A CN 201410182809A CN 105025391 A CN105025391 A CN 105025391A
Authority
CN
China
Prior art keywords
server
current slice
file
terminal
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410182809.0A
Other languages
English (en)
Inventor
刘刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410182809.0A priority Critical patent/CN105025391A/zh
Priority to PCT/CN2015/077762 priority patent/WO2015165395A1/en
Publication of CN105025391A publication Critical patent/CN105025391A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种视频播放方法和装置。其中,该方法包括:终端接收输入的视频播放指令,其中,视频播放指令用于请求播放视频文件中的当前分片文件,视频文件具有包括当前分片文件在内的多个分片文件;终端从多个服务器中的一个获取当前分片文件,其中,多个服务器中的每一个均存储有当前分片文件;终端播放当前分片文件。本发明解决了现有技术中由单一的服务器获取视频文件而导致的播放流畅度低的技术问题,达到了提高视频文件播放的流畅度的技术。

Description

视频播放方法和装置
技术领域
本发明涉及多媒体技术领域,具体而言,涉及一种视频播放方法和装置。
背景技术
目前,现有技术中的视频播放主要采用如图1所示的点播方法,其中,点播方法的具体流程如图1中的步骤S102至步骤S116。通常,现有的点播方法是从单个数据源(例如,一个服务器)传输视频数据,然而数据源的质量难以保证,而且数据传输的成本很高,目前大部分的视频网站带宽成本占了成本非常大的一部分。由于网络环境的复杂性,特别是对于CDN(Content Delivery Network,内容分发网络)始终无法覆盖到的用户而言,从单个数据源获取视频数据的效率和速度无法保证,从而在网络传输速度较慢或者无法与数据源进行连接等情况下,在终端上无法启动视频的播放或者在视频播放时出现明显的卡顿,这样导致视频播放的流畅度很低。
此外,现有技术中的离线下载,通常使用边下边播技术,只能针对特定的格式起作用,同时还和影片码率及用户带宽有关系。例如,对于码率大于用户带宽的影片,即便离线服务器提供下载加速,下载速度也不可能大于用户带宽,就不能流畅播,此时需要将原影片转码成低码率影片,使得转码后的影片的码率低于用户带宽,才能流畅播放转码后的影片。因此,在移动终端上进行视频播放、且移动终端上的播放器不支持所下载的视频的格式时,则需要对所下载的视频进行转码和加载。然而,采用这种方式需要较长的缓冲时间。此外,在对上述视频完成转码后,由于需要加载整个视频的索引信息,因此,当该视频的文件大小很大时,需要较长的启动时间,这大大影响了视频的播放时间(特别是首次加载的时间)。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种视频播放方法和装置,以至少解决现有技术中由单一的服务器获取视频文件而导致的播放流畅度低的技术问题。
根据本发明实施例的一个方面,提供了一种视频播放方法,包括:终端接收输入的视频播放指令,其中,上述视频播放指令用于请求播放视频文件中的当前分片文件,上述视频文件具有包括上述当前分片文件在内的多个分片文件;上述终端从多个服务器中的一个获取上述当前分片文件,其中,上述多个服务器中的每一个均存储有上述当前分片文件;上述终端播放上述当前分片文件。
可选地,上述终端从多个服务器中的一个获取上述当前分片文件包括:在上述终端从上述多个服务器中的一个服务器获取上述当前分片文件失败的情况下上述终端从上述多个服务器中的另一个服务器获取上述当前分片文件。
可选地,上述在上述终端从上述多个服务器中的一个服务器获取上述当前分片文件失败的情况下上述终端从上述多个服务器中的另一个服务器获取上述当前分片文件包括:上述终端向上述多个服务器中的第一服务器发送第一分片获取请求,其中,上述第一分片获取请求用于获取上述当前分片文件;若上述终端在预定的第一时间段内未接收到上述第一服务器发送的分片获取响应、或上述终端接收到上述第一服务器发送的分片获取失败响应、或上述终端在预定的第二时间段内未完成对上述第一服务器发送的上述当前分片文件的接收,则上述终端向上述多个服务器中的第二服务器发送第二分片获取请求,其中,上述第二分片获取请求用于获取上述当前分片文件;上述终端接收上述第二服务器发送的上述当前分片文件。
可选地,上述在上述终端从上述多个服务器中的一个服务器获取上述当前分片文件失败的情况下上述终端从上述多个服务器中的另一个服务器获取上述当前分片文件包括:上述终端向上述多个服务器中的每一个发送第三分片获取请求,其中,上述第一分片获取请求用于获取上述当前分片文件;上述终端从上述多个服务器中向上述终端发送了分片获取响应的服务器中选择一个作为第三服务器,并向上述第三服务器发送第一链路建立请求;若上述终端在预定的第三时间段内未接收到上述第三服务器发送的链路建立响应、或上述终端接收到上述第三服务器发送的链路建立失败响应、或上述终端在预定的第四时间段内未完成对上述第三服务器发送的上述当前分片文件的接收,则上述终端从向上述终端发送了上述分片获取响应的服务器中选择另一个作为第四服务器,并向上述第四服务器发送第二链路建立请求;上述终端接收上述第四服务器发送的上述当前分片文件。
可选地,上述第三服务器发送的分片获取响应是上述终端在上述多个服务器中第一个接收到的分片获取响应。
可选地,上述终端通过以下方式之一播放上述当前分片文件:上述终端将上述当前分片文件存在存储器中,并使用上述终端上安装的视频播放器播放上述当前分片文件;或者,上述终端将上述当前分片文件存在内存中,并使用上述终端上安装的视频播放器播放上述内存中存储的上述当前分片文件,在上述当前分片文件播放完成后从上述内存中删除上述当前分片文件;或者,上述终端将上述当前分片文件封装成能被上述视频播放器调用的本地视频服务,使用上述终端上安装的视频播放器调用上述本地视频服务,以播放上述当前分片文件。
可选地,在上述终端接收输入的视频播放指令之前,还包括:将与上述视频文件对应的原始文件进行转码,得到多个转码后文件,其中,每个上述转码后文件的码率不同;对每个上述转码后文件进行分片,得到每个上述转码后文件的分片文件;将每个上述转码后文件的每个上述分片文件存储在上述多个服务器中。
根据本发明实施例的另一方面,还提供了一种视频播放装置,包括:接收单元,用于终端接收输入的视频播放指令,其中,上述视频播放指令用于请求播放视频文件中的当前分片文件,上述视频文件具有包括上述当前分片文件在内的多个分片文件;获取单元,用于从多个服务器中的一个获取上述当前分片文件,其中,上述多个服务器中的每一个均存储有上述当前分片文件;播放单元,用于播放上述当前分片文件。
可选地,上述获取单元包括:获取模块,用于在从上述多个服务器中的一个服务器获取上述当前分片文件失败的情况下上述终端从上述多个服务器中的另一个服务器获取上述当前分片文件。
可选地,上述获取模块包括:第一发送子模块,用于向上述多个服务器中的第一服务器发送第一分片获取请求,其中,上述第一分片获取请求用于获取上述当前分片文件;第二发送子模块,用于在预定的第一时间段内未接收到上述第一服务器发送的分片获取响应、或接收到上述第一服务器发送的分片获取失败响应、或在预定的第二时间段内未完成对上述第一服务器发送的上述当前分片文件的接收时,向上述多个服务器中的第二服务器发送第二分片获取请求,其中,上述第二分片获取请求用于获取上述当前分片文件;第一接收子模块,用于接收上述第二服务器发送的上述当前分片文件。
可选地,上述获取模块包括:第三发送子模块,用于向上述多个服务器中的每一个发送第三分片获取请求,其中,上述第一分片获取请求用于获取上述当前分片文件;第一选择子模块,用于从上述多个服务器中发送的分片获取响应的服务器中选择一个作为第三服务器,并向上述第三服务器发送第一链路建立请求;第二选择子模块,在预定的第三时间段内未接收到上述第三服务器发送的链路建立响应、或接收到上述第三服务器发送的链路建立失败响应、或在预定的第四时间段内未完成对上述第三服务器发送的上述当前分片文件的接收时,从发送的上述分片获取响应的服务器中选择另一个作为第四服务器,并向上述第四服务器发送第二链路建立请求;第二接收子模块,用于接收上述第四服务器发送的上述当前分片文件。
可选地,上述第一选择子模块所选择的上述第三服务器发送的分片获取响应是上述视频播放装置在上述多个服务器中第一个接收到的分片获取响应。
可选地,上述播放单元包括以下之一:第一播放模块,用于播放存储在上述视频播放装置的存储器中的上述当前分片文件;或者,第二播放模块,用于播放存储在上述视频播放装置的内存中的上述当前分片文件,并在上述当前分片文件播放完成后从上述内存中删除上述当前分片文件;或者,第三播放模块,用于调用由上述当前分片文件封装成的本地视频服务,使用已安装的视频播放器调用上述本地视频服务,以播放上述当前分片文件。
在本发明实施例中,借助于多源传输技术,将视频播放过程中播放器单纯的通过固定数据源获取视频文件中的分片文件的方式,改为从多个数据源获取分片文件的方式,这样当一个数据源无法将分片文件传输给终端时,终端可以向其他数据源请求该分片文件,从而保证了获取分片文件的速度,解决现有技术中由单一的服务器获取视频文件而导致的播放流畅度低的技术问题,提高了视频文件播放的流畅度。
此外,在本发明实施例中,在通过多源传输的方式获取到视频文件的分片文件之后,可以将获取到的分片文件存为本地临时文件或者封装为本地视频服务,然后通过终端上的视频播放器播放上述本地临时文件或调用本地视频服务,通过这种方式解除了视频文件的传输过程与视频播放器的播放过程之间的耦合,实现了传输过程和播放过程相分离。
进一步,通过在服务器端对视频文件进行转码和切片操作,可以将视频文件转换成各种不同视频格式的视频文件,从而有效地降低了视频播放器的大小。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的视频播放方法的流程示意图;
图2是根据本发明实施例的一种可选的视频播放方法的流程示意图;
图3是根据本发明实施例的另一种可选的视频播放方法的流程示意图;
图4是根据本发明实施例的又一种可选的视频播放方法的流程示意图;
图5是根据本发明实施例的又一种可选的视频播放方法的流程示意图;
图6是根据本发明实施例的又一种可选的视频播放方法的流程示意图;以及
图7是根据本发明实施例的一种可选的视频播放装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种视频播放方法,如图2所示,该方法包括:
S202,终端接收输入的视频播放指令,其中,该视频播放指令用于请求播放视频文件中的当前分片文件,上述视频文件具有包括所述当前分片文件在内的多个分片文件;
S204,终端从多个服务器中的一个获取当前分片文件,其中,所述多个服务器中的每一个均存储有所述当前分片文件;
S206,终端播放当前分片文件。
可选地,在本实施例中上述视频播放方法可以应用于终端上安装的视频播放器中,其中,上述终端可以包括以下之一:手机、平板电脑。
可选地,图3提供了本实施例中的一种可选的视频播放方法。在图3所示的视频播放方法中涉及以下模块:
1)视频播放内核模块
可选地,上述视频播放内核模块用于接收视频播放终端控制接口层提供的各种视频连接,可以是URL,eMule链接,Bt种子或者Magnet链,根据文件hash/bt+index/emule链接等来查询是否能够云端播放;
可选地,上述视频播放内核模块还用于读取视频数据交换模块的视频文件对应的数据,上述数据可以是保存在本地的临时文件,在播放完成后从内存中直接删除,也可以是通过本地http的视频服务器调用的本地视频服务。然后对媒体视频文件的播放、分片的处理、界面的渲染等工作。
可选地,在本实施例中的视频播放器还需要调用多源传输内核:从播放链接进行实际的视频文件下载,并交给播放器去播放,多源传输内核模块负责高效从云端存储服务器及对端的peer节点上高效传输需要进行播放的视频文件,其中云端存储服务器地址及对端peer的地址通过多源传输索引***获取,多源数据传输模块按照播放器的控制指令,下载待播放文件的特定部分;解析待播放文件结构,告知下载模块需要下载的特定部分起止位置;解析待播放文件结构,分离音视频包;对音视频包进行解码;显示和播放解码后的音视频数据,进行具体的播放;
可选地,在本实施例中的视频数据交换模块包括:通过以下两种方式实现服务器和终端上的视频播放器的高效数据交换及无缝点播功能:视频数据http服务、本地临时文件。
可选地,播放器与下载内核之间的交换过程包括但不限于:播放器随机查找seek处理、分片无缝切换处理。可选地,在本实施例中用户可以通过视频播放器的控制层随意拖动正在播放的视频文件。当采用本地临时文件交换数据的方式时,随机查找seek到某一个位置的时候,需要根据目标时长位置和切片大小,计算出第几个分片,分片文件下载传输的Range地址,如果到了一个分片的边缘,需要跨片传输数据,先加载新的分片文件。将请求的Range地址传输给多源下载内核,多源下载内核会调整下载的range地址,优先传输需要播放的视频的分片文件,同时将下载传输的速度和进度信息回调给播放器,播放器得到可以播放的分片文件后就可以进行渲染播放,此时是通过文件的偏移接口直接读取本地临时文件的视频的分片文件。
可选地,当采用本地视频http服务器的方式进行数据交换时,随机查找seek的地址转换为本地URL地址Range信息,本地http服务器在转换为多源下载内核的远端数据下载请求从云存储服务器及互联网上下载数据,下载的数据在逐层通知上层直到播放器进行播放。
可选地,在本实施例中为了保证播放的体验和加载的速度,对转码后的视频文件进行分片。可选地,在本实施例中分片无缝切换可采用以下方式:采用两个播放视图平铺在一起,第一个分片文件对应的播放视图开始播的时候,第二个分片文件开始准备,当收到第一个分片文件对应的播放视图播放结束的回调时,第一个播放视图隐掉,第二个播放视图开始播放,这样确保每次都有一个处于分片文件对应的播放视图激活状态。
可选地,在本实施例中播放和查询下载过程中的各种日志和状态信息上报给统计服务器供后续的分析。
2)视频播放终端控制接口:
可选地,在本实施例中上述控制接口用于控制播放功能界面,完成和用户的交互操作,响应用户对视频文件的操作请求动作;
可选地,在本实施例中上述控制接口还用于将用户提供的各种视频连接提交给视频播放内核模块,确定是否能够直接播放,可选地,在本实施例中的视频连接可以但不限于是:URL,eMule链接,Bt种子、Magnet链,
3)云端播放查询接口服务器
可选地,在本实施例中上述云端播放查询接口服务器用于接收视频播放内核模块的云端播放查询,可选地,在本实施例中通过播放读取转码结果数据库,获取播放视频的分片信息,URL地址及时长等相关信息;
可选地,在本实施例中当待查询的视频文件无法直接播放,可以调用转码任务分发服务器直接进行原始视频文件的转码切片操作或者提交到离线下载服务器先进行离线下载保存到云存储服务器上。
4)转码结果数据库
可选地,在本实施例中上述转码结果数据库用于保存转码切片服务器对原始视频文件的转码及切片后的视频文件标识别,视频文件大小时长等信息;
可选地,在本实施例中上述转码结果数据库还用于为云播放查询接口服务器提供查询服务。
5)转码切片服务器群
可选地,在本实施例中的转码切片服务器群用于接收转码任务分发服器的转码切片任务调度;
可选地,在本实施例中上述转码切片服务器群还用于从云存储服务器上下载视频文件到本地,对视频文件进行各种清晰度和码率,分辨率的格式转换操作。可选地,在本实施例中还要对转码后的视频文件进行切片操作。
可选地,在本实施例中上述转码切片服务器群还用于将转码切片的结果信息保存在转码结果数据库当中。
6)转码任务分发服务器
可选地,在本实施例中上述转码任务分发处理其用于接收云端播放查询接口服务器提交的不能直接进行云端播放的视频任务信息,如果该视频的原始文件在云端存储服务器上存在,就直接调用转码切片服务器群进行转码切片操作,否则先调用离线下载集群***进行云端下载服务,将下载的文件保存到云端存储服务器上。
7)多源传输索引***
可选地,在本实施例中为视频播放器内核提供多源数据传输的索引***服务,提升数据传输的效率。可选地,在本实施例中可以包括:p2s和p2p索引服务两个部分;
可选地,在本实施例中的p2s服务通过文件传输的入口URL地址或者本地临时文件的标识,查询一批包含同样视频文件的其他URL地址信息集合,以供多源传输内核下载对应文件。可选地,在本实施例中的p2p服务用于提供其他正在进行同样视频文件传输的对端IP地址和端口。
8)视频内容提供/离线下载***
可选地,在本实施例中上述***用于接收转码分服务器的调度,从任务数据库中获取下载链接,进行任务下载。
可选地,在本实施例中上述***还用于将云端下载完成的视频文件存储在云端存储服务器上,以供终端上的视频播放器取回。
可选地,在本实施例中上述***还用于为转码切片服务器集群提供原始数据服务,同时保存转码和切片完成后的视频文件。
可选地,在本实施例中上述***作为内容源,也是非互联网上下载内容,比如,主动运营的拥有版权视频的内容的数据源,通过这里将视频文件对应的数据传输到云端存储服务器或者各种CDN数据源服务器上。
9)云端存储服务器
可选地,在本实施例中上述云端存储服务器用于保存离线下载***在服务器端下载完成的视频文件对应的数据;
可选地,在本实施例中上述云端存储服务器还用于作为视频播放单下载离线取回视频文件对应的数据的数据源提供服务。
可选地,在本实施例中上述云端存储服务器还用于为转码服务器切片提供转码输出的数据源同时保存切片之后的完整视频分片文件。
10)统计服务器
可选地,在本实施例中的统计服务器用于接收视频播放下载过程中URL下载速度、下载时间、连通情况、下载结果、文件大小等信息的上报。
可选地,在本实施例中的统计服务器还用于统计接收视频播放过程当中视频内容的加载速度和播放缓冲过程当中视频随机缓存的次数和时长,用来评估和分析视频播放的效果体验。
可选地,在本实施例中,上述视频文件预先被划分成多个分片文件,其中,可以但不限于根据预定的分片长度对上述视频文件进行分片划分,例如,以5分钟为分片长度对播放时长为50分钟的视频文件进行分片划分,得到10个分片文件。可选地,可以根据不同的因素确定上述分片长度,上述因素包括但不限于以下至少之一:视频文件的播放时长、用于存储分片文件的存储空间大小、网络传输速度。
可选地,在本实施例中视频播放指令用于请求播放视频文件中的当前分片文件,视频文件具有包括当前分片文件在内的多个分片文件。可选地,在本实施例中的多个分片文件中的每一个分片文件在多个服务器中均有存储。例如,如图4所示,视频文件包括10个分片文件,终端402所请求的当前分片文件为上述10个分片文件中的第2个分片文件,该第2个分片文件存储在多个服务器(例如,服务器404-1、服务器404-2、服务器404-3、服务器404-4)中,以在该多个服务器之间形成对第2个分片文件的备份。
可选地,上述终端从多个服务器中的一个获取上述当前分片文件包括:在终端从上述多个服务器中的一个服务器获取上述当前分片文件失败的情况下,上述终端从上述多个服务器中的另一个服务器获取上述当前分片文件。
可选地,终端从一个服务器上获取当前分片文件的过程包括:
S1,终端向该服务器发送分片获取请求;
S2,终端接收该服务器发送的分片获取响应;
S3,终端向该服务器发送链路建立请求;
S4,终端接收该服务器发送的链路建立响应;
S5,终端在终端与该服务器之间建立的链路上接收该服务器发送的当前分片文件。
可选地,上述过程仅是终端从服务器上获取当前分片文件的一种示例,本实施例还适用于其他获取当前分片文件的过程。在上述获取当前分片文件的过程中,当前分片文件获取失败的条件可以包括但不限于以下之一:
1)终端在预定的时间段内没有接收到服务器发送的分片获取响应;
2)终端在预定的时间段内接收到服务器发送的分片获取失败响应;
3)终端在预定的时间段内没有接收到服务器发送的链路建立响应;
4)终端在预定的时间段内接收到服务器发送的链路建立失败响应;
5)终端在预定的时间段内未完成对服务器发送的当前分片文件的接收。
可选地,在本实施例中如图3所示在终端上的视频播放内核模块引入了多源数据传输模块,重新提供了全新的和视频播放器进行数据交互的方式。其中,上述交互方式可以包括但不限于:采用本地临时文件、视频数据http本地服务的方式,以实现与终端上的视频播放器进行数据交换。
可选地,在本实施例中在终端接收输入的视频播放指令之前,将对视频文件对应的原始文件进行转码,得到多个转码后文件,再对每个转码后文件进行分片。可选地,在本实施例中的每个转码后文件的码率不同,以使终端上的视频播放器无需采用全格式的播放器,也就是说,播放器的大小和尺寸可以极大简化,只要支持预定的格式,就可通过转码的方式,将多种不同格式的视频文件转成预定格式的视频文件在上述视频播放器中播放。可选地,在本实施例中的转码可以但不限于为对上述视频文件进行各种清晰度、码率、分辨率的格式转换的操作。例如,WMV格式的视频文件为码率相对较高、分辨率相对较高的超清视频文件,若终端上的视频播放器仅支持FLV格式的视频文件(其中,FLV格式的视频文件为码率相对较低、分辨率相对较低的普通视频文件),则需对上述WMV格式的视频文件进行转码操作,得到对应的FLV格式的视频文件。
又例如,终端上的视频播放器仅支持MP4格式的视频文件,当服务器上仅存储了WMV格式的视频文件时,由于WMV格式的视频文件在上述终端的视频播放器中不能正常播放,因而,可以在服务器侧将WMV格式的视频文件转码为WMV格式的视频文件。
进一步,如表1所示,终端402上的视频播放器正在播放视频文件Movie_1,该视频文件在服务器侧被转码为不同格式(例如,FLV,WMV,RA,MP4)的转码后文件,然后将不同格式的转码后文件中的每一个分片划分为多个分片文件,例如,每个转码后文件具有的分片文件包括:分片文件f-1、f-2、f-3、f-4、f-5、f-6;上述每个分片文件都存储在多个服务器上,以在多个服务器(例如,包括服务器404-1、服务器404-2、服务器404-3、服务器404-4)上形成对上述分片文件的备份。作为一种示例,上述分片文件、存储格式、以及用于存储分片文件的服务器之间的对应关系如下表1所示。
表1
需要说明的是,上述分片文件的个数、格式类别、以及对应关系仅是本申请的一种示例,本实施例对分片文件的个数、格式类别、以及对应关系不做限定,本实施例还可以适用于其他的场景,例如,在服务器404-1、服务器404-2、服务器404-3和服务器404-4上均存储有格式为FLV的转码后文件的6个分片文件,格式为WMV的转码后文件的6个分片文件,格式为RA的转码后文件的6个分片文件,格式为MP4的转码后文件的6个分片文件。
以下具体结合示例描述,如图4-5所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储,假设根据预定的条件(例如,预定条件为传输速度最快的链路)选择了服务器404-3,则上述终端402将播放由服务器404-3获取的当前分片文件f-5。
通过本发明提供的实施例,通过将视频文件进行分片,并由多个服务器中的一个获取当前分片文件进行播放,从而保证了获取分片文件的速度,解决现有技术中由单一的服务器获取视频文件而导致的播放流畅度低的技术问题,提高了视频文件播放的流畅度。
作为一种可选的方案,上述步骤终端从多个服务器中的一个获取当前分片文件包括:
S1,在终端从多个服务器中的一个服务器获取当前分片文件失败的情况下终端从多个服务器中的另一个服务器获取当前分片文件。
可选地,在本实施例中如图3所示,如果获取的当前分片文件不能直接在终端上播放,则需要通过转码任务分发服务器,将对应的原始视频文件分发到转码切片服务器集群中进行对应的转码和切片操作,然后从上述转码切片服务器集群中的一个服务器获取转码后的视频文件中的分片文件。
可选地,在本实施例中如图3所示,视频播放器通过视频播放终端控制接口来获取当前分片文件的入口地址,然后通过云端播放查询接口服务器获取能够直接进行本地播放的流媒体数据流地址,查询时候获取的基本信息包括分片文件的分片信息,其中上述分片信息可以包括但不限于:分片URL地址,文件的Hash标识、分片文件的Hash标识、时长。
例如,如图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储,假设根据预定的条件(例如,预定条件为传输速度最快的链路)选择了服务器404-3,然而在从服务器404-3获取当前分片文件失败时,终端依次尝试从上述多个服务器中的其他服务器(例如,服务器404-1、服务器404-2、服务器404-4中一个)获取上述当前分片文件f-5,直到成功地获取到当前分片文件f-5为止。
通过本发明提供的实施例,当多个服务器中的一个服务器获取当前分片文件失败的情况下,终端将从多个服务器中的另一个服务器获取当前分片文件,通过这种多源传输视频文件的方式,可以保证获取当前分片文件的速度。
作为一种可选的方案,上述步骤S204,在终端从多个服务器中的一个服务器获取当前分片文件失败的情况下终端从多个服务器中的另一个服务器获取当前分片文件包括:
S1,终端向多个服务器中的第一服务器发送第一分片获取请求,其中,第一分片获取请求用于获取当前分片文件;
S2,若终端在预定的第一时间段内未接收到第一服务器发送的分片获取响应、或终端接收到第一服务器发送的分片获取失败响应、或终端在预定的第二时间段内未完成对第一服务器发送的当前分片文件的接收,则终端向多个服务器中的第二服务器发送第二分片获取请求,其中,第二分片获取请求用于获取当前分片文件;
S3,终端接收第二服务器发送的当前分片文件。
可选地,在本实施例中的向多个服务器中的第一服务器(例如,服务器403-1)发送第一分片获取请求,其中,第一分片获取请求用于获取当前分片文件。在获取当前分片文件的过程中,可能获取失败,上述步骤S2提供了获取失败的几种条件。其中,在本实施例中的步骤S2中的第三种情况,在预定的第二时间段内未完成对第一服务器发送的当前分片文件的接收包括但不限于:终端在预定的时间段内没有接收到服务器发送的链路建立响应;终端在预定的时间段内接收到服务器发送的链路建立失败响应;终端在预定的时间段内未完成对服务器发送的当前分片文件的接收。
以下具体结合示例描述,结合图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设终端402向上述多个服务器中的服务器404-1发送当前分片文件f-5的获取请求,若终端402满足以下至少一种获取失败的条件:例如,终端402在预定的第一时间段(例如,1分钟)内没有接收到404-1发送的分片获取响应;或者终端402接收到404-1发送的分片获取失败响应;或者终端402在预定的第二时间段(例如,5分钟)内没有完成对服务器404-1发送的当前分片文件f-5的接收,则终端402将向多个服务器中的服务器404-2发送第二分片获取请求,其中,第二分片获取请求用于获取当前分片文件f-5,若成功获取当前分片文件f-5,终端402将接收服务器404-2发送的当前分片文件f-5。
通过本发明提供的实施例,在向多个服务器中的第一个服务器发送用于获取当前分片文件的第一分片获取请求后,若满足至少一条获取失败的条件,则终端将向多个服务器中的第二服务器发送同样用于获取当前分片文件的第二分片获取请求,从而保证了获取当前分片文件的速度。
作为一种可选的方案,上述步骤S104,在终端从多个服务器中的一个服务器获取当前分片文件失败的情况下终端从多个服务器中的另一个服务器获取当前分片文件包括:
S1,终端向多个服务器中的每一个发送第三分片获取请求,其中,第一分片获取请求用于获取当前分片文件;
S2,终端从多个服务器中向终端发送了分片获取响应的服务器中选择一个作为第三服务器,并向第三服务器发送第一链路建立请求;
S3,若终端在预定的第三时间段内未接收到第三服务器发送的链路建立响应、或终端接收到第三服务器发送的链路建立失败响应、或终端在预定的第四时间段内未完成对第三服务器发送的当前分片文件的接收,则终端从向终端发送了分片获取响应的服务器中选择另一个作为第四服务器,并向第四服务器发送第二链路建立请求;
S4,终端接收第四服务器发送的当前分片文件。
具体结合示例描述,结合图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设终端402向上述多个服务器中的服务器404-1发送当前分片文件f-5的获取请求,假设多个服务器中的服务器404-3向终端402发送了分片获取响应,则终端402向服务器404-3发送了第一链路建立请求,用于建立终端402与服务器404-3之间的传输链路来传输分片文件。
若终端402满足以下至少一种建立失败的条件:例如,终端402在预定的第三时间段(例如,2分钟)内没有接收到服务器404-3发送的链路建立响应;或终端402接收到服务器404-3发送的链路建立失败响应;或终端402在预定的第四时间段内(例如,3分钟)没有完成对服务器404-3发送的当前分片文件f-5的接收,则终端402将从向终端402成功发送了分片获取响应的服务器中选择另一个作为第四服务器(例如,服务器404-4),并向服务器404-4发送第二链路建立请求,用于建立终端402到服务器404-4之间的传输链路来传输分片文件,若成功建立链路,则终端402将接收服务器404-2发送的当前分片文件f-5。
通过本发明提供的实施例,在向终端成功发送了获取响应的服务器中选择一个作为第三服务器,并向上述第三服务器发送第一链路建立请求后,若满足至少一条建立失败的条件,则终端将向其他成功向其发送获取的服务器中选择一个作为第四服务器,并向第四服务器发送第二链路建立请求,以成功建立链路实现对视频文件的分片文件的接收,从而保证了获取当前分片文件的速度。
作为一种可选的方案,第三服务器发送的分片获取响应是终端在多个服务器中第一个接收到的分片获取响应。
可选地,在本实施例中选择第三服务器来发送第一链路建立请求的条件包括但不限于:第三服务器与终端之间的传输速度最快、第三服务器最先做出分片获取响应。
作为一种可选的方案,终端通过以下方式之一播放当前分片文件:
作为一种可选的实施方式,终端将当前分片文件存在存储器中,并使用终端上安装的视频播放器播放当前分片文件。
以下结合具体示例描述,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设当终端402与服务器404-2成功建立链路,则通过上述链路来传输终端402上的视频播放器所要播放的当前分片文件f-5。上述当前分片文件f-5从服务器404-2已下载到终端402的存储器,通过直接调用终端402的存储器中的当前分片文件f-5,以使终端402上安装的视频播放器可以正常播放当前分片文件f-5。
作为另一种可选地实施方式,终端将当前分片文件存在内存中,并使用终端上安装的视频播放器播放内存中存储的当前分片文件,在当前分片文件播放完成后从内存中删除当前分片文件。
以下结合具体示例描述,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设当终端402与服务器404-2成功建立链路,则通过上述链路来传输终端402上的视频播放器所要播放的当前分片文件f-5。上述当前分片文件f-5从服务器404-2已下载并保存到终端402的内存中,通过直接调用终端402的内存中的当前分片文件f-5,以使终端402上安装的视频播放器可以正常播放当前分片文件f-5,并在当前分片文件f-5播放完成后,就从终端402的内存中删除当前分片文件f-5。
作为又一种可选的实施方式,终端将当前分片文件封装成能被视频播放器调用的本地视频服务,使用终端上安装的视频播放器调用本地视频服务,以播放当前分片文件。
以下结合具体示例描述,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设当终端402与服务器404-2成功建立链路,则通过上述链路来传输终端402上的视频播放器所要播放的当前分片文件f-5。终端402将当前分片文件f-5封装成能被视频播放器调用的本地视频服务,其中,在本实施例中的本地视频服务可以为但不限于:视频文件到服务器的链接。例如,在终端402上设置有关于当前分片文件f-5的能被视频播放器调用的本地视频服务,则当要播放分片文件f-5时,选择采用了本地视频服务,则可通过对应的链接地址直接调用相应服务器中的当前分片文件f-5对应的数据。
通过本发明提供的实施例,将获取到的分片文件存为本地临时文件或者封装为本地视频服务,然后通过终端上的视频播放器播放上述本地临时文件或调用本地视频服务,通过这种方式解除了视频文件的传输过程与视频播放器的播放过程之间的耦合,实现了传输过程和播放过程相分离。
作为一种可选的方案,如图6所示,在步骤S202,在终端接收输入的视频播放指令之前,还包括
S602,将与视频文件对应的原始文件进行转码,得到多个转码后文件,其中,每个转码后文件的码率不同;
S604,对每个转码后文件进行分片,得到每个转码后文件的分片文件;
S606,将每个转码后文件的每个分片文件存储在多个服务器中。
可选地,在本实施例中对与视频文件对应的原始文件进行转码的方式可以包括但不限于:预先将视频文件转换成预定的格式,当接收到终端用于请求当前分片文件的请求时,根据上述请求,将上述终端所要获取的预定格式的视频文件发送给终端。
例如,结合附图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。服务器接收到终端402所发送的请求后,将根据上述请求将相应格式的视频文件发送给终端402。
进一步,对转码后的视频文件再进行切割分片,得到每个转码后文件的分片文件,并将每个转码后文件的每个分片文件存储在多个服务器(例如,服务器404-1、服务器404-2、服务器404-3、服务器404-4)中。
通过本发明的实施例,通过针对各种不同大小的移动设备和各种不同网络条件下码率,可以对视频文件进行转码操作,将视频文件转换成各种不同视频格式的文件保存在云端服务器上,为不同类型的终端提供对应的视频播放需求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述播放方法的视频播放装置,如图7所示,在本实施例中该装置包括:
1)接收单元702,用于终端接收输入的视频播放指令,其中,视频播放指令用于请求播放视频文件中的当前分片文件,视频文件具有包括当前分片文件在内的多个分片文件;
2)获取单元704,用于从多个服务器中的一个获取当前分片文件,其中,多个服务器中的每一个均存储有当前分片文件;
3)播放单元706,用于播放当前分片文件。
可选地,在本实施例中上述视频播放方法可以应用于终端上安装的视频播放器中,其中,上述终端可以包括以下之一:手机、平板电脑。
可选地,图3提供了本实施例中的一种可选的视频播放方法。在图3所示的视频播放方法中涉及以下模块:
1)视频播放内核模块
可选地,上述视频播放内核模块用于接收视频播放终端控制接口层提供的各种视频连接,可以是URL,eMule链接,Bt种子或者Magnet链,根据文件hash/bt+index/emule链接等来查询是否能够云端播放;
可选地,上述视频播放内核模块还用于读取视频数据交换模块的视频文件对应的数据,上述数据可以是保存在本地的临时文件,在播放完成后从内存中直接删除,也可以是通过本地http的视频服务器调用的本地视频服务。然后对媒体视频文件的播放、分片的处理、界面的渲染等工作。
可选地,在本实施例中的视频播放器还需要调用多源传输内核:从播放链接进行实际的视频文件下载,并交给播放器去播放,多源传输内核模块负责高效从云端存储服务器及对端的peer节点上高效传输需要进行播放的视频文件,其中云端存储服务器地址及对端peer的地址通过多源传输索引***获取,多源数据传输模块按照播放器的控制指令,下载待播放文件的特定部分;解析待播放文件结构,告知下载模块需要下载的特定部分起止位置;解析待播放文件结构,分离音视频包;对音视频包进行解码;显示和播放解码后的音视频数据,进行具体的播放;
可选地,在本实施例中的视频数据交换模块包括:通过以下两种方式实现服务器和终端上的视频播放器的高效数据交换及无缝点播功能:视频数据http服务、本地临时文件。
可选地,播放器与下载内核之间的交换过程包括但不限于:播放器随机查找seek处理、分片无缝切换处理。可选地,在本实施例中用户可以通过视频播放器的控制层随意拖动正在播放的视频文件。当采用本地临时文件交换数据的方式时,随机查找seek到某一个位置的时候,需要根据目标时长位置和切片大小,计算出第几个分片,分片文件下载传输的Range地址,如果到了一个分片的边缘,需要跨片传输数据,先加载新的分片文件。将请求的Range地址传输给多源下载内核,多源下载内核会调整下载的range地址,优先传输需要播放的视频的分片文件,同时将下载传输的速度和进度信息回调给播放器,播放器得到可以播放的分片文件后就可以进行渲染播放,此时是通过文件的偏移接口直接读取本地临时文件的视频的分片文件。
可选地,当采用本地视频http服务器的方式进行数据交换时,随机查找seek的地址转换为本地URL地址Range信息,本地http服务器在转换为多源下载内核的远端数据下载请求从云存储服务器及互联网上下载数据,下载的数据在逐层通知上层直到播放器进行播放。
可选地,在本实施例中为了保证播放的体验和加载的速度,对转码后的视频文件进行分片。可选地,在本实施例中分片无缝切换可采用以下方式:采用两个播放视图平铺在一起,第一个分片文件对应的播放视图开始播的时候,第二个分片文件开始准备,当收到第一个分片文件对应的播放视图播放结束的回调时,第一个播放视图隐掉,第二个播放视图开始播放,这样确保每次都有一个处于分片文件对应的播放视图激活状态。
可选地,在本实施例中播放和查询下载过程中的各种日志和状态信息上报给统计服务器供后续的分析。
2)视频播放终端控制接口:
可选地,在本实施例中上述控制接口用于控制播放功能界面,完成和用户的交互操作,响应用户对视频文件的操作请求动作;
可选地,在本实施例中上述控制接口还用于将用户提供的各种视频连接提交给视频播放内核模块,确定是否能够直接播放,可选地,在本实施例中的视频连接可以但不限于是:URL,eMule链接,Bt种子、Magnet链,
3)云端播放查询接口服务器
可选地,在本实施例中上述云端播放查询接口服务器用于接收视频播放内核模块的云端播放查询,可选地,在本实施例中通过播放读取转码结果数据库,获取播放视频的分片信息,URL地址及时长等相关信息;
可选地,在本实施例中当待查询的视频文件无法直接播放,可以调用转码任务分发服务器直接进行原始视频文件的转码切片操作或者提交到离线下载服务器先进行离线下载保存到云存储服务器上。
4)转码结果数据库
可选地,在本实施例中上述转码结果数据库用于保存转码切片服务器对原始视频文件的转码及切片后的视频文件标识别,视频文件大小时长等信息;
可选地,在本实施例中上述转码结果数据库还用于为云播放查询接口服务器提供查询服务。
5)转码切片服务器群
可选地,在本实施例中的转码切片服务器群用于接收转码任务分发服器的转码切片任务调度;
可选地,在本实施例中上述转码切片服务器群还用于从云存储服务器上下载视频文件到本地,对视频文件进行各种清晰度和码率,分辨率的格式转换操作。可选地,在本实施例中还要对转码后的视频文件进行切片操作。
可选地,在本实施例中上述转码切片服务器群还用于将转码切片的结果信息保存在转码结果数据库当中。
6)转码任务分发服务器
可选地,在本实施例中上述转码任务分发处理其用于接收云端播放查询接口服务器提交的不能直接进行云端播放的视频任务信息,如果该视频的原始文件在云端存储服务器上存在,就直接调用转码切片服务器群进行转码切片操作,否则先调用离线下载集群***进行云端下载服务,将下载的文件保存到云端存储服务器上。
7)多源传输索引***
可选地,在本实施例中为视频播放器内核提供多源数据传输的索引***服务,提升数据传输的效率。可选地,在本实施例中可以包括:p2s和p2p索引服务两个部分;
可选地,在本实施例中的p2s服务通过文件传输的入口URL地址或者本地临时文件的标识,查询一批包含同样视频文件的其他URL地址信息集合,以供多源传输内核下载对应文件。可选地,在本实施例中的p2p服务用于提供其他正在进行同样视频文件传输的对端IP地址和端口。
8)视频内容提供/离线下载***
可选地,在本实施例中上述***用于接收转码分服务器的调度,从任务数据库中获取下载链接,进行任务下载。
可选地,在本实施例中上述***还用于将云端下载完成的视频文件存储在云端存储服务器上,以供终端上的视频播放器取回。
可选地,在本实施例中上述***还用于为转码切片服务器集群提供原始数据服务,同时保存转码和切片完成后的视频文件。
可选地,在本实施例中上述***作为内容源,也是非互联网上下载内容,比如,主动运营的拥有版权视频的内容的数据源,通过这里将视频文件对应的数据传输到云端存储服务器或者各种CDN数据源服务器上。
9)云端存储服务器
可选地,在本实施例中上述云端存储服务器用于保存离线下载***在服务器端下载完成的视频文件对应的数据;
可选地,在本实施例中上述云端存储服务器还用于作为视频播放单下载离线取回视频文件对应的数据的数据源提供服务。
可选地,在本实施例中上述云端存储服务器还用于为转码服务器切片提供转码输出的数据源同时保存切片之后的完整视频分片文件。
10)统计服务器
可选地,在本实施例中的统计服务器用于接收视频播放下载过程中URL下载速度、下载时间、连通情况、下载结果、文件大小等信息的上报。
可选地,在本实施例中的统计服务器还用于统计接收视频播放过程当中视频内容的加载速度和播放缓冲过程当中视频随机缓存的次数和时长,用来评估和分析视频播放的效果体验。
可选地,在本实施例中,上述视频文件预先被划分成多个分片文件,其中,可以但不限于根据预定的分片长度对上述视频文件进行分片划分,例如,以5分钟为分片长度对播放时长为50分钟的视频文件进行分片划分,得到10个分片文件。可选地,可以根据不同的因素确定上述分片长度,上述因素包括但不限于以下至少之一:视频文件的播放时长、用于存储分片文件的存储空间大小、网络传输速度。
可选地,在本实施例中视频播放指令用于请求播放视频文件中的当前分片文件,视频文件具有包括当前分片文件在内的多个分片文件。可选地,在本实施例中的多个分片文件中的每一个分片文件在多个服务器中均有存储。例如,如图4所示,视频文件包括10个分片文件,终端402所请求的当前分片文件为上述10个分片文件中的第2个分片文件,该第2个分片文件存储在多个服务器(例如,服务器404-1、服务器404-2、服务器404-3、服务器404-4)中,以在该多个服务器之间形成对第2个分片文件的备份。
可选地,上述终端从多个服务器中的一个获取上述当前分片文件包括:在终端从上述多个服务器中的一个服务器获取上述当前分片文件失败的情况下,上述终端从上述多个服务器中的另一个服务器获取上述当前分片文件。
可选地,终端从一个服务器上获取当前分片文件的过程包括:
S1,终端向该服务器发送分片获取请求;
S2,终端接收该服务器发送的分片获取响应;
S3,终端向该服务器发送链路建立请求;
S4,终端接收该服务器发送的链路建立响应;
S5,终端在终端与该服务器之间建立的链路上接收该服务器发送的当前分片文件。
可选地,上述过程仅是终端从服务器上获取当前分片文件的一种示例,本实施例还适用于其他获取当前分片文件的过程。在上述获取当前分片文件的过程中,当前分片文件获取失败的条件可以包括但不限于以下之一:
1)终端在预定的时间段内没有接收到服务器发送的分片获取响应;
2)终端在预定的时间段内接收到服务器发送的分片获取失败响应;
3)终端在预定的时间段内没有接收到服务器发送的链路建立响应;
4)终端在预定的时间段内接收到服务器发送的链路建立失败响应;
5)终端在预定的时间段内未完成对服务器发送的当前分片文件的接收。
可选地,在本实施例中如图3所示在终端上的视频播放内核模块引入了多源数据传输模块,重新提供了全新的和视频播放器进行数据交互的方式。其中,上述交互方式可以包括但不限于:采用本地临时文件、视频数据http本地服务的方式,以实现与终端上的视频播放器进行数据交换。
可选地,在本实施例中在终端接收输入的视频播放指令之前,将对视频文件对应的原始文件进行转码,得到多个转码后文件,再对每个转码后文件进行分片。可选地,在本实施例中的每个转码后文件的码率不同,以使终端上的视频播放器无需采用全格式的播放器,也就是说,播放器的大小和尺寸可以极大简化,只要支持预定的格式,就可通过转码的方式,将多种不同格式的视频文件转成预定格式的视频文件在上述视频播放器中播放。可选地,在本实施例中的转码可以但不限于为对上述视频文件进行各种清晰度、码率、分辨率的格式转换的操作。例如,WMV格式的视频文件为码率相对较高、分辨率相对较高的超清视频文件,若终端上的视频播放器仅支持FLV格式的视频文件(其中,FLV格式的视频文件为码率相对较低、分辨率相对较低的普通视频文件),则需对上述WMV格式的视频文件进行转码操作,得到对应的FLV格式的视频文件。
又例如,终端上的视频播放器仅支持MP4格式的视频文件,当服务器上仅存储了WMV格式的视频文件时,由于WMV格式的视频文件在上述终端的视频播放器中不能正常播放,因而,可以在服务器侧将WMV格式的视频文件转码为WMV格式的视频文件。
进一步,如表2所示,终端402上的视频播放器正在播放视频文件Movie1,该视频文件在服务器侧被转码为不同格式(例如,FLV,WMV,
_
RA,MP4)的转码后文件,然后将不同格式的转码后文件中的每一个分片划分为多个分片文件,例如,每个转码后文件具有的分片文件包括:分片文件f-1、f-2、f-3、f-4、f-5、f-6;上述每个分片文件都存储在多个服务器上,以在多个服务器(例如,包括服务器404-1、服务器404-2、服务器404-3、服务器404-4)上形成对上述分片文件的备份。作为一种示例,上述分片文件、存储格式、以及用于存储分片文件的服务器之间的对应关系如下表2所示。
表2
需要说明的是,上述分片文件的个数、格式类别、以及对应关系仅是本申请的一种示例,本实施例对分片文件的个数、格式类别、以及对应关系不做限定,本实施例还可以适用于其他的场景,例如,在服务器404-1、服务器404-2、服务器404-3和服务器404-4上均存储有格式为FLV的转码后文件的6个分片文件,格式为WMV的转码后文件的6个分片文件,格式为RA的转码后文件的6个分片文件,格式为MP4的转码后文件的6个分片文件。
以下具体结合示例描述,如图4-5所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储,假设根据预定的条件(例如,预定条件为传输速度最快的链路)选择了服务器404-3,则上述终端402将播放由服务器404-3获取的当前分片文件f-5。
通过本发明提供的实施例,通过将视频文件进行分片,并由多个服务器中的一个获取当前分片文件进行播放,从而保证了获取分片文件的速度,解决现有技术中由单一的服务器获取视频文件而导致的播放流畅度低的技术问题,提高了视频文件播放的流畅度。
作为一种可选的方案,获取单元704包括:
1)获取模块,用于在从多个服务器中的一个服务器获取当前分片文件失败的情况下终端从多个服务器中的另一个服务器获取当前分片文件。
可选地,在本实施例中如图3所示,如果获取的当前分片文件不能直接在终端上播放,则需要通过转码任务分发服务器,将对应的原始视频文件分发到转码切片服务器集群中进行对应的转码和切片操作,然后从上述转码切片服务器集群中的一个服务器获取转码后的视频文件中的分片文件。
可选地,在本实施例中如图3所示,视频播放器通过视频播放终端控制接口来获取当前分片文件的入口地址,然后通过云端播放查询接口服务器获取能够直接进行本地播放的流媒体数据流地址,查询时候获取的基本信息包括分片文件的分片信息,其中上述分片信息可以包括但不限于:分片URL地址,文件的Hash标识、分片文件的Hash标识、时长。
例如,如图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储,假设根据预定的条件(例如,预定条件为传输速度最快的链路)选择了服务器404-3,然而在从服务器404-3获取当前分片文件失败时,终端依次尝试从上述多个服务器中的其他服务器(例如,服务器404-1、服务器404-2、服务器404-4中一个)获取上述当前分片文件f-5,直到成功地获取到当前分片文件f-5为止。
通过本发明提供的实施例,当多个服务器中的一个服务器获取当前分片文件失败的情况下,终端将从多个服务器中的另一个服务器获取当前分片文件,通过这种多源传输视频文件的方式,可以保证获取当前分片文件的速度。
作为一种可选的方案,获取模块包括:
1)第一发送子模块,用于向多个服务器中的第一服务器发送第一分片获取请求,其中,第一分片获取请求用于获取当前分片文件;
2)第二发送子模块,用于在预定的第一时间段内未接收到第一服务器发送的分片获取响应、或接收到第一服务器发送的分片获取失败响应、或在预定的第二时间段内未完成对第一服务器发送的当前分片文件的接收时,向多个服务器中的第二服务器发送第二分片获取请求,其中,第二分片获取请求用于获取当前分片文件;
3)第一接收子模块,用于接收第二服务器发送的当前分片文件。
可选地,在本实施例中的向多个服务器中的第一服务器(例如,服务器403-1)发送第一分片获取请求,其中,第一分片获取请求用于获取当前分片文件。在获取当前分片文件的过程中,可能获取失败,上述步骤S2提供了获取失败的几种条件。其中,在本实施例中的步骤S2中的第三种情况,在预定的第二时间段内未完成对第一服务器发送的当前分片文件的接收包括但不限于:终端在预定的时间段内没有接收到服务器发送的链路建立响应;终端在预定的时间段内接收到服务器发送的链路建立失败响应;终端在预定的时间段内未完成对服务器发送的当前分片文件的接收。
以下具体结合示例描述,结合图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设终端402向上述多个服务器中的服务器404-1发送当前分片文件f-5的获取请求,若终端402满足以下至少一种获取失败的条件:例如,终端402在预定的第一时间段(例如,1分钟)内没有接收到404-1发送的分片获取响应;或者终端402接收到404-1发送的分片获取失败响应;或者终端402在预定的第二时间段(例如,5分钟)内没有完成对服务器404-1发送的当前分片文件f-5的接收,则终端402将向多个服务器中的服务器404-2发送第二分片获取请求,其中,第二分片获取请求用于获取当前分片文件f-5,若成功获取当前分片文件f-5,终端402将接收服务器404-2发送的当前分片文件f-5。
通过本发明提供的实施例,在向多个服务器中的第一个服务器发送用于获取当前分片文件的第一分片获取请求后,若满足至少一条获取失败的条件,则终端将向多个服务器中的第二服务器发送同样用于获取当前分片文件的第二分片获取请求,从而保证了获取当前分片文件的速度。
作为一种可选的方案,获取模块包括:
1)第三发送子模块,用于向多个服务器中的每一个发送第三分片获取请求,其中,第一分片获取请求用于获取当前分片文件;
2)第一选择子模块,用于从多个服务器中发送的分片获取响应的服务器中选择一个作为第三服务器,并向第三服务器发送第一链路建立请求;
3)第二选择子模块,在预定的第三时间段内未接收到第三服务器发送的链路建立响应、或接收到第三服务器发送的链路建立失败响应、或在预定的第四时间段内未完成对第三服务器发送的当前分片文件的接收时,从发送的分片获取响应的服务器中选择另一个作为第四服务器,并向第四服务器发送第二链路建立请求;
4)第二接收子模块,用于接收第四服务器发送的当前分片文件。
具体结合示例描述,结合图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设终端402向上述多个服务器中的服务器404-1发送当前分片文件f-5的获取请求,假设多个服务器中的服务器404-3向终端402发送了分片获取响应,则终端402向服务器404-3发送了第一链路建立请求,用于建立终端402与服务器404-3之间的传输链路来传输分片文件。
若终端402满足以下至少一种建立失败的条件:例如,终端402在预定的第三时间段(例如,2分钟)内没有接收到服务器404-3发送的链路建立响应;或终端402接收到服务器404-3发送的链路建立失败响应;或终端402在预定的第四时间段内(例如,3分钟)没有完成对服务器404-3发送的当前分片文件f-5的接收,则终端402将从向终端402成功发送了分片获取响应的服务器中选择另一个作为第四服务器(例如,服务器404-4),并向服务器404-4发送第二链路建立请求,用于建立终端402到服务器404-4之间的传输链路来传输分片文件,若成功建立链路,则终端402将接收服务器404-2发送的当前分片文件f-5。
通过本发明提供的实施例,在向终端成功发送了获取响应的服务器中选择一个作为第三服务器,并向上述第三服务器发送第一链路建立请求后,若满足至少一条建立失败的条件,则终端将向其他成功向其发送获取的服务器中选择一个作为第四服务器,并向第四服务器发送第二链路建立请求,以成功建立链路实现对视频文件的分片文件的接收,从而保证了获取当前分片文件的速度。
作为一种可选的方案,第一选择子模块所选择的第三服务器发送的分片获取响应是视频播放装置在多个服务器中第一个接收到的分片获取响应。
可选地,在本实施例中选择第三服务器来发送第一链路建立请求的条件包括但不限于:第三服务器与终端之间的传输速度最快、第三服务器最先做出分片获取响应。
作为一种可选的方案,播放单元包括以下之一:
1)第一播放模块,用于播放存储在视频播放装置的存储器中的当前分片文件。
以下结合具体示例描述,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设当终端402与服务器404-2成功建立链路,则通过上述链路来传输终端402上的视频播放器所要播放的当前分片文件f-5。上述当前分片文件f-5从服务器404-2已下载到终端402的存储器,通过直接调用终端402的存储器中的当前分片文件f-5,以使终端402上安装的视频播放器可以正常播放当前分片文件f-5。
2)第二播放模块,用于播放存储在视频播放装置的内存中的当前分片文件,并在当前分片文件播放完成后从内存中删除当前分片文件。
以下结合具体示例描述,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设当终端402与服务器404-2成功建立链路,则通过上述链路来传输终端402上的视频播放器所要播放的当前分片文件f-5。上述当前分片文件f-5从服务器404-2已下载并保存到终端402的内存中,通过直接调用终端402的内存中的当前分片文件f-5,以使终端402上安装的视频播放器可以正常播放当前分片文件f-5,并在当前分片文件f-5播放完成后,就从终端402的内存中删除当前分片文件f-5。
3)第三播放模块,用于调用由当前分片文件封装成的本地视频服务,以播放当前分片文件。
以下结合具体示例描述,终端402上的视频播放器正在播放视频文件Movie1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。假设当终端402与服务器404-2成功建立链路,则通过上述链路来传输终端402上的视频播放器所要播放的当前分片文件f-5。终端402将当前分片文件f-5封装成能被视频播放器调用的本地视频服务,其中,在本实施例中的本地视频服务可以为但不限于:视频文件到服务器的链接。例如,在终端402上设置有关于当前分片文件f-5的能被视频播放器调用的本地视频服务,则当要播放分片文件f-5时,选择采用了本地视频服务,则可通过对应的链接地址直接调用相应服务器中的当前分片文件f-5对应的数据。
通过本发明提供的实施例,将获取到的分片文件存为本地临时文件或者封装为本地视频服务,然后通过终端上的视频播放器播放上述本地临时文件或调用本地视频服务,通过这种方式解除了视频文件的传输过程与视频播放器的播放过程之间的耦合,实现了传输过程和播放过程相分离。
可选地,在本实施例中对与视频文件对应的原始文件进行转码的方式可以包括但不限于:预先将视频文件转换成预定的格式,当接收到终端用于请求当前分片文件的请求时,根据上述请求,将上述终端所要获取的预定格式的视频文件发送给终端。
例如,结合附图4所示,终端402上的视频播放器正在播放视频文件Movie_1,上述视频文件被分割成多个分片文件,终端402接收到用户输入的视频播放指令,请求播放视频文件Movie_1中的当前分片文件f-5,该分片文件在服务器404-1、服务器404-2、服务器404-3、服务器404-4上均有存储。服务器接收到终端402所发送的请求后,将根据上述请求将相应格式的视频文件发送给终端402。
进一步,对转码后的视频文件再进行切割分片,得到每个转码后文件的分片文件,并将每个转码后文件的每个分片文件存储在多个服务器(例如,服务器404-1、服务器404-2、服务器404-3、服务器404-4)中。
通过本发明的实施例,通过针对各种不同大小的移动设备和各种不同网络条件下码率,可以对视频文件进行转码操作,将视频文件转换成各种不同视频格式的文件保存在云端服务器上,为不同类型的终端提供对应的视频播放需求。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种视频播放方法,其特征在于,包括:
终端接收输入的视频播放指令,其中,所述视频播放指令用于请求播放视频文件中的当前分片文件,所述视频文件具有包括所述当前分片文件在内的多个分片文件;
所述终端从多个服务器中的一个获取所述当前分片文件,其中,所述多个服务器中的每一个均存储有所述当前分片文件;
所述终端播放所述当前分片文件。
2.根据权利要求1所述的方法,其特征在于,所述终端从多个服务器中的一个获取所述当前分片文件包括:
在所述终端从所述多个服务器中的一个服务器获取所述当前分片文件失败的情况下所述终端从所述多个服务器中的另一个服务器获取所述当前分片文件。
3.根据权利要求2所述的方法,其特征在于,所述在所述终端从所述多个服务器中的一个服务器获取所述当前分片文件失败的情况下所述终端从所述多个服务器中的另一个服务器获取所述当前分片文件包括:
所述终端向所述多个服务器中的第一服务器发送第一分片获取请求,其中,所述第一分片获取请求用于获取所述当前分片文件;
若所述终端在预定的第一时间段内未接收到所述第一服务器发送的分片获取响应、或所述终端接收到所述第一服务器发送的分片获取失败响应、或所述终端在预定的第二时间段内未完成对所述第一服务器发送的所述当前分片文件的接收,则所述终端向所述多个服务器中的第二服务器发送第二分片获取请求,其中,所述第二分片获取请求用于获取所述当前分片文件;
所述终端接收所述第二服务器发送的所述当前分片文件。
4.根据权利要求2所述的方法,其特征在于,所述在所述终端从所述多个服务器中的一个服务器获取所述当前分片文件失败的情况下所述终端从所述多个服务器中的另一个服务器获取所述当前分片文件包括:
所述终端向所述多个服务器中的每一个发送第三分片获取请求,其中,所述第一分片获取请求用于获取所述当前分片文件;
所述终端从所述多个服务器中向所述终端发送了分片获取响应的服务器中选择一个作为第三服务器,并向所述第三服务器发送第一链路建立请求;
若所述终端在预定的第三时间段内未接收到所述第三服务器发送的链路建立响应、或所述终端接收到所述第三服务器发送的链路建立失败响应、或所述终端在预定的第四时间段内未完成对所述第三服务器发送的所述当前分片文件的接收,则所述终端从向所述终端发送了所述分片获取响应的服务器中选择另一个作为第四服务器,并向所述第四服务器发送第二链路建立请求;
所述终端接收所述第四服务器发送的所述当前分片文件。
5.根据权利要求4所述的方法,其特征在于,所述第三服务器发送的分片获取响应是所述终端在所述多个服务器中第一个接收到的分片获取响应。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述终端通过以下方式之一播放所述当前分片文件:
所述终端将所述当前分片文件存在存储器中,并使用所述终端上安装的视频播放器播放所述当前分片文件;或者
所述终端将所述当前分片文件存在内存中,并使用所述终端上安装的视频播放器播放所述内存中存储的所述当前分片文件,在所述当前分片文件播放完成后从所述内存中删除所述当前分片文件;或者
所述终端将所述当前分片文件封装成能被所述视频播放器调用的本地视频服务,使用所述终端上安装的视频播放器调用所述本地视频服务,以播放所述当前分片文件。
7.根据权利要求1至5中任一项所述的方法,其特征在于,在所述终端接收输入的视频播放指令之前,还包括:
将与所述视频文件对应的原始文件进行转码,得到多个转码后文件,其中,每个所述转码后文件的码率不同;
对每个所述转码后文件进行分片,得到每个所述转码后文件的分片文件;
将每个所述转码后文件的每个所述分片文件存储在所述多个服务器中。
8.一种视频播放装置,其特征在于,包括:
接收单元,用于终端接收输入的视频播放指令,其中,所述视频播放指令用于请求播放视频文件中的当前分片文件,所述视频文件具有包括所述当前分片文件在内的多个分片文件;
获取单元,用于从多个服务器中的一个获取所述当前分片文件,其中,所述多个服务器中的每一个均存储有所述当前分片文件;
播放单元,用于播放所述当前分片文件。
9.根据权利要求8所述的装置,其特征在于,所述获取单元包括:
获取模块,用于在从所述多个服务器中的一个服务器获取所述当前分片文件失败的情况下所述终端从所述多个服务器中的另一个服务器获取所述当前分片文件。
10.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
第一发送子模块,用于向所述多个服务器中的第一服务器发送第一分片获取请求,其中,所述第一分片获取请求用于获取所述当前分片文件;
第二发送子模块,用于在预定的第一时间段内未接收到所述第一服务器发送的分片获取响应、或接收到所述第一服务器发送的分片获取失败响应、或在预定的第二时间段内未完成对所述第一服务器发送的所述当前分片文件的接收时,向所述多个服务器中的第二服务器发送第二分片获取请求,其中,所述第二分片获取请求用于获取所述当前分片文件;
第一接收子模块,用于接收所述第二服务器发送的所述当前分片文件。
11.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
第三发送子模块,用于向所述多个服务器中的每一个发送第三分片获取请求,其中,所述第一分片获取请求用于获取所述当前分片文件;
第一选择子模块,用于从所述多个服务器中发送的分片获取响应的服务器中选择一个作为第三服务器,并向所述第三服务器发送第一链路建立请求;
第二选择子模块,在预定的第三时间段内未接收到所述第三服务器发送的链路建立响应、或接收到所述第三服务器发送的链路建立失败响应、或在预定的第四时间段内未完成对所述第三服务器发送的所述当前分片文件的接收时,从发送的所述分片获取响应的服务器中选择另一个作为第四服务器,并向所述第四服务器发送第二链路建立请求;
第二接收子模块,用于接收所述第四服务器发送的所述当前分片文件。
12.根据权利要求11所述的装置,其特征在于,所述第一选择子模块所选择的所述第三服务器发送的分片获取响应是所述视频播放装置在所述多个服务器中第一个接收到的分片获取响应。
13.根据权利要求8至12中任一项所述的装置,其特征在于,所述播放单元包括以下之一:
第一播放模块,用于播放存储在所述视频播放装置的存储器中的所述当前分片文件;或者
第二播放模块,用于播放存储在所述视频播放装置的内存中的所述当前分片文件,并在所述当前分片文件播放完成后从所述内存中删除所述当前分片文件;或者
第三播放模块,用于调用由所述当前分片文件封装成的本地视频服务,以播放所述当前分片文件。
CN201410182809.0A 2014-04-30 2014-04-30 视频播放方法和装置 Pending CN105025391A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410182809.0A CN105025391A (zh) 2014-04-30 2014-04-30 视频播放方法和装置
PCT/CN2015/077762 WO2015165395A1 (en) 2014-04-30 2015-04-29 Video playback method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410182809.0A CN105025391A (zh) 2014-04-30 2014-04-30 视频播放方法和装置

Publications (1)

Publication Number Publication Date
CN105025391A true CN105025391A (zh) 2015-11-04

Family

ID=54358181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410182809.0A Pending CN105025391A (zh) 2014-04-30 2014-04-30 视频播放方法和装置

Country Status (2)

Country Link
CN (1) CN105025391A (zh)
WO (1) WO2015165395A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707971A (zh) * 2017-09-26 2018-02-16 上海欧美拉光电股份有限公司 一种用于远程云储存多媒体播放控制***
WO2018119947A1 (zh) * 2016-12-29 2018-07-05 深圳天珑无线科技有限公司 一种协作传输的方法及装置
CN108667871A (zh) * 2017-03-31 2018-10-16 合网络技术(北京)有限公司 基于p2p的传输方法和装置
CN109361933A (zh) * 2018-11-13 2019-02-19 仲恺农业工程学院 一种音视频信息处理方法
CN109670016A (zh) * 2018-12-25 2019-04-23 苏州思必驰信息科技有限公司 用于语音对话平台内语音产品的技能测试方法及***
CN109936768A (zh) * 2017-12-19 2019-06-25 中国电信股份有限公司 实现利用终端观看iptv直播节目的方法和***
CN110022482A (zh) * 2019-03-05 2019-07-16 咪咕视讯科技有限公司 视频起播方法、视频服务***及存储介质
CN110493315A (zh) * 2019-07-19 2019-11-22 视联动力信息技术股份有限公司 一种视频通信链路的调用方法和装置
CN111047875A (zh) * 2019-12-20 2020-04-21 北京看路科技有限公司 一种在行车时快速举报交通违法行为的***及方法
CN111343225A (zh) * 2018-12-19 2020-06-26 北京奇虎科技有限公司 一种文件处理方法和装置
CN111600937A (zh) * 2020-04-28 2020-08-28 上海翌旭网络科技有限公司 基于自适应码率的流协议文件传输方法及***
CN112584255A (zh) * 2020-12-04 2021-03-30 广州虎牙科技有限公司 一种流媒体数据的播放方法、装置、计算机设备和存储介质
CN112738150A (zh) * 2019-10-29 2021-04-30 厦门白山耘科技有限公司 文件处理方法及装置、传输设备、计算机可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113194275B (zh) * 2021-04-30 2022-12-27 重庆天智慧启科技有限公司 一种监控图像预览***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127898A (zh) * 2007-09-20 2008-02-20 Ut斯达康通讯有限公司 流媒体***及其多媒体文件的切片存储和流服务方法
CN101552799A (zh) * 2008-04-04 2009-10-07 华为技术有限公司 媒体节点容错方法和装置
CN101697549A (zh) * 2009-10-23 2010-04-21 中兴通讯股份有限公司 流媒体的展示方法、***以及流媒体管理服务器
CN102088620A (zh) * 2010-12-01 2011-06-08 中兴通讯股份有限公司 一种内容分发网络中媒体文件下载方法及客户端
CN102256162A (zh) * 2011-07-22 2011-11-23 网宿科技股份有限公司 基于实时文件格式转换的优化流媒体点播的方法和***
CN102769638A (zh) * 2011-05-05 2012-11-07 腾讯科技(深圳)有限公司 一种下载文件的方法、装置及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127898A (zh) * 2007-09-20 2008-02-20 Ut斯达康通讯有限公司 流媒体***及其多媒体文件的切片存储和流服务方法
CN101552799A (zh) * 2008-04-04 2009-10-07 华为技术有限公司 媒体节点容错方法和装置
CN101697549A (zh) * 2009-10-23 2010-04-21 中兴通讯股份有限公司 流媒体的展示方法、***以及流媒体管理服务器
CN102088620A (zh) * 2010-12-01 2011-06-08 中兴通讯股份有限公司 一种内容分发网络中媒体文件下载方法及客户端
CN102769638A (zh) * 2011-05-05 2012-11-07 腾讯科技(深圳)有限公司 一种下载文件的方法、装置及***
CN102256162A (zh) * 2011-07-22 2011-11-23 网宿科技股份有限公司 基于实时文件格式转换的优化流媒体点播的方法和***

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018119947A1 (zh) * 2016-12-29 2018-07-05 深圳天珑无线科技有限公司 一种协作传输的方法及装置
CN108667871B (zh) * 2017-03-31 2021-07-06 阿里巴巴(中国)有限公司 基于p2p的传输方法和装置
CN108667871A (zh) * 2017-03-31 2018-10-16 合网络技术(北京)有限公司 基于p2p的传输方法和装置
CN107707971A (zh) * 2017-09-26 2018-02-16 上海欧美拉光电股份有限公司 一种用于远程云储存多媒体播放控制***
CN109936768A (zh) * 2017-12-19 2019-06-25 中国电信股份有限公司 实现利用终端观看iptv直播节目的方法和***
CN109361933A (zh) * 2018-11-13 2019-02-19 仲恺农业工程学院 一种音视频信息处理方法
CN109361933B (zh) * 2018-11-13 2019-11-05 仲恺农业工程学院 一种音视频信息处理方法
CN111343225B (zh) * 2018-12-19 2024-04-09 三六零科技集团有限公司 一种文件处理方法和装置
CN111343225A (zh) * 2018-12-19 2020-06-26 北京奇虎科技有限公司 一种文件处理方法和装置
CN109670016A (zh) * 2018-12-25 2019-04-23 苏州思必驰信息科技有限公司 用于语音对话平台内语音产品的技能测试方法及***
CN110022482A (zh) * 2019-03-05 2019-07-16 咪咕视讯科技有限公司 视频起播方法、视频服务***及存储介质
CN110493315A (zh) * 2019-07-19 2019-11-22 视联动力信息技术股份有限公司 一种视频通信链路的调用方法和装置
CN110493315B (zh) * 2019-07-19 2022-06-14 视联动力信息技术股份有限公司 一种视频通信链路的调用方法和装置
CN112738150A (zh) * 2019-10-29 2021-04-30 厦门白山耘科技有限公司 文件处理方法及装置、传输设备、计算机可读存储介质
CN111047875A (zh) * 2019-12-20 2020-04-21 北京看路科技有限公司 一种在行车时快速举报交通违法行为的***及方法
CN111600937A (zh) * 2020-04-28 2020-08-28 上海翌旭网络科技有限公司 基于自适应码率的流协议文件传输方法及***
CN112584255A (zh) * 2020-12-04 2021-03-30 广州虎牙科技有限公司 一种流媒体数据的播放方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
WO2015165395A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
CN105025391A (zh) 视频播放方法和装置
US10616301B2 (en) Request-based encoding for streaming content portions
US9621928B2 (en) Streaming playback and dynamic ad insertion
US9332051B2 (en) Media manifest file generation for adaptive streaming cost management
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
CN102215116B (zh) 在数字广播***中提供时间偏移服务的方法、设备及***
CN102547478B (zh) 基于cdn的流媒体触发式切片点播***和方法
CN108063769B (zh) 一种内容服务的实现方法、装置及内容分发网络节点
CN102694831B (zh) 移动终端流媒体数据补偿方法与***、内容分发网络
US8817983B2 (en) Streaming video to cellular phones
CN102055718B (zh) 一种在http streaming***中实现分层请求内容的方法,装置和***
CN104243998A (zh) 一种数据处理方法、装置及相关服务器
US10122776B2 (en) Bidirectional communication on live multimedia broadcasts
CN104320417A (zh) 移动终端和web终端之间互连及流传输和流媒体播放的方法
CN108200444B (zh) 一种视频直播的方法、装置和***
CN105592318A (zh) 一种实现hls频道回看业务的***、设备和方法
CN102131114A (zh) 一种播放列表提供方法及***
CN103716681A (zh) 一种码流切换方法及电子设备
US20170171579A1 (en) Method and Device for Transcoding Live Video
CN101656947B (zh) 跨异构网络业务共享建立方法、设备及***
WO2013185547A1 (zh) 一种缓存服务器的服务方法、缓存服务器及***
CN105392028A (zh) 一种数据的传输方法及装置
CN106302465A (zh) 一种播放音视频数据的方法及装置
WO2017071524A1 (zh) 多媒体资源的发布方法及装置
CN104660656A (zh) 一种p2p连接方法、服务器、终端以及一种通信***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20151104