CN113453062B - 视频元数据的获取、处理方法及装置、系统、电子设备 - Google Patents
视频元数据的获取、处理方法及装置、系统、电子设备 Download PDFInfo
- Publication number
- CN113453062B CN113453062B CN202010219906.8A CN202010219906A CN113453062B CN 113453062 B CN113453062 B CN 113453062B CN 202010219906 A CN202010219906 A CN 202010219906A CN 113453062 B CN113453062 B CN 113453062B
- Authority
- CN
- China
- Prior art keywords
- target video
- video
- metadata
- response
- source
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开的实施例公开了一种视频元数据的获取、处理方法及装置、系统、电子设备及计算机可读存储介质。该获取方法包括:在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;获取源站响应所述第二视频回源请求发送的第一响应数据;对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
Description
技术领域
本公开的实施例涉及内容分发网络技术领域,尤其涉及一种视频元数据的获取方法及装置、处理方法及装置、处理系统、电子设备、计算机可读存储介质。
背景技术
CDN(Content Delivery Network,内容分发网络)通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载,解决互联网网络拥挤的状况,提高用户访问网站的响应速度。
当用户通过CDN网络请求获取视频文件时,通常将本地缓存中的对应视频文件资源直接响应给用户。当用户请求的资源没有在本地缓存时,则通过CDN节点的反向代理服务器(Nginx)和缓存设备(Cache)到源站进行回源拉取对应的请求资源再响应给用户。
然而,无论上述本地缓存还是从源站回源拉取的视频文件仅是提供请求的目标视频资源给用户,无法获取或收集视频文件的元数据信息。
此外,在没有视频元数据支持的情况下,则无法根据视频文件的具体信息提供差异化服务,无法为每个用户提供最适合他们的个性化服务,从而影响用户使用体验。
发明内容
本公开实施例的目的在于提供一种视频元数据的获取方法、装置、系统、电子设备及计算机可读存储介质,以获取到回源视频的元数据信息。
根据本公开实施例的第一方面,提供了一种视频元数据的获取方法,所述方法包括:
在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;
获取源站响应所述第二视频回源请求发送的第一响应数据;
对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
可选的,所述方法还包括:
在接收到请求目标视频的第一视频回源请求、且本地缓存中存在目标视频的情况下,响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据,以使所述下层节点接收到的响应头中携带有所述目标视频的元数据。
可选的,在响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据之前,所述方法还包括:
检测待发送的所述第二响应数据的响应头中是否存在所述目标视频的元数据;
在所述第二响应数据的响应头中未存在所述目标视频的元数据的情况下,对所述目标视频进行解析,获得所述目标视频的元数据,并将所述目标视频的元数据添加至所述第二响应数据的数据头中;
在所述第二响应数据的响应头中存在所述目标视频的元数据的情况下,执行响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据的步骤。
可选的,所述方法还包括:
在接收到请求目标视频的第一视频回源请求、且本地缓存中不存在目标视频但存在所述目标视频的元数据的情况下,向源站发送请求所述目标视频的第二视频回源请求,其中,所述元数据为通过解析所述目标视频的首个回源分片获得的;以及
获取源站响应所述第二视频回源请求发送的第三响应数据,并将所述元数据添加至所述第三响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
可选的,所述对所述第一响应数据进行解析,获得所述目标视频的元数据包括:
根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析以获得所述目标视频的元数据,其中所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个。
根据本公开实施例的第二方面,提供了一种视频元数据的获取方法,应用于反向代理服务器,所述方法包括:
接收下层节点请求目标视频的第一视频回源请求;
对所述第一视频回源请求增加表示所述目标视频的视频文件格式的请求头;
将增加所述请求头的所述第一视频回源请求发送至与所述反向代理服务器相匹配的缓存设备,以使所述缓存设备通过解析所述第一视频回源请求的请求头得到所述目标视频的视频文件格式;
接收所述缓存设备发送的第一响应数据,其中,,所述第一响应数据的响应头中添加有所述缓存设备根据所述目标视频的视频文件格式对应解析所述第一响应数据获得的所述目标视频的元数据;
响应所述第一视频回源请求,向下层节点发送所述第一响应数据。
根据本公开实施例的第三方面,提供了一种视频元数据的获取方法,应用于缓存设备,所述方法包括:
接收反向代理服务器发送的第一视频回源请求,其中所述第一视频回源请求中携带有用于表示下层节点请求的目标视频的视频文件格式的请求头,所述请求头为所述反向代理服务器增加到所述第一视频回源请求中;
对所述第一视频回源请求的请求头进行解析,得到所述目标视频的视频文件格式;
向源站发送请求所述目标视频的第二视频回源请求;
获取源站响应所述第二视频回源请求发送的第一响应数据;
根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析,获得所述目标视频的元数据;
将所述目标视频的元数据添加至所述第一响应数据的响应头中,并发送给所述反向代理服务器,以使所述反向代理服务器响应所述第一视频回源请求向下层节点发送所述第一响应数据。
根据本公开实施例的第四方面,提供了一种视频元数据的处理方法,所述方法包括:
接收上层节点响应请求目标视频的回源请求发送的响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;
根据所述目标视频的元数据包括的所述目标视频的文件大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
根据本公开实施例的第五方面,提供了一种视频元数据的获取装置,所述装置包括:
发送模块,用于在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;
获取模块,用于获取源站响应所述第二视频回源请求发送的第一响应数据;
解析模块,用于对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
根据本公开实施例的第六方面,提供了一种视频元数据的处理装置,所述装置包括:
接收模块,用于接收上层节点响应请求目标视频发送的响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;
计算模块,用于根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
调整模块,用于根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
根据本公开实施例的第七方面,提供了一种视频元数据的处理系统,所述处理系统包括上层节点和下层节点,
所述上层节点用于:在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;获取源站响应所述第二视频回源请求发送的响应数据;对所述响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据;
所述下层节点用于:接收上层节点响应所述第一回源请求发送的所述响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
根据本公开实施例的第八方面,提供了一种电子设备,此电子设备包括:
根据本公开实施例第五方面或第六方面所述的装置;或者,
处理器和存储器,存储器用于存储可执行的指令,所述指令用于控制处理器执行根据本公开实施例第一方面至第四方面任一方面所述的方法。
根据本公开实施例的第九方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据本公开实施例第一方面至第四方面任一方面所述的方法。
根据本公开的实施例,通过向源站发送请求目标视频的请求,获取源站响应该请求发送的响应数据,通过对回源的响应数据进行解析获得目标视频对应的元数据信息,并将获得的元数据增加到响应数据的响应头中,返回给下层节点以对请求进行响应,从而下层节点可以从接收的响应头中得到对应目标视频的元数据信息,还可利用该元数据进行相应的处理。
此外,根据本公开的实施例,通过对获取的元数据进行分析和统计,根据目标视频的元数据包括的目标视频的文件大小和目标视频的时长,可计算得到目标视频的码率。根据目标视频的码率,调整客户端下载所述目标视频的下载速率,从而可以在不影响用户体验的情况下,为用户节省服务端带宽,为用户提供最适合的个性化服务。
通过以下参照附图对本公开实施例的示例性实施例的详细描述,本公开实施例的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开实施例的原理。
图1为可用于实现本公开实施例的电子设备的硬件配置结构方框图。
图2为本公开第一实施例的视频元数据的获取方法步骤流程图。
图3为本公开第二实施例的视频元数据的获取方法步骤流程图。
图4为本公开第三实施例的视频元数据的获取方法步骤流程图。
图5为本公开实施例的视频元数据的处理方法步骤流程图。
图6为本公开实施例的CDN目标视频回源请求流程图。
图7为本公开实施例的CDN节点结构图。
图8为本公开实施例的视频元数据的获取装置的结构方框图。
图9为本公开实施例的视频元数据的处理装置的结构方框图。
图10为本公开实施例的视频元数据的处理系统的结构方框图。
图11为本公开实施例的电子设备的结构方框图。
具体实施方式
现在将参照附图来详细描述本公开实施例的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开实施例的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开实施例及其应用或使用的任何限制。
对于相关领域普通技术人物已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本公开的实施例的电子设备1000的硬件配置的结构方框图。
电子设备1000可以是服务器设备、便携式电脑、台式计算机、平板电脑等。
服务器设备可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,内容分发网络的节点设备、分布式存储系统的存储服务器、云数据库服务器、云计算服务器、云管理服务器、网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交互服务器、存储服务器、数据库服务器或代理服务器等。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。
如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400,或者还可以包括显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等,用于执行计算机程序。该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400能够利用光纤或电缆进行有线通信,或者进行无线通信,具体地可以包括WiFi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本公开实施例、其应用或使用的任何限制。应用于本公开的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本公开实施例提供的任意一项所述的视频元数据的获取方法或处理方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本公开实施例可以仅涉及其中的部分装置,例如电子设备1000可以只涉及处理器1100和存储装置1200。技术人员可以根据本公开实施例所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<方法实施例一>
在本公开一个实施例中,提供一种视频元数据的获取方法,该方法可以是由电子设备实施,该电子设备例如可以是如图1所示的电子设备1000。
请参考图2,该图为本公开第一实施例的视频元数据的获取方法步骤流程图。
如图2所示,本公开实施例的视频元数据的获取方法包括以下步骤:
步骤102,在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;
步骤104,获取源站响应所述第二视频回源请求发送的第一响应数据;
步骤106,对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
在步骤102中,第一视频回源请求是由下层节点,例如边缘节点或中层节点发送的客户端用户需要获取目标视频的请求。在当前节点的本地缓存中没有请求的目标视频时,需要向进一步向源站回源拉取所述目标视频。源站会在存在目标视频的情况下,根据请求返回对应的响应数据。
在一个实施例中,目标视频文可以以分片的形式进行回源,其中包括视频的元数据信息的响应头存储在视频文件的第0片(也可以称作首个回源分片)中。在收到源站返回的响应码为200时,表示响应数据对应目标视频文件的全部内容,响应数据中包括首个回源分片。在收到源站返回的响应码为206时,表示响应数据对应目标视频文件的部分内容,其中响应数据中不包括首个回源分片,即响应数据中不包括目标视频的元数据。
在步骤106中,对包括首个回源分片的响应数据进行解析,即获得目标视频的元数据。
在一个实施例中,对所述第一响应数据进行解析,获得所述目标视频的元数据包括:根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析以获得所述目标视频的元数据,其中所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个。
视频文件格式例如是mp4、flv或ts,根据目标视频的标准视频格式,利用对应视频格式的解析方式对响应数据首个回源分片的响应头进行解析,从而可以获得该视频对应的编码格式、文件大小、时长和分辨率中的至少一个。
在回源时进行响应头的元数据解析,可以将解析得到的元数据存储到磁盘中,当再次向源站请求其他后续分片时,直接从磁盘中获取元数据信息,无需再次解析该目标视频的其他分片。
在步骤106中,将解析得到的元数据添加至发送给下层节点的响应数据的响应头中,从而下层节点接收到的响应头中携带有对应请求的目标视频的元数据。
在一个实施例中,视频元数据的获取方法还包括:在接收到请求目标视频的第一视频回源请求、且本地缓存中存在目标视频的情况下,响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据,以使所述下层节点接收到的响应头中携带有所述目标视频的元数据。
其中,在响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据之前,所述方法还包括:检测待发送的所述第二响应数据的响应头中是否存在所述目标视频的元数据;在所述第二响应数据的响应头中未存在所述目标视频的元数据的情况下,对所述目标视频进行解析,获得所述目标视频的元数据,并将所述目标视频的元数据添加至所述第二响应数据的数据头中;在所述第二响应数据的响应头中存在所述目标视频的元数据的情况下,执行响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据的步骤。
对于上述情况,接收下层节点发送的目标视频请求后,若确定当前节点的本地缓存中存在该请求的视频,则可以不用向源站请求目标视频,而是直接响应下层节点的请求,向下层节点发送包括目标视频的响应数据。但在向下层节点发送响应数据之前,需要检测该响应数据的响应头中是否有目标视频的元数据。如果响应数据的响应头中没有对应的元数据,则需要进一步对目标视频进行解析,获得该目标视频对应的元数据,然后添加到响应数据的响应头中。如果响应数据的响应头中有对应的元数据,则直接向下层节点发送响应头中添加有目标视频元数据的该响应数据。如此,下层节点接收的响应数据的响应头中携带有目标视频的元数据。
在一个实施例中,视频元数据的获取方法还包括:在接收到请求目标视频的第一视频回源请求、且本地缓存中不存在目标视频但存在所述目标视频的元数据的情况下,向源站发送请求所述目标视频的第二视频回源请求,其中,所述元数据为通过解析所述目标视频的首个回源分片获得的;以及获取源站响应所述第二视频回源请求发送的第三响应数据,并将所述元数据添加至所述第三响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
对于上述情况,接收下层节点发送的目标视频请求后,若确定当前节点的本地缓存中不存在该请求的视频,则需要向源站请求目标视频。这种针对分片回源中,之前已经有过请求目标视频并获得该目标视频的首个回源分片的情况,而当前请求的目标视频为目标视频的后续分片的情况。如上文所述,源站针对目标视频的请求,返回的首个回源分片的响应头中携带有目标视频的元数据信息。在接收到首个回源分片之后,会对其中的响应头解析获得目标视频的元数据,并保存在当前节点的本地磁盘中。
因此,在获取源站响应该目标视频的后续分片请求,发送的目标视频的情况下,可以将保存在磁盘中的目标视频的已解析元数据添加到响应数据的响应头中,并发送给下层节点。从而,使得下层节点接收到的响应头中携带有目标视频的元数据信息。
根据本公开的实施例,通过向源站发送请求目标视频的请求,获取源站响应该请求发送的响应数据,通过对回源的响应数据进行解析获得目标视频对应的元数据信息,并将获得的元数据增加到响应数据的响应头中,返回给下层节点以对请求进行响应,从而下层节点可以从接收的响应头中得到对应目标视频的元数据信息。
<方法实施例二>
在本公开一个实施例中,提供一种视频元数据的获取方法,该方法可以应用于反向代理服务器(例如,Nginx),该反向代理服务器例如可以是如图1所示的电子设备1000。
请参考图3,该图为本公开第二实施例的视频元数据的获取方法步骤流程图。
如图3所示,本公开实施例的视频元数据的获取方法包括以下步骤:
步骤202,接收下层节点请求目标视频的第一视频回源请求;
步骤204,对所述第一视频回源请求增加表示所述目标视频的视频文件格式的请求头;
步骤206,将增加所述请求头的所述第一视频回源请求发送至与所述反向代理服务器相匹配的缓存设备,以使所述缓存设备通过解析所述第一视频回源请求的请求头得到所述目标视频的视频文件格式;
步骤208,接收所述缓存设备发送的第一响应数据,其中,所述第一响应数据的响应头中添加有所述缓存设备根据所述目标视频的视频文件格式对应解析所述第一响应数据获得的所述目标视频的元数据;
步骤210,响应所述第一视频回源请求,向下层节点发送所述第一响应数据。
在步骤204中,Nginx可以固定请求头的形式,将下层节点请求的目标视频对应的视频文件格式增加到回源请求中。然后,再发送至与本层相匹配的缓存设备Cache。本层的Nginx和Cache需要通过请求头和响应头交互信息,比如交互信息1使用请求头1,信息2使用请求头2,固定的信息使用固定的头,由Nginx和Cache约定。
增加的请求头例如为:x-video:type=mp4,用以指明目标资源的视频文件格式。
在步骤206中,Nginx将增加请求头的目标视频回源请求发送给本层的Cache,由Cache对该回源请求进行相应的请求头解析处理,以及向源站回源拉取目标视频。关于Cache的操作,后面会展开描述。
在步骤208中,Nginx接收Cache发送的包括目标视频及目标视频元数据的响应数据,并于步骤210中将响应数据发送给下层节点。响应数据中包括的目标视频的元数据由Cache解析获得,后面会展开描述。
<方法实施例三>
在本公开一个实施例中,提供一种视频元数据的获取方法,该方法可以应用于缓存设备(例如,Cache),该缓存设备例如可以是如图1所示的电子设备1000。
请参考图4,该图为本公开第三实施例的视频元数据的获取方法步骤流程图。
如图4所示,本公开实施例的视频元数据的获取方法包括以下步骤:
步骤302,接收反向代理服务器发送的第一视频回源请求,其中所述第一视频回源请求中携带有用于表示下层节点请求的目标视频的视频文件格式的请求头,所述请求头为所述反向代理服务器增加到所述第一视频回源请求中;
步骤304,对所述第一视频回源请求的请求头进行解析,得到所述目标视频的视频文件格式;
步骤306,向源站发送请求所述目标视频的第二视频回源请求;
步骤308,获取源站响应所述第二视频回源请求发送的第一响应数据;
步骤310,根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析,获得所述目标视频的元数据;
步骤312,将所述目标视频的元数据添加至所述第一响应数据的响应头中,并发送给所述反向代理服务器,以使所述反向代理服务器响应所述第一视频回源请求向下层节点发送所述第一响应数据。
在步骤304中,在接收到本层Nginx发送的目标视频的回源请求之后,Cache对该回源请求的请求头进行解析,从而得到目标视频的视频文件格式。在一个实施例中,Cache可以将解析得到的视频文件格式保存在本地磁盘中。
如果Nginx发送的回源请求所需的目标视频没有在本地缓存,则需要Cache向源站进行回源拉取。当Cache回源收到源站返回的响应数据包括响应头和响应主体(body),响应码为200,则开始解析响应数据的响应头,从而得到目标视频的视频编码格式/视频时长/视频分辨率/视频文件大小等元数据信息。例如编码格式保存为media-mm:H265;时长保存为media-time:1230(单位:秒);分辨率保存为media-resolution:1280*720(单位:像素);视频文件总大小保存为media-length:104242193(单位:字节)。
响应码200表示Cache回源的响应数据中包括目标视频的首个回源分片,本公开的实施例仅对响应数据首个回源分片的响应头解析元数据信息。若响应码为206,则表示回源的目标视频为后续分片,则不需进行元数据解析,Cache从本地磁盘中直接获取即可。
然后,Cache将本地缓存中保存的目标视频或者向源站回源拉取得到的目标视频以响应数据的形式发送给本层的Nginx,其中同时会将目标视频的元数据添加到响应数据的响应头中,由Nginx将响应数据发送给下层节点。
<方法实施例四>
下层节点根据得到目标视频的元数据信息,可以为请求目标视频的用户输出更加详细的业务信息统计,也可以基于此数据为用户提供个性化的服务。下面,结合图5给出说明。
在本公开一个实施例中,还提供一种视频元数据的处理方法,该方法可以由电子设备实施,该电子设备例如可以是如图1所示的电子设备1000。
请参考图5,该图为本公开实施例的视频元数据的处理方法步骤流程图。如图5所示,本公开实施例的视频元数据的处理方法包括以下步骤:
步骤402,接收上层节点响应请求目标视频的回源请求发送的响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;
步骤404,根据所述目标视频的元数据包括的所述目标视频的文件大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
步骤406,根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
该实施例的处理方法可以执行在边缘节点,边缘节点将客户端请求的目标视频提供给客户端的用户。在步骤402中,边缘节点接收到对目标视频请求进行响应的节点发送的响应数据,即可得到目标视频的元数据,包括目标视频的编码格式、目标视频的文件大小、目标视频的时长和目标视频的分辨率中的至少一个。
在步骤404中,在目标视频的元数据包括目标视频的文件大小和视频时长的情况下,边缘节点可以根据目标视频的文件大小和时长,计算得到目标视频的码率。视频码率越大,视频的画面品质就越高,播放视频就越接近原始文件。
得到目标视频的码率,在步骤406中,边缘节点则可以根据码率对目标视频的播放进行下载限速,如此可以根据播放视频的码率,在不影响用户体验的情况下,即播放给用户的视频画面品质损失不多的情况下,通过调整视频的下载速率,为用户节省服务端带宽。
此外,根据目标视频的元数据中的视频编码格式,例如根据视频文件是H264还是H265,可以为视频文件编码格式是H264的用户提供H265视频文件,从而节省服务带宽。如果没有这些元数据的支持,则无法提供此类差异化服务。
视频文件下载不同于普通的文件下载,本公开的实施例通过将视频的元数据信息(编码/时长/分辨率/视频总大小等)识别并存储下来,可以为用户输出更加详细的业务信息统计,也可以基于此数据为用户提供最适合的个性化服务。
根据本公开的实施例,通过对从上层节点获取的元数据进行分析和统计,根据目标视频的元数据包括的目标视频的文件大小和目标视频的时长,可计算得到目标视频的码率。根据目标视频的码率,调整客户端下载所述目标视频的下载速率,从而可以在不影响用户体验的情况下,为用户节省服务端带宽,为用户提供最适合的个性化服务。
<例子>
下面将结合图6-7的流程图对本公开的实施例的视频元数据的获取方法的总体流程作出示例明。其中,图6为本公开实施例的CDN目标视频回源请求流程图,图7为本公开实施例的CDN节点结构图。
如图6所示,在用户20访问DNS(Domain Name System,域名系统)10时,DNS 10会将用户访问的www(World Wide Web,万维网)转换为就近的IP提供给用户。用户20向CDN网络30的边缘节点302发起请求获取目标视频的回源请求,若请求命中,则边缘节点302直接响应用户请求提供对应目标视频,完成Http(超文本传输协议)请求。如果请求不命中时,则边缘节点302需要向上一层节点,例如CDN网络30的中层节点304发出回源请求,在中层节点304请求仍不命中时,则中层节点304需要向CDN网络30的上层节点306发送回源请求,并由需要上层节点306向源站40发出回源请求。其中,流程图所示的实线部分为请求必经流程(通常客户端的用户20请求的目标资源由边缘节点302提供),虚线部分为可选流程,如果在当前节点的本层命中,则当前节点的缓存不会进行虚线流程而向上一层节点发出请求目标视频的回源请求。
图7中,将上层节点306区分为反向代理服务器(Nginx)3062和缓存设备(Cache)3064。LVS(均衡负载系统)50将下层节点发出的回源请求选择发送到其中一组的上层节点306的Nginx 3062和Cache 3064。
具体地,上层节点306的Nginx 3062接收到目前视频的回源请求后,Nginx 3062为该回源请求增加固定请求头来指明请求的目标视频的视频文件格式。
Cache 3064接收Nginx 3062发来的回源请求,对回源请求中的固定请求头进行解析处理,得到目标视频的视频文件格式并保存到磁盘中。
回源请求所需要的目标视频资源在上层节点306的Cache 3064的本地缓存中存在,则直接读取本地缓存,并将包括回源请求对应的目标视频的响应数据发送给Nginx3062。其中,Cache 3064会在响应数据的响应头中添加有目标视频的元数据。如上文所述,该元数据可以是从源站回源目标视频的首个回源分片时解析得到,并保存到磁盘的。
在Cache 3064的本地缓存存在对应的回源请求目标视频时,说明Cache 3064之前已经解析过该目标视频的元数据信息,则Cache 3064在发给Nginx 3062的回源响应数据中包含该目标视频的元数据信息,并将目标视频元数据对应的视频编码格式/视频时长/视频分辨率/视频文件大小等以响应头的形式增加到响应数据中,然后将对应的目标视频及其元数据信息发送给Nginx 3062。
如果回源请求所需的目标视频资源没有在Cache 3064本地缓存,则需要Cache3064到源站40进行回源拉取。当Cache 3064回源收到源站返回的响应数据,如果响应码为200,则开始解析响应数据的响应头,得到目标视频的元数据,即目标视频的视频编码格式/视频时长/视频分辨率/视频文件大小等信息。如果响应码为206,则不需对源站返回的响应数据进行解析,从Cache 3064的磁盘中直接获取目标视频对应的元数据即可。
Cache 3064将响应头中添加有目标视频元数据的响应数据发送给Nginx 3062,Nginx 3062会将目标视频对应的视频编码格式/视频时长/视频分辨率/视频文件大小等元数据信息打印到本层的Nginx日志中,提供用于日志分析。
响应头中添加有目标视频元数据的响应数据由Nginx 3062发送给对应的下游节点,例如图6所述的中层节点304,中层节点304会将该响应数据发送给边缘节点302,边缘节点302将响应数据的目标视频输出给用户20。
进一步地,边缘节点302和中层节点304无需再次解析回源请求的目标视频的元数据信息,只需要将上层节点306给出的响应数据的响应头继承即可,并写到本层的Nginx日志中,可实现根据目标视频的元数据进行统计和分析,从而为用户提供最合适的个性化服务。
本公开的实施例在上层节点对回源请求的目标视频进行元数据解析,获取到目标视频的编码格式/时长/分辨率/视频文件大小等信息,并将其保存到响应数据的响应头中,只需从源站回源时解析1次,并将解析结果的元数据信息放到目标视频对应的响应数据响应头中,下游节点直接继承即可。
换言之,此视频元数据的获取方法只需在上层节点306开启目标视频的元数据解析,边缘节点302和中层节点3304仅需继承解析结果。
<装置实施例一>
在本公开另一个实施例中,还提供了一种视频元数据的获取装置2000,图8为本公开实施例的视频元数据的获取装置的结构方框图,该实施例中视频元数据的获取装置2000应用在向源站请求回源的节点端。
在一个示例中,获取装置2000包括:第一发送模块2200、第一获取模块2400、第一解析模块2600。
第一发送模块2200用于在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;
第一获取模块2400用于获取源站响应所述第二视频回源请求发送的第一响应数据;
第一解析模块2600用于对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
所述获取装置2000还包括第二发送模块(图中未示出),用于:在接收到请求目标视频的第一视频回源请求、且本地缓存中存在目标视频的情况下,响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据,以使所述下层节点接收到的响应头中携带有所述目标视频的元数据。
在一个实施例中,所述获取装置2000还包括:检测模块(图中未示出),用于在响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据之前,检测待发送的所述第二响应数据的响应头中是否存在所述目标视频的元数据;
第二解析模块(图中未示出),用于在所述第二响应数据的响应头中未存在所述目标视频的元数据的情况下,对所述目标视频进行解析,获得所述目标视频的元数据,并将所述目标视频的元数据添加至所述第二响应数据的数据头中;
所述第二发送模块还用于:在所述第二响应数据的响应头中存在所述目标视频的元数据的情况下,响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据。
在一个实施例中,所述获取装置2000还包括:
第三发送模块(图中未示出),用于在接收到请求目标视频的第一视频回源请求、且本地缓存中不存在目标视频但存在所述目标视频的元数据的情况下,向源站发送请求所述目标视频的第二视频回源请求,其中,所述元数据为通过解析所述目标视频的首个回源分片获得的;以及
第二获取模块(图中未示出),用于获取源站响应所述第二视频回源请求发送的第三响应数据,并将所述元数据添加至所述第三响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
在一个实施例中,所述第一解析模块2600对所述第一响应数据进行解析,获得所述目标视频的元数据包括:根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析以获得所述目标视频的元数据,其中所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个。
<装置实施例二>
在本公开另一个实施例中,还提供了一种视频元数据的处理装置3000,图9为本公开实施例的视频元数据的处理装置的结构方框图,该实施例中视频元数据的处理装置3000可以应用在向客户端的用户提供请求的目标视频的节点端。
在一个示例中,处理装置3000包括:接收模块3200、计算模块3400、调整模块3600。
接收模块3200用于接收上层节点响应请求目标视频发送的响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;
计算模块3400用于根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
调整模块3600用于根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
<系统实施例>
根据本公开的再一个实施例,提供了一种视频元数据的处理系统4000,图10为本公开实施例的视频元数据的处理系统的结构方框图。
如图10所示,所述系统4000包括上层节点4200和下层节点4400。
其中,上层节点4200用于:在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;获取源站响应所述第二视频回源请求发送的响应数据;对所述响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
下层节点4400用于:接收上层节点响应所述第一回源请求发送的所述响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
<电子设备实施例>
根据本公开的再一个实施例,还提供了一种电子设备,该电子设备5000可以是图1所示的电子设备1000。图11为本公开实施例的电子设备的结构方框图。
一方面,该电子设备5000可以包括前述的视频元数据的获取装置2000或处理装置3000,用于对应实施本公开任意实施例的视频元数据的获取方法或处理方法。
另一方面,如图11所示,电子设备5000可以包括存储器5200和处理器5400,存储器5200用于存储可执行的指令;该指令用于控制处理器5400执行前述的视频元数据的获取方法或处理方法。
在本实施例中,电子设备5000可以是服务器、平板电脑、台式机、工作站等任意具有存储器5200以及处理器5400的电子产品。
<计算机可读存储介质实施例>
最后,根据本公开的又一个实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现根据本公开任意实施例所述的视频元数据的获取方法或处理方法。
本公开实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的实施例的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开的实施例操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的实施例的各个方面。
这里参照根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本公开的实施例的范围由所附权利要求来限定。
Claims (13)
1.一种视频元数据的获取方法,其特征在于,所述方法包括:
在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;
获取源站响应所述第二视频回源请求发送的第一响应数据;
对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个,
所述下层节点根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到请求目标视频的第一视频回源请求、且本地缓存中存在目标视频的情况下,响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据,以使所述下层节点接收到的响应头中携带有所述目标视频的元数据。
3.根据权利要求2所述的方法,其特征在于,在响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据之前,所述方法还包括:
检测待发送的所述第二响应数据的响应头中是否存在所述目标视频的元数据;
在所述第二响应数据的响应头中未存在所述目标视频的元数据的情况下,对所述目标视频进行解析,获得所述目标视频的元数据,并将所述目标视频的元数据添加至所述第二响应数据的数据头中;
在所述第二响应数据的响应头中存在所述目标视频的元数据的情况下,执行响应所述第一视频回源请求,向所述下层节点发送响应头中添加有所述目标视频的元数据的第二响应数据的步骤。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到请求目标视频的第一视频回源请求、且本地缓存中不存在目标视频但存在所述目标视频的元数据的情况下,向源站发送请求所述目标视频的第二视频回源请求,其中,所述元数据为通过解析所述目标视频的首个回源分片获得的;以及
获取源站响应所述第二视频回源请求发送的第三响应数据,并将所述元数据添加至所述第三响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据。
5.根据权利要求1所述的方法,其特征在于,所述对所述第一响应数据进行解析,获得所述目标视频的元数据包括:
根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析以获得所述目标视频的元数据。
6.一种视频元数据的获取方法,其特征在于,应用于反向代理服务器,所述方法包括:
接收下层节点请求目标视频的第一视频回源请求;
对所述第一视频回源请求增加表示所述目标视频的视频文件格式的请求头;
将增加所述请求头的所述第一视频回源请求发送至与所述反向代理服务器相匹配的缓存设备,以使所述缓存设备通过解析所述第一视频回源请求的请求头得到所述目标视频的视频文件格式;
接收所述缓存设备发送的第一响应数据,其中,所述第一响应数据的响应头中添加有所述缓存设备根据所述目标视频的视频文件格式对应解析所述第一响应数据获得的所述目标视频的元数据;
响应所述第一视频回源请求,向下层节点发送所述第一响应数据,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个,
所述下层节点根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
7.一种视频元数据的获取方法,其特征在于,应用于缓存设备,所述方法包括:
接收反向代理服务器发送的第一视频回源请求,其中所述第一视频回源请求中携带有用于表示下层节点请求的目标视频的视频文件格式的请求头,所述请求头为所述反向代理服务器增加到所述第一视频回源请求中;
对所述第一视频回源请求的请求头进行解析,得到所述目标视频的视频文件格式;
向源站发送请求所述目标视频的第二视频回源请求;
获取源站响应所述第二视频回源请求发送的第一响应数据;
根据所述目标视频的视频文件格式,对所述第一响应数据进行对应解析,获得所述目标视频的元数据;
将所述目标视频的元数据添加至所述第一响应数据的响应头中,并发送给所述反向代理服务器,以使所述反向代理服务器响应所述第一视频回源请求向下层节点发送所述第一响应数据,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个,
所述下层节点根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
8.一种视频元数据的处理方法,其特征在于,所述方法包括:
接收上层节点响应请求目标视频的回源请求发送的响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;
根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个。
9.一种视频元数据的获取装置,其特征在于,所述装置包括:
发送模块,用于在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;
获取模块,用于获取源站响应所述第二视频回源请求发送的第一响应数据;
解析模块,用于对所述第一响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述第一响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个,
所述下层节点根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率。
10.一种视频元数据的处理装置,其特征在于,所述装置包括:
接收模块,用于接收上层节点响应请求目标视频发送的响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;
计算模块,用于根据所述目标视频的元数据包括的所述目标视频的文件大小和所述目标视频的时长,计算得到所述目标视频的码率;以及
调整模块,用于根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个。
11.一种视频元数据的处理系统,其特征在于,所述处理系统包括上层节点和下层节点,
所述上层节点用于:在接收到请求目标视频的第一视频回源请求、且本地缓存中未存在所述目标视频的情况下,向源站发送请求所述目标视频的第二视频回源请求;获取源站响应所述第二视频回源请求发送的响应数据;对所述响应数据进行解析,获得所述目标视频的元数据,并将所述元数据添加至所述响应数据的响应头中,以使下层节点接收到的响应头中携带有所述元数据;
所述下层节点用于:接收上层节点响应所述第一视频回源请求发送的所述响应数据,其中所述响应数据的响应头中携带有所述目标视频的元数据;根据所述目标视频的元数据中记录的所述目标视频的文件总大小和所述目标视频的时长,计算得到所述目标视频的码率;以及根据所述目标视频的码率,调整客户端下载所述目标视频的下载速率,
其中,所述目标视频的元数据包括:所述目标视频的编码格式、所述目标视频的文件大小、所述目标视频的时长和所述目标视频的分辨率中的至少一个。
12.一种电子设备,其特征在于,包括:
根据权利要求9或10所述的装置;或者,
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1至8中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010219906.8A CN113453062B (zh) | 2020-03-25 | 2020-03-25 | 视频元数据的获取、处理方法及装置、系统、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010219906.8A CN113453062B (zh) | 2020-03-25 | 2020-03-25 | 视频元数据的获取、处理方法及装置、系统、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113453062A CN113453062A (zh) | 2021-09-28 |
CN113453062B true CN113453062B (zh) | 2023-05-05 |
Family
ID=77806956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010219906.8A Active CN113453062B (zh) | 2020-03-25 | 2020-03-25 | 视频元数据的获取、处理方法及装置、系统、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113453062B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547478A (zh) * | 2012-02-20 | 2012-07-04 | 北京蓝汛通信技术有限责任公司 | 基于cdn的流媒体触发式切片点播系统和方法 |
CN107809684A (zh) * | 2017-10-27 | 2018-03-16 | 广东省南方数字电视无线传播有限公司 | 视频切片生成方法和装置、缓存服务器 |
CN109104617A (zh) * | 2018-09-05 | 2018-12-28 | 杭州领智云画科技有限公司 | 视频请求响应方法和系统 |
CN109600437A (zh) * | 2018-12-11 | 2019-04-09 | 网宿科技股份有限公司 | 一种流媒体资源的下载方法及缓存服务器 |
CN109640113A (zh) * | 2018-12-28 | 2019-04-16 | 网宿科技股份有限公司 | 一种拖拉视频数据的处理方法及代理服务器 |
CN110198345A (zh) * | 2019-05-06 | 2019-09-03 | 视联动力信息技术股份有限公司 | 一种数据请求方法、系统及装置和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170164020A1 (en) * | 2015-12-08 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Content delivery method for content delivery network platform and scheduling proxy server |
-
2020
- 2020-03-25 CN CN202010219906.8A patent/CN113453062B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547478A (zh) * | 2012-02-20 | 2012-07-04 | 北京蓝汛通信技术有限责任公司 | 基于cdn的流媒体触发式切片点播系统和方法 |
CN107809684A (zh) * | 2017-10-27 | 2018-03-16 | 广东省南方数字电视无线传播有限公司 | 视频切片生成方法和装置、缓存服务器 |
CN109104617A (zh) * | 2018-09-05 | 2018-12-28 | 杭州领智云画科技有限公司 | 视频请求响应方法和系统 |
CN109600437A (zh) * | 2018-12-11 | 2019-04-09 | 网宿科技股份有限公司 | 一种流媒体资源的下载方法及缓存服务器 |
CN109640113A (zh) * | 2018-12-28 | 2019-04-16 | 网宿科技股份有限公司 | 一种拖拉视频数据的处理方法及代理服务器 |
CN110198345A (zh) * | 2019-05-06 | 2019-09-03 | 视联动力信息技术股份有限公司 | 一种数据请求方法、系统及装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113453062A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387521B2 (en) | Creation and delivery of pre-rendered web pages for accelerated browsing | |
CN102611945B (zh) | 一种流媒体切片方法、切片服务器及流媒体点播系统 | |
US11356748B2 (en) | Method, apparatus and system for slicing live streaming | |
US11057446B2 (en) | System and method for streaming content from multiple servers | |
US8090863B2 (en) | Partial object distribution in content delivery network | |
US8825749B2 (en) | Method of tracking offline user interaction in a rendered document on a mobile device | |
US9613142B2 (en) | Method and system for providing the download of transcoded files | |
US20170164020A1 (en) | Content delivery method for content delivery network platform and scheduling proxy server | |
US8990429B2 (en) | HTTP-based synchronization method and apparatus | |
WO2017096830A1 (zh) | 用于cdn平台的内容分发方法及调度代理服务器 | |
US9356985B2 (en) | Streaming video to cellular phones | |
US7987243B2 (en) | Method for media discovery | |
CN110661826B (zh) | 代理服务器端处理网络请求的方法和代理服务器 | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
WO2015176470A1 (zh) | 一种http协议的缓存状态更新方法和设备、处理机 | |
US10116713B2 (en) | System and methods for content streaming with a content buffer | |
JP2009104381A (ja) | キャッシュ制御プログラム、該プログラムを記録した記録媒体、キャッシュ制御装置、およびキャッシュ制御方法 | |
EP3754998A1 (en) | Streaming media quality monitoring method and system | |
WO2017020597A1 (zh) | 一种资源缓存方法及装置 | |
KR20220133964A (ko) | Http를 통한 동적 적응적 스트리밍을 위한 방법 및 장치 | |
US20190273808A1 (en) | Leveraging Time-Windows Generated by Web Browser Pre-Connections | |
CN113453062B (zh) | 视频元数据的获取、处理方法及装置、系统、电子设备 | |
CN115297095B (zh) | 回源处理方法、装置、计算设备及存储介质 | |
CN109089175B (zh) | 一种视频缓存加速的方法及装置 | |
US9729650B2 (en) | Providing data to a network terminal |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |