CN115314758A - 一种视频播放方法及相关设备 - Google Patents

一种视频播放方法及相关设备 Download PDF

Info

Publication number
CN115314758A
CN115314758A CN202110490911.7A CN202110490911A CN115314758A CN 115314758 A CN115314758 A CN 115314758A CN 202110490911 A CN202110490911 A CN 202110490911A CN 115314758 A CN115314758 A CN 115314758A
Authority
CN
China
Prior art keywords
video
information
network address
server
file
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
CN202110490911.7A
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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN202110490911.7A priority Critical patent/CN115314758A/zh
Publication of CN115314758A publication Critical patent/CN115314758A/zh
Pending legal-status Critical Current

Links

Images

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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

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

Abstract

本发明实施例公开了一种视频播放方法及相关设备,该方法包括:获取视频播放请求信息,其中,所述视频播放请求信息包括传输信息;根据所述传输信息生成内容分发网络地址信息,其中,所述内容分发网络地址信息与所述视频播放请求信息所请求的视频文件所属的服务器对应;基于所述内容分发网络地址信息通过统一资源定位符向所述服务器获取所述视频文件中的实时视频切片文件。通过本发明实施例的技术方案,解决了现有技术中在进行视频播放时,客户端与服务器交互次数较多导致视频播放的首帧时长耗时久,用户等待时间长的问题。

Description

一种视频播放方法及相关设备
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种视频播放方法及相关设备。
背景技术
现有的技术方案在由于P2P是从其他用户节点获取直播流数据,首先需要经过一系列的P2P协议与对端用户进行连接,使用API接口返回数据获得内容分发网络地址信息,然后再从该用户处获取直播流数据进行解码播放,展现画面,需要完成多次客户端之间的交互,需要客户端与服务器的交互,还需要解析表文件和跳过非关键帧数据后才能开始播放,导致首帧时间慢的问题。
发明内容
本发明实施例提供了一种视频播放方法及相关设备,避免了视频播放首帧时间慢的问题。
第一方面,本发明实施例提供了一种视频播放方法,用于用户终端,包括:
获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;
根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;
基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
可选的,上述实时视频切片文件包含视频数据中的关键帧数据和上述实时视频切片文件的编号数据,
上述基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件,具体包括:
根据上述视频播放请求信息,以使服务器查找待播放视频,并将上述实时视频切片文件替换视频数据的表文件;
基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
可选的,上述实时视频切片文件为采用拼接的方式生成的文件,上述实时视频切片文件的生成方式为:
将上述内容分发网络地址信息、请求方法和请求资源唯一映射到的频道id拼接在一起生成上述实时视频切片文件;
其中,所述请求方法为获取所述视频的方法,所述获取所述视频的方法包括获取所述视频的码率信息的方法和获取所述视频的基础信息的方法,所述请求资源唯一映射到的频道id根据所述码率信息和所述基础信息计算得出。
可选的,在上述基于上述内容分发网络地址信息获取实时视频切片文件的步骤之前,还包括:
定义上述内容分发网络地址信息的映射规则,其中,上述映射规则以使上述内容分发网络地址信息与服务器地址信息一一对应。
可选的,所述根据所述传输信息生成内容分发网络地址信息的步骤,包括:
采用拼接的方式根据所述传输信息生成内容分发网络地址信息,所述传输信息为与所述服务器的对应关系信息。
可选的,所述采用拼接的方式根据所述传输信息生成内容分发网络地址信息,所述传输信息为与所述服务器的对应关系信息的步骤,包括:
通过get_chunk_pack_zero获取特定地址;
将所述特定地址与所述服务器的对应关系信息进行拼接,生成内容分发网络地址信息。
可选的,在上述基于上述内容分发网络地址信息获取实时视频切片文件的步骤之前,还包括:
调用流式接口连接上述服务器地址信息,其中,上述流式接口为能够并行实现上述视频切片文件的下载与解析的数据接口。
可选的,上述基于上述内容分发网络地址信息获取实时视频切片文件的步骤,包括:
获取上述视频切片文件的当前位置信息和结束位置信息;
根据上述当前位置信息和结束位置信息获取完整的上述实时视频切片文件。
第二方面,本申请实施例提供了一种视频播放装置,包括:
数据采集模块,用于获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;
生成模块,用于根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;
播放模块,用于基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器用于执行存储器中存储的计算机程序时实现如上述的视频播放方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序:上述计算机程序被处理器执行时实现如上述的视频播放方法的步骤。
上述发明中的实施例具有如下优点或有益效果:
通过获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;不再依靠API接口获取服务器端的数据,进而减少了一次客户端与服务器端的交互过程,进而减少了首帧时间的时长;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;根据上述传输信息生成内容分发网络地址信息,减少一次客户端向服务器端发送的网络请求的过程,减少了视频播放的首帧时间的时长;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。通过统一资源定位符,节省了传统P2P需要请求接入服务器和表文件带来的耗时,同时在服务器中自动去除关键切片内的非关键数据,避免了无效数据的下载,进而提高了首帧播放的速度。
附图说明
图1是本申请实施例提供的一种视频播放方法的流程图;
图2是本申请实施例提供的一种视频播放装置的结构示意图;
图3是本申请实施例提供的一种电子设备的结构示意图;
图4是本申请实施例提供的一种存储介质的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本申请实施例提供的一种视频播放方法的流程图,本实施例提供的视频播放方法可适用于P2P直播的场景。该方法可以由视频播放装置来执行,该装置可以由软件和/或硬件的方式来实现,通常集成于终端。
如图1所示,本发明实施例提供了一种视频播放方法,用于用户终端,具体包括以下步骤:
S101、获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;
示例性的,根据上述视频播放请求信息,获取与服务器对应的参数,例如,参数appid和参数channel,用于标识应用类型及直播流,其中,上述参数appid为应用软件识别码,上述参数channel为数据通道信息,上述参数appid和参数channel均可以直接使用,进而保证了不通过API接口获取服务器端的数据就可以得到对应上述服务器端的内容分发网络地址信息。
S102、根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;
在一种可能的实施方式中,所述根据所述传输信息生成内容分发网络地址信息的步骤,包括:
采用拼接的方式根据所述传输信息生成内容分发网络地址信息,所述传输信息为与所述服务器的对应关系信息。
采用拼接的方式根据所述传输信息生成内容分发网络地址信息,不通过API接口获取服务器端的数据就可以得到对应上述服务器端的内容分发网络地址信息,减少了一次客户端与上述服务器端的交互,进而节省了首帧时间的时长。
在一种可能的实施方式中,上述采用拼接的方式根据所述传输信息生成内容分发网络地址信息,所述传输信息为与所述服务器的对应关系信息的步骤,包括:
通过get_chunk_pack_zero获取特定地址;
其中,get_chunk_pack_zero代表与服务端事先约定的特定统一资源定位器,Uniform Resource Locator,url,无需获取,将上述特定url与所述服务器的对应关系信息进行拼接,生成内容分发网络地址信息。
对于每一个视频直播内容分发网络地址信息,记为:CDN地址,定义一套单一映射规则,上述CDN地址能单一映射到唯一的服务器端的实时视频切片地址,相当于上述服务器地址信息,上述服务器地址信息包含唯一标识此直播流的参数,以保证视频播放的速度,避免视频的分享紊乱,出现错误。
示例性的,上述根据上述传输信息生成内容分发网络地址信息的步骤,包括:
采用拼接的方式根据上述传输信息生成内容分发网络地址信息,上述传输信息为与上述服务器的对应关系信息,包括应用编号数据和数据传输通道信息,上述拼接的方式具体采用以下方式拼接:
`get_chunk_pack_zero/${this.options.channel}-${this.options.appid}-123456-0/${this.options.appid}-123456-0-0
其中,`为前端拼接的代码符号,可以转换为更易理解的伪代码形式,channel为上述数据传输通道信息,appid为上述应用编号数据,将上述与服务端事先约定的特定统一资源定位器get_chunk_pack_zero与上述channel和上述appid进行拼接,并且拼接顺序不可改变,采用固定的拼接模式,进而避免了顺序错乱导致的上述内容分发网络地址信息能与服务器端交互错乱,生成特定地址字符串,使得生成的上述内容分发网络地址信息能与服务器端对应交互,使得内容分发网络地址信息能够从上述服务器端获取数据,使得内容分发网络地址信息能够获取实时视频切片数据,进而使得不通过API接口生成的内容分发网络地址信息所起到的作用与通过API接口生成的内容分发网络地址信息的作用相同。
在一种可能的实施方式中,在采用拼接的方式根据上述传输信息生成内容分发网络地址信息时,不对拼接顺序进行固定设置,需要在分发时逐一识别分发内容,增加了不必要计算量,也容易引起分发网络地址信息的错乱,进而使得分发过程出现错误。
通过采用固定拼接的方式,基于参数appid和参数channel生成与上述服务器对应的内容分发网络地址信息,避免了采用API接口获取内容分发网络地址信息,进而实现了减少了客户端与服务器端的一次交互过程,从而减少了首帧时间的时长。
在一种可能的实施方式中,在上述基于上述内容分发网络地址信息获取实时视频切片文件的步骤之前,还包括:
调用流式接口连接上述服务器地址信息,其中,上述流式接口为能够并行实现上述视频切片文件的下载与解析的数据接口。
示例性的,使用流式接口对上述内容分发网络地址信息进行访问,其中,上述流式接口可以实现边下载边解析的过程,而普通接口要全部下载完成才能解析,进而上述流式接口获取数据的速度更快,从而能更进一步提升首帧的播放速度。
具体的,根据浏览器的不同而调用不同的方法,基于具体浏览器的特性进行设置,上述流式接口在Chrome浏览器中,使用Fetch API数据类型;而在Firefox浏览器中时,使用XHR数据类型,设置XHR的对象类型,即,responseType=”moz-chunked-arraybuffer”进而实现调用上述流式接口的过程。
在一种可能的实施方式中,在上述基于上述内容分发网络地址信息获取实时视频切片文件的步骤之前,还包括:
定义上述内容分发网络地址信息的映射规则,其中,上述映射规则以使上述内容分发网络地址信息与服务器地址信息一一对应。通过根据上述传输信息生成内容分发网络地址信息,减少一次客户端向服务器端发送的网络请求的过程,进而减少了视频播放的首帧时间的时长,通过定义上述内容分发网络地址信息的映射规则,也保证了在减少一次客户端向服务器端发送的网络请求的过程后,上述内容依然能够完整无误传输。
S103、基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
在一种可能的实施方式中,上述实时视频切片文件包含视频数据中的关键帧数据和上述实时视频切片文件的编号数据,
上述基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件,具体包括:
根据上述视频播放请求信息,以使服务器查找待播放视频,并将上述实时视频切片文件替换视频数据的表文件;
基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
服务器端内的表文件内记录当前最新的一批实时视频切片文件的序号,并记录件包含有视频关键帧的关键帧视频切片文件以及每个关键帧切片文件内的关键帧数据在该切片文件的起始偏移位置,避免了P2P需要先访问接入服务器端和表文件才能取得关键切片下载路径的缺点,减少了两次前后端的交互,进而加快了上述实时视频切片的播放速度,减少了首帧时间的时长。
在一种可能的实施方式中,上述实时视频切片文件为采用拼接的方式生成的文件,上述实时视频切片文件的生成方式为:
将上述内容分发网络地址信息、请求方法和请求资源唯一映射到的频道id拼接在一起生成上述实时视频切片文件;
其中,所述请求方法为获取所述视频的方法,所述获取所述视频的方法包括获取所述视频的码率信息的方法和获取所述视频的基础信息的方法,所述请求资源唯一映射到的频道id根据所述码率信息和所述基础信息计算得出。
上述实时视频切片文件,设置有固定的统一资源定位符URL,则客户端P2PSDK不需要和服务器端交互就可以拼接出上述URL。
在请求上述实时视频切片文件时,服务器端会自动搜寻当前最新的一批切片文件,找到关键帧所在的切片文件,去除该切片文件头部非关键帧数据后,返回给P2P SDK,同时在Http-Header中返回当前最新的切片文件编号,以供P2P SDK下载关键切片的后续切片文件代替表文件的功能。
在一种可能的实施方式中,上述基于上述内容分发网络地址信息获取实时视频切片文件的步骤,包括:
获取上述视频切片文件的当前位置信息和结束位置信息;
根据上述当前位置信息和结束位置信息获取完整的上述实时视频切片文件。
在上述实时视频切片文件的Http响应头部添加关键表文件信息,替换了下载首个表文件的功能,避免了下载非必要数据需要浪费时间的问题,也减少了资源占用。
在P2P启动之前,创新的插入一个CDN起播流程,让用户可以快速看到画面,同时通过拼接方式获得特殊CDN地址,获得进一步的提升。使用流式接口拉取该地址,进一步提升首帧,流式接口本身根据不同的浏览器采取不同的API。通过该url返回的头部信息,携带特殊参数,定位当前下载和后续需要下载的位置,从而可以与P2P无缝对齐。
具体的,在返回的Header头中,会返回一些额外参数,包括“this-pack”和“cur-pack”两个参数,用来定位当前开始和结束的位置,根据参数“this-pack”和参数“cur-pack”继续进行后续的下载,直到“cur-pack”下载完毕。
当下载完成完整的上述实时视频切片文件后,开始启动P2P,建立与其他客户端的连接,进行数据的分享和下载。此时,由于之前已经从CDN下载了足够的数据进行播放,此时的P2P流程慢一些也不会对播放有影响,从而保障用户观看体验。由于前面已经定位到当前下载到的位置,因此P2P启动之后,可以在当前位置之后继续进行P2P处理,从而实现无缝启动,减少了P2P启动的所需时间,使得视频播放更加流畅,提高了用户体验。
示例性的,返回关键帧切片文件从关键帧数据开始到末尾的切片数据,同时返回上述实时视频切片文件的正确切片编号,以及当前最新的切片编号;P2PSDK收到上述实时切片数据的响应后,进行视频的关键帧数据及音视频解码,可以直接开始播放显示出首帧画面。
避免了传统P2P需要请求接入系统和表文件带来的访问耗时,可以做到P2P和CDN一样的单次访问即返回视频数据,有效降低了访问耗时;通过在服务器端自动去除关键切片头部非关键帧数据,避免了无效数据的下载,有效提高了播放器首帧画面渲染的速度。
本实施例的技术方案,通过获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;不再依靠API接口获取服务器端的数据,进而减少了一次客户端与服务器端的交互过程,进而减少了首帧时间的时长;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;根据上述传输信息生成内容分发网络地址信息,减少一次客户端向服务器端发送的网络请求的过程,减少了视频播放的首帧时间的时长;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。通过统一资源定位符,节省了传统P2P需要请求接入服务器和表文件带来的耗时,同时在服务器中自动去除关键切片内的非关键数据,避免了无效数据的下载,进而提高了首帧播放的速度。
以下是本发明实施例提供的视频播放装置的实施例,该装置与上述各实施例的视频播放方法属于同一个发明构思,在视频播放装置的实施例中未详尽描述的细节内容,可以参考上述文本处理方法的实施例。
在一种可能的实时方式中,如图2所示,本申请实施例提供了一种视频播放装置,包括:
数据采集模块201,用于获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;
生成模块202,用于根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;
播放模块203,用于基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
其中,上述服务器对上述实时视频切片文件进行处理的过程为:
在服务器内的表文件内记录当前最新的一批切片文件序号,并记录哪些切片文件包含有视频关键帧,每个关键帧切片文件内的关键帧数据在该切片文件的起始偏移位置;对于每一个视频直播CDN地址,定义一套单一映射规则,该CDN地址能单一映射到唯一的P2P后端实时视频切片Zero-Package地址,该地址包含唯一标识此直播流的参数;当P2P SDK请求上述Zero-Package地址时,服务器端收到Zero-Package请求后,找到此直播流对应的表文件;服务器端在找到的表文件内,搜寻关键帧所在的切片文件,及该切片文件内关键帧数据的起始偏移地址;服务器端返回关键帧切片从关键帧数据开始到末尾的切片数据,同时返回Zero-Package的正确切片编号,以及当前最新的切片编号。
通过服务器端对上述视频切片文件的处理,避免了P2P SDK需要先访问接入系统和表文件才能取得关键切片下载路径的缺点,减少了两次前后端的交互。通过在Zero-Package的Http响应头部添加关键表文件信息,替换了下载首个表文件的功能,通过在P2P后端自动去除关键切片头部非关键帧数据,减少了数据下载量,也加速了关键帧数据提前到达播放器,进一步加速了首帧耗时,Zero-Package功能可以和传统的基于表文件更新切片文件无缝结合,在Zero-Package请求失败时,可以切换到表文件重试,保证了视频播放的成功率。
通过获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;不再依靠API接口获取服务器端的数据,进而减少了一次客户端与服务器端的交互过程,进而减少了首帧时间的时长;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;根据上述传输信息生成内容分发网络地址信息,减少一次客户端向服务器端发送的网络请求的过程,减少了视频播放的首帧时间的时长;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。通过统一资源定位符,节省了传统P2P需要请求接入服务器和表文件带来的耗时,同时在服务器中自动去除关键切片内的非关键数据,避免了无效数据的下载,进而提高了首帧播放的速度。
在一种可能的实时方式中,如图3所示,本申请实施例提供了一种电子设备,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时,实现:获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
其中,上述服务器对上述实时视频切片文件进行处理的过程为:
在服务器内的表文件内记录当前最新的一批切片文件序号,并记录哪些切片文件包含有视频关键帧,每个关键帧切片文件内的关键帧数据在该切片文件的起始偏移位置;对于每一个视频直播CDN地址,定义一套单一映射规则,该CDN地址能单一映射到唯一的P2P后端实时视频切片Zero-Package地址,该地址包含唯一标识此直播流的参数;当P2P SDK请求上述Zero-Package地址时,服务器端收到Zero-Package请求后,找到此直播流对应的表文件;服务器端在找到的表文件内,搜寻关键帧所在的切片文件,及该切片文件内关键帧数据的起始偏移地址;服务器端返回关键帧切片从关键帧数据开始到末尾的切片数据,同时返回Zero-Package的正确切片编号,以及当前最新的切片编号。
通过服务器端对上述视频切片文件的处理,避免了P2P SDK需要先访问接入系统和表文件才能取得关键切片下载路径的缺点,减少了两次前后端的交互。通过在Zero-Package的Http响应头部添加关键表文件信息,替换了下载首个表文件的功能,通过在P2P后端自动去除关键切片头部非关键帧数据,减少了数据下载量,也加速了关键帧数据提前到达播放器,进一步加速了首帧耗时,Zero-Package功能可以和传统的基于表文件更新切片文件无缝结合,在Zero-Package请求失败时,可以切换到表文件重试,保证了视频播放的成功率。
通过获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;不再依靠API接口获取服务器端的数据,进而减少了一次客户端与服务器端的交互过程,进而减少了首帧时间的时长;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;根据上述传输信息生成内容分发网络地址信息,减少一次客户端向服务器端发送的网络请求的过程,减少了视频播放的首帧时间的时长;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。通过统一资源定位符,节省了传统P2P需要请求接入服务器和表文件带来的耗时,同时在服务器中自动去除关键切片内的非关键数据,避免了无效数据的下载,进而提高了首帧播放的速度。
在一种可能的实时方式中,本申请实施例提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机程序411被处理器执行时实现:获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。
其中,上述服务器对上述实时视频切片文件进行处理的过程为:
在服务器内的表文件内记录当前最新的一批切片文件序号,并记录哪些切片文件包含有视频关键帧,每个关键帧切片文件内的关键帧数据在该切片文件的起始偏移位置;对于每一个视频直播CDN地址,定义一套单一映射规则,该CDN地址能单一映射到唯一的P2P后端实时视频切片Zero-Package地址,该地址包含唯一标识此直播流的参数;当P2P SDK请求上述Zero-Package地址时,服务器端收到Zero-Package请求后,找到此直播流对应的表文件;服务器端在找到的表文件内,搜寻关键帧所在的切片文件,及该切片文件内关键帧数据的起始偏移地址;服务器端返回关键帧切片从关键帧数据开始到末尾的切片数据,同时返回Zero-Package的正确切片编号,以及当前最新的切片编号。
通过服务器端对上述视频切片文件的处理,避免了P2P SDK需要先访问接入系统和表文件才能取得关键切片下载路径的缺点,减少了两次前后端的交互。通过在Zero-Package的Http响应头部添加关键表文件信息,替换了下载首个表文件的功能,通过在P2P后端自动去除关键切片头部非关键帧数据,减少了数据下载量,也加速了关键帧数据提前到达播放器,进一步加速了首帧耗时,Zero-Package功能可以和传统的基于表文件更新切片文件无缝结合,在Zero-Package请求失败时,可以切换到表文件重试,保证了视频播放的成功率。
通过获取视频播放请求信息,其中,上述视频播放请求信息包括传输信息;不再依靠API接口获取服务器端的数据,进而减少了一次客户端与服务器端的交互过程,进而减少了首帧时间的时长;根据上述传输信息生成内容分发网络地址信息,其中,上述内容分发网络地址信息与上述视频播放请求信息所请求的视频文件所属的服务器对应;根据上述传输信息生成内容分发网络地址信息,减少一次客户端向服务器端发送的网络请求的过程,减少了视频播放的首帧时间的时长;基于上述内容分发网络地址信息通过统一资源定位符向上述服务器获取上述视频文件中的实时视频切片文件。通过统一资源定位符,节省了传统P2P需要请求接入服务器和表文件带来的耗时,同时在服务器中自动去除关键切片内的非关键数据,避免了无效数据的下载,进而提高了首帧播放的速度。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里上述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种视频播放方法,用于用户终端,其特征在于,包括:
获取视频播放请求信息,其中,所述视频播放请求信息包括传输信息;
根据所述传输信息生成内容分发网络地址信息,其中,所述内容分发网络地址信息与所述视频播放请求信息所请求的视频文件所属的服务器对应;
基于所述内容分发网络地址信息通过统一资源定位符向所述服务器获取所述视频文件中的实时视频切片文件。
2.根据权利要求1所述的视频播放方法,其特征在于,所述实时视频切片文件包含视频数据中的关键帧数据和所述实时视频切片文件的编号数据,
所述基于所述内容分发网络地址信息通过统一资源定位符向所述服务器获取所述视频文件中的实时视频切片文件,具体包括:
根据所述视频播放请求信息,以使服务器查找待播放视频,并将所述实时视频切片文件替换视频数据的表文件;
基于所述内容分发网络地址信息通过统一资源定位符向所述服务器获取所述视频文件中的实时视频切片文件。
3.根据权利要求1所述的视频播放方法,其特征在于,所述实时视频切片文件为采用拼接的方式生成的文件,所述实时视频切片文件的生成方式为:
将所述内容分发网络地址信息、请求方法和请求资源唯一映射到的频道id拼接在一起生成所述实时视频切片文件;
其中,所述请求方法为获取所述视频的方法,所述获取所述视频的方法包括获取所述视频的码率信息的方法和获取所述视频的基础信息的方法,所述请求资源唯一映射到的频道id根据所述码率信息和所述基础信息计算得出。
4.根据权利要求1所述的视频播放方法,其特征在于,在所述基于所述内容分发网络地址信息获取实时视频切片文件的步骤之前,还包括:
定义所述内容分发网络地址信息的映射规则,其中,所述映射规则以使所述内容分发网络地址信息与服务器地址信息一一对应。
5.根据权利要求1所述的视频播放方法,其特征在于,所述根据所述传输信息生成内容分发网络地址信息的步骤,包括:
采用拼接的方式根据所述传输信息生成内容分发网络地址信息,所述传输信息为与所述服务器的对应关系信息。
6.根据权利要求5所述的视频播放方法,其特征在于,所述采用拼接的方式根据所述传输信息生成内容分发网络地址信息,所述传输信息为与所述服务器的对应关系信息的步骤,包括:
通过get_chunk_pack_zero获取特定地址;
将所述特定地址与所述服务器的对应关系信息进行拼接,生成内容分发网络地址信息。
7.根据权利要求1所述的视频播放方法,其特征在于,所述基于所述内容分发网络地址信息获取实时视频切片文件的步骤,包括:
获取所述视频切片文件的当前位置信息和结束位置信息;
根据所述当前位置信息和结束位置信息获取完整的所述实时视频切片文件。
8.一种视频播放装置,其特征在于,包括:
数据采集模块,用于获取视频播放请求信息,其中,所述视频播放请求信息包括传输信息;
生成模块,用于根据所述传输信息生成内容分发网络地址信息,其中,所述内容分发网络地址信息与所述视频播放请求信息所请求的视频文件所属的服务器对应;
播放模块,用于基于所述内容分发网络地址信息通过统一资源定位符向所述服务器获取所述视频文件中的实时视频切片文件。
9.一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任一项所述的视频播放方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的视频播放方法。
CN202110490911.7A 2021-05-06 2021-05-06 一种视频播放方法及相关设备 Pending CN115314758A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110490911.7A CN115314758A (zh) 2021-05-06 2021-05-06 一种视频播放方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110490911.7A CN115314758A (zh) 2021-05-06 2021-05-06 一种视频播放方法及相关设备

Publications (1)

Publication Number Publication Date
CN115314758A true CN115314758A (zh) 2022-11-08

Family

ID=83854136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110490911.7A Pending CN115314758A (zh) 2021-05-06 2021-05-06 一种视频播放方法及相关设备

Country Status (1)

Country Link
CN (1) CN115314758A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729602A (zh) * 2009-12-11 2010-06-09 北京工业大学 一种获取p2p视频系统节目信息的方法
CN101959054A (zh) * 2009-07-14 2011-01-26 中国电信股份有限公司 集中式对等点播系统和伙伴节点选择方法
US20140372624A1 (en) * 2013-06-17 2014-12-18 Qualcomm Incorporated Mediating content delivery via one or more services
CN105812850A (zh) * 2014-12-31 2016-07-27 乐视网信息技术(北京)股份有限公司 一种视频文件播放方法及其系统
CN110557689A (zh) * 2019-09-29 2019-12-10 湖南快乐阳光互动娱乐传媒有限公司 视频播放方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101959054A (zh) * 2009-07-14 2011-01-26 中国电信股份有限公司 集中式对等点播系统和伙伴节点选择方法
CN101729602A (zh) * 2009-12-11 2010-06-09 北京工业大学 一种获取p2p视频系统节目信息的方法
US20140372624A1 (en) * 2013-06-17 2014-12-18 Qualcomm Incorporated Mediating content delivery via one or more services
CN105812850A (zh) * 2014-12-31 2016-07-27 乐视网信息技术(北京)股份有限公司 一种视频文件播放方法及其系统
CN110557689A (zh) * 2019-09-29 2019-12-10 湖南快乐阳光互动娱乐传媒有限公司 视频播放方法及装置

Similar Documents

Publication Publication Date Title
US11356748B2 (en) Method, apparatus and system for slicing live streaming
CN109348251B (zh) 用于视频播放的方法、装置、计算机可读介质及电子设备
US9641584B2 (en) Method and arrangement for representation switching in HTTP streaming
JP5666477B2 (ja) ビデオストリーミングのシームレスな巻戻しおよび再生のためのサーバー側サポート
US8825790B2 (en) Caching of fragmented streaming media
WO2017092336A1 (zh) 一种流媒体的处理方法及装置
CN108282529B (zh) 发布和订阅数据的系统、方法和装置
CN110677711A (zh) 视频配乐方法、装置、电子设备及计算机可读介质
US20140143437A1 (en) Converting Live Streaming Content to Video-on-Demand Streaming Content
CN111629251B (zh) 视频播放方法、装置、存储介质和电子设备
US9356985B2 (en) Streaming video to cellular phones
US20240056641A1 (en) Video playing method and apparatus, device, and medium
US20220256226A1 (en) Video data processing method, electronic device and computer-readable medium
WO2021258575A1 (zh) 请求处理系统、方法、装置、电子设备和计算机可读介质
CN107809678B (zh) 多媒体文件的处理方法、装置和设备
CN108200444A (zh) 一种视频直播的方法、装置和系统
US20220167043A1 (en) Method and system for playing streaming content
CN110290396B (zh) 一种视频处理的方法、装置、系统、设备和存储介质
WO2020155961A1 (zh) 视频请求方法、系统、计算机设备及计算机可读存储介质
CN111385660B (zh) 视频的点播方法、装置、设备及存储介质
CN113726801A (zh) 应用于服务端的ab实验方法、装置、设备及介质
US20180020043A1 (en) Method for playing audio/video and display device
CN115314758A (zh) 一种视频播放方法及相关设备
CN109587517B (zh) 一种多媒体文件的播放方法及装置、服务器及存储介质
CN114630143A (zh) 视频流存储方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination