CN112770132B - 一种代理缓存中降低mp4视频出口流量的方法及*** - Google Patents

一种代理缓存中降低mp4视频出口流量的方法及*** Download PDF

Info

Publication number
CN112770132B
CN112770132B CN202110008479.3A CN202110008479A CN112770132B CN 112770132 B CN112770132 B CN 112770132B CN 202110008479 A CN202110008479 A CN 202110008479A CN 112770132 B CN112770132 B CN 112770132B
Authority
CN
China
Prior art keywords
video
file
data
dragging
request
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
Application number
CN202110008479.3A
Other languages
English (en)
Other versions
CN112770132A (zh
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.)
BEIJING NETEAST TECHNOLOGIES CO LTD
Original Assignee
BEIJING NETEAST TECHNOLOGIES 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 BEIJING NETEAST TECHNOLOGIES CO LTD filed Critical BEIJING NETEAST TECHNOLOGIES CO LTD
Priority to CN202110008479.3A priority Critical patent/CN112770132B/zh
Publication of CN112770132A publication Critical patent/CN112770132A/zh
Application granted granted Critical
Publication of CN112770132B publication Critical patent/CN112770132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • 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/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • H04N21/8113Monomedia components thereof involving special audio data, e.g. different tracks for different languages comprising music, e.g. song in MP3 format

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种代理缓存中降低MP4视频出口流量的方法及***,该方法包括:缓存服务器接收携带拖动参数的用户请求,去除用户请求中的拖动参数,向视频源站发送用户请求;并从视频源站获取MP4视频文件的视频头信息和MP4视频文件长度;创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;映射标记文件用于标记本地缓存文件的每个数据块是否有数据;向视频源站发送携带拖动参数的请求,并接收视频源站返回的数据;基于拖动后视频文件的结构,形成新的视频头文件和部分视频数据;基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,然后更新映射标记文件;将新的视频头文件和视频数据返回给用户。

Description

一种代理缓存中降低MP4视频出口流量的方法及***
技术领域
本发明涉及计算机领域,具体涉及一种代理缓存中降低MP4视频出口流量的方法及***。
背景技术
伴随着互联网带宽和速度的提升,目前互联网从原本集中在网页流量和即时通讯的文本传输,迅速变成了集中在高速下载,高码率视频边下边播的点播等业务上,对视频的要求也从无追求变成了追求高清、高码率的视频内容。
而对于中小运营商来说,大部分网络视频资源并不存放在本地网络中,而是需要购买联通电信的出口才能够获取,而在上网高峰期之间,有可能会导致出口拥堵,进而影响用户的上网体验,对此,各个中小运营商采用了缓存技术来解决出口拥堵。
缓存***有两种模式,一种是热点触发模式,如果资源达到相应热度,则缓存***会出网单独下载一份资源,这会导致额外占用了一份下载流量。第二种是代理模式,将用户请求HTTP协议的302重定向模式或者采用dns模式引导到缓存服务器上,缓存服务器使用代理模式为用户服务,并将代理中的资源存储到本地,如果用户访问http://www.youku.com/kele.mp4,代理缓存服务器会在替用户代理资源的同时,将文件存放到本地,下次再有用户请求时,可以直接从磁盘上为用户提供服务,而不需要再次去源站进行下载。
第二种模式可以减少额外的一份下载资源,但是用户有时会采取拖动的方式进行下载,比如使用start=100(意思是从视频第100秒开始观看),对于MP4文件来说,会生成一份独立的MP4文件,拥有不同的视频头信息,与原有文件完全不同,这导致了缓存***无法将这种拖动后的文件保存下来,因为用户的拖动是不可预知的,不可能将每一秒的拖动文件都缓存下来,这样磁盘空间必然是不足的。所以,缓存***对于这种拖动文件只能变成纯粹的代理,而无法将下载的内容存放在磁盘上,形成了出网流量的浪费。
MP4文件的结构分为2部分,在文件开头的是视频的描述信息,具体对应着每一段视频帧的描述和位置,成为视频头,在视频头后面是具体的视频数据,分为音频帧和视频帧。
MP4支持使用时间产生拖动,根据具体的秒数,可以从视频头中计算出视频数据在文件中的具***置,从该位置开始到文件结束为拖动后的视频内容。而因为视频内容的改变,导致必须形成新的视频头,这个新的视频头可以重新描述这个拖动后的视频文件的数据信息。
发明内容
本发明针对第二种代理缓存模式,这种模式对于拖动后的视频文件,只能做存储的代理服务,并不能将实际下载数据写入磁盘中,浪费了出网流量。为此,本发明提出了一种代理缓存中降低MP4视频出口流量的方法,可以对这种按照时间拖动的视频资源,通过解析视频内容,计算出该资源在完整视频文件中的位置,将数据写入完整视频文件的实际位置,并使用位图的形式记录下来,当所有的位图都被填满后,整个视频文件就合并完成了,避免了拖动后的视频文件导致了多余的出网流量。
为实现上述目的,本发明的实施例1提出了一种代理缓存中降低MP4视频出口流量的方法,所述方法包括:
缓存服务器接收携带拖动参数的用户请求,去除用户请求中的拖动参数,向视频源站发送用户请求;并从视频源站获取MP4视频文件的视频头信息和MP4视频文件长度;
创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;所述映射标记文件用于标记本地缓存文件的每个数据块是否有数据;
向视频源站发送携带拖动参数的请求,并接收视频源站返回的数据;
基于拖动后视频文件的结构,形成新的视频头文件和部分视频数据;
基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,然后更新映射标记文件;
将新的视频头文件和视频数据返回给用户。
作为上述方法的一种改进,所述方法还包括:
调度服务器拦截用户发送给视频源站的请求,该请求中携带拖动参数;所述拖动参数为用户拖动视频位移对应的拖动时间;
调度服务器向用户发送重定向请求;
缓存服务器与用户建立连接。
作为上述方法的一种改进,所述缓存服务器计算拖动后的视频在MP4视频文件的位置,将数据写入本地缓存文件的指定位置,具体包括:
将MP4视频文件的视频数据和拖动后视频文件的部分视频数据进行尾进齐,获取拖动后视频文件在本地缓存文件中的位置;
将数据写入本地缓存文件中的上述位置处。
作为上述方法的一种改进,所述方法还包括:当缓存服务器接收到用户的携带拖动参数的请求,发现本地已存有该请求对应的本地缓存文件,但本地缓存文件中的已有数据不能满足本次拖动请求,则首先根据拖动参数生成新的视频头文件,然后根据映射标记文件和本地缓存文件中缺少的数据位置,计算出一个新的拖动参数,向视频源站发送携带新的拖动参数的请求并接收视频源站返回的视频数据;计算该视频数据在本地缓存文件的位置,将视频数据写入该位置处,并更新映射标记文件,将新的视频头文件、本地缓存的视频数据和视频源站返回的视频数据返回给用户。
作为上述方法的一种改进,所述方法还包括:当缓存服务器接收到用户的携带拖动参数的请求,发现本地已存有该请求对应的本地缓存文件,且本地缓存文件中的已有数据能够满足本次拖动请求,则根据拖动参数生成一个新的视频头;并根据拖动参数计算出本地缓存文件的位置;基于该位置从本地缓存文件中获取视频数据;将视频头和视频数据返回给用户。
本发明的实施例2还提供了一种代理缓存中降低MP4视频出口流量的***,所述***包括设置在缓存服务器上的第一数据请求模块、文件创建模块、第二数据请求模块、文件更新模块和视频数据输出模块;
所述第一数据请求模块,用于接收携带拖动参数的用户请求,去除用户请求中的拖动参数,向视频源站发送用户请求;并从视频源站获取MP4视频文件的视频头信息和MP4视频文件长度;
所述文件创建模块,用于创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;所述映射标记文件用于标记本地缓存文件的每个数据块是否有数据;
所述第二数据请求模块,用于向视频源站发送携带拖动参数的请求,并接收视频源站返回的数据;
所述文件更新模块,用于基于拖动后视频文件的结构,形成新的视频头文件和部分视频数据;基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,然后更新映射标记文件;
所述视频数据输出模块,用于将新的视频头文件和视频数据返回给用户。
作为上述***的一种改进,所述***还包括:调度服务器,用于拦截用户发送给视频源站的请求,该请求中携带拖动参数,所述拖动参数为用户拖动视频位移对应的拖动时间;向用户发送重定向请求。
作为上述***的一种改进,所述文件更新模块的具体实现过程包括:
将MP4视频文件的视频数据和拖动后视频文件的部分视频数据进行尾进齐,获取拖动后视频文件在本地缓存文件中的位置;
将数据写入本地缓存文件中的上述位置处。
作为上述***的一种改进,所述缓存服务器还用于:接收用户的携带拖动参数的请求,发现本地已存有该请求对应的本地缓存文件,但本地缓存文件中的已有数据不能满足本次拖动请求,则首先根据拖动参数生成新的视频头文件,然后根据映射标记文件和本地缓存文件中缺少的数据位置,计算出一个新的拖动参数,向视频源站发送携带新的拖动参数的请求并接收视频源站返回的视频数据;计算该视频数据在本地缓存文件的位置,将视频数据写入该位置处,并更新映射标记文件,将新的视频头文件、本地缓存的视频数据和视频源站返回的视频数据返回给用户。
作为上述***的一种改进,所述缓存服务器还用于:接收到用户的携带拖动参数的请求,当发现本地已存有该请求对应的本地缓存文件,且本地缓存文件中的已有数据能够满足本次拖动请求,则根据拖动参数生成一个新的视频头;并根据拖动参数计算出本地缓存文件的位置;基于该位置从本地缓存文件中获取视频数据;将视频头和视频数据返回给用户。
本发明的优势在于:
1、本发明的方法在代理缓存***上,对碎片化的MP4(Moving Picture ExpertsGroup 4)进行了精确合并,减少了出网流量;
2、本发明的方法将原本无法写入磁盘的视频拖动数据,通过计算,写入本地缓存文件的映射位置,能够减少出网流量,避免增加中小运营商的网络拥堵情况;
3、通过本发明的方法,原本无法被存储的拖动视频数据,也可以进行有效存储,减少了缓存***的出网流量;使用该项技术后,单台缓存服务器的出网流量下降了10%,减少了运营商的出口压力。
附图说明
图1为普通缓存服务器的代理流程(代理服务器没有该视频文件);
图2为普通缓存服务器的服务流程(代理服务器有该视频文件);
图3为普通缓存服务器面对拖动视频的流程(只能代理,无法将视频数据写入到本地文件中);
图4为本发明的实施例1的代理缓存中降低MP4视频出口流量的方法的时序图;
图5为本发明的实施例2的代理缓存中降低MP4视频出口流量的方法的时序图;
图6为本发明的实施例3的代理缓存中降低MP4视频出口流量的方法的时序图;
图7为MP4文件的数据结构示意图;
图8为拖动后的MP4文件的数据结构示意图;
图9为拖动前的MP4文件和拖动后的MP4文件的合并过程示意图;
图10为拖动前的MP4文件和拖动后的MP4文件的合并后的结构示意图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明。
实施例1
如果缓存服务器没有原始视频文件的信息,那么当用户使用拖动参数来访问视频时,缓存服务器去掉拖动参数,从源站服务器单独下载一份完整MP4的视频头信息和获得完整文件的长度(HTTP协议的content-length数据)。
如图4所示,本发明的实施例1提出的一种代理缓存中降低MP4视频出口流量的方法,包括:
步骤101)用户向源站(视频内容提供方)请求视频文件;并携带拖动参数;
步骤102)调度服务器拦截用户的请求;
步骤103)调度服务器向用户发送重定向请求;
步骤104)用户与缓存服务器建立连接;
步骤105)缓存服务器发现本地没有完整的视频文件;
步骤106)缓存服务器去除拖动参数,向源站请求原始视频;
步骤107)源站向缓存服务器返回原始视频数据;
步骤108)缓存服务器获得原始视频文件的长度和视频的头信息;
创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;映射标记文件用于标记本地缓存文件的每个数据块是否有数据;
步骤109)缓存服务器与源站断开请求;
步骤1010)缓存服务器使用拖动参数向源站发起请求;
步骤1011)源站向缓存服务器返回数据;
步骤1012)缓存服务器计算拖动后的视频在原视频的位置;
步骤1013)缓存服务器将数据写入本地缓存文件指定位置;
步骤1014)缓存服务器更新映射标记文件;
步骤1015)缓存服务器将数据返回给用户;
步骤1016)缓存服务器判断映射标记文件是否100%,即本地已缓存所有的视频文件数据。
如果缓存服务器已经有原始视频文件的信息,当用户使用拖动参数来访问视频时,根据映射标记文件发现已经存储的数据并不满足本次拖动,缓存服务器会根据映射标记文件,从缺少的数据位置,计算出一个新的拖动参数,进行出网代理,并计算视频在完整文件的位置,写入本地缓存文件,更新映射标记文件。
如图5所示,所述方法还包括:
步骤201)用户向源站(视频内容提供方)请求视频文件;并携带拖动参数;
步骤202)调度服务器拦截用户的请求;
步骤203)调度服务器向用户发送重定向请求;
步骤204)用户与缓存服务器建立连接;
步骤205)缓存服务器发现本地存有该视频的本地缓存文件;
步骤206)缓存服务器根据映射标记文件判断已有数据不满足本次拖动请求;
步骤207)缓存服务器根据映射标记文件计算出一个新的拖动参数;
步骤208)缓存服务器使用新的拖动参数向源站发起代理请求;
步骤209)源站向缓存服务器返回数据;
步骤2010)缓存服务器计算拖动后的视频在原视频的位置;
步骤2011)缓存服务器将数据写入本地缓存文件指定位置;
步骤2012)缓存服务器更新映射标记文件;
步骤2013)缓存服务器将数据返回给用户;
步骤2014)缓存服务器判断映射标记文件是否100%,即本地已缓存所有的视频文件数据。
如果缓存服务器已经有原始视频文件的信息,当用户使用拖动参数来访问视频时,根据映射标记文件发现已经存储的数据可以满足本次拖动,缓存服务器根据拖动参数,形成一个新的视频头,并根据拖动参数计算出文件的数据位置,将视频头和数据组合后,发送给用户。
如图6所示,所述方法还包括:
步骤301)用户向源站(视频内容提供方)请求视频文件;并携带拖动参数;
步骤302)调度服务器拦截用户的请求;
步骤303)调度服务器向用户发送重定向请求;
步骤304)用户与缓存服务器建立连接;
步骤305)缓存服务器发现本地存有该视频的本地缓存文件;
步骤306)缓存服务器根据映射标记文件判断已有数据可以满足本次拖动请求;
步骤307)缓存服务器根据拖动参数生成一个新的视频头;
步骤308)缓存服务器根据拖动参数计算出视频数据的位置;
步骤309)缓存服务器将视频头和视频数据返回给用户;
MP4(MPEG-4Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4Part 12ISO basemedia file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过我们常见的大部分的MP4文件存放的AVC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的音频。MP4格式的官方文件后缀名是“.mp4”,还有其他的以MP4为基础进行的扩展或者是缩水版本的格式包括:M4V,3GP,F4V等。
MP4是由一个个“box”组成的,大box中存放小box,一级嵌套一级来存放媒体信息。box的基本结构是:header部分和data部分,其中,header部分的size指明了整个box所占用的大小,包括header部分。如果box很大(例如存放具体视频数据的mdat box),超过了uint32的最大数值,size就被设置为1,并用接下来的8位uint64来存放大小。
一个MP4文件有可能包含非常多的box,其中的box数据与视频数据一一对应,如果视频数据改变起始位置,那么就需要重新生成头文件。本发明没有修改MP4的定义和结构,只是在缓存代理过程中增加了合并MP4的方法。
完整MP4文件的结构如图7所示。拖动后MP4文件的结构,形成新的视频头文件和部分视频数据,如图8所示。这个时候因为视频头和原始视频头已经不一样的,所以传统的代理缓存会放弃这个文件,无法缓存,如果要缓存,那么只能重头下载一个完整的文件。拖动只是从视频文件某个位置开始向后截取,所以视频文件的结尾是一致的,因此我们将2组文件以文件尾进行对齐,定位拖动后视频文件在完整视频中的位置。如图9所示。
如图10所示,计算拖动后视频位置在完整视频中的位置,根据计算的拖动后视频数据在完整视频中的位置,写入完整视频文件的指定位置,当有其他拖动操作后,可以形成新的视频数据,当整个视频数据都被填满后,认为视频文件为下载完成。
MP4操作函数
int64_t mp4_getHead_getPos(const char*filename,uint64_t pos,int*time);
通过文件和预计需要的视频内容的位移,获得该视频在这段位移对应的拖动时间。
参数:
MP4文件路径
视频数据位移
该位置对于的视频时间(输出)
int64_t mp4_GetKeyPos(const char*filename,uint64_t reqtime,int*headlen,uint64_t*offset,void**buf);
通过文件和拖动时间,返回对应的视频内容的位移和新的MP4头内容。
参数:
MP4文件路径
视频的拖动时间
新的MP4头长度(输出)
对应的视频数据位移(输出)
新的MP4的内容(输出)
位图类结构
Figure BDA0002884050660000081
Figure BDA0002884050660000091
判断文件是否完整。
实施例2
本发明的实施例2还提供了一种代理缓存中降低MP4视频出口流量的***,所述***包括设置在缓存服务器上的第一数据请求模块、文件创建模块、第二数据请求模块、文件更新模块和视频数据输出模块;
所述第一数据请求模块,用于接收携带拖动参数的用户请求,去除用户请求中的拖动参数,向视频源站发送用户请求;并从视频源站获取MP4视频文件的视频头信息和MP4视频文件长度;
所述文件创建模块,用于创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;所述映射标记文件用于标记本地缓存文件的每个数据块是否有数据;
所述第二数据请求模块,用于向视频源站发送携带拖动参数的请求,并接收视频源站返回的数据;
所述文件更新模块,用于基于拖动后视频文件的结构,形成新的视频头文件和部分视频数据;基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,然后更新映射标记文件;
所述视频数据输出模块,用于将新的视频头文件和视频数据返回给用户。
所述***还包括:调度服务器,用于拦截用户发送给视频源站的请求,该请求中携带拖动参数,所述拖动参数为用户拖动视频位移对应的拖动时间;向用户发送重定向请求。
缓存服务器还用于:接收用户的携带拖动参数的请求,发现本地已存有该请求对应的本地缓存文件,但本地缓存文件中的已有数据不能满足本次拖动请求,则首先根据拖动参数生成新的视频头文件,然后根据映射标记文件和本地缓存文件中缺少的数据位置,计算出一个新的拖动参数,向视频源站发送携带新的拖动参数的请求并接收视频源站返回的视频数据;计算该视频数据在本地缓存文件的位置,将视频数据写入该位置处,并更新映射标记文件,将新的视频头文件、本地缓存的视频数据和视频源站返回的视频数据返回给用户。
缓存服务器还用于:接收到用户的携带拖动参数的请求,当发现本地已存有该请求对应的本地缓存文件,且本地缓存文件中的已有数据能够满足本次拖动请求,则根据拖动参数生成一个新的视频头;并根据拖动参数计算出本地缓存文件的位置;基于该位置从本地缓存文件中获取视频数据;将视频头和视频数据返回给用户。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种代理缓存中降低MP4视频出口流量的方法,所述方法包括:
缓存服务器接收携带拖动参数的用户请求,去除用户请求中的拖动参数,向视频源站发送用户请求;并从视频源站获取MP4视频文件的视频头信息和MP4视频文件长度;
创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;所述映射标记文件用于标记本地缓存文件的每个数据块是否有数据;
向视频源站发送携带拖动参数的请求,并接收视频源站返回的数据;
基于拖动后视频文件的结构,形成新的视频头文件和部分视频数据;基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,然后更新映射标记文件;
将新的视频头文件和视频数据返回给用户;
所述方法还包括:当缓存服务器接收到用户的携带拖动参数的请求,发现本地已存有该请求对应的本地缓存文件,但本地缓存文件中的已有数据不能满足本次拖动请求,则首先根据拖动参数生成新的视频头文件,然后根据映射标记文件和本地缓存文件中缺少的数据位置,计算出一个新的拖动参数,向视频源站发送携带新的拖动参数的请求并接收视频源站返回的视频数据;计算该视频数据在本地缓存文件的位置,将视频数据写入该位置处,并更新映射标记文件,将新的视频头文件、本地缓存的视频数据和视频源站返回的视频数据返回给用户。
2.根据权利要求1所述的代理缓存中降低MP4视频出口流量的方法,其特征在于,所述方法还包括:
调度服务器拦截用户发送给视频源站的请求,该请求中携带拖动参数;所述拖动参数为用户拖动视频位移对应的拖动时间;
调度服务器向用户发送重定向请求;
缓存服务器与用户建立连接。
3.根据权利要求1所述的代理缓存中降低MP4视频出口流量的方法,其特征在于,所述基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,具体包括:
将MP4视频文件的视频数据和拖动后视频文件的部分视频数据进行尾进齐,获取拖动后视频文件在本地缓存文件中的位置;
将数据写入本地缓存文件中的上述位置处。
4.一种代理缓存中降低MP4视频出口流量的***,其特征在于,所述***包括设置在缓存服务器上的第一数据请求模块、文件创建模块、第二数据请求模块、文件更新模块和视频数据输出模块;
所述第一数据请求模块,用于接收携带拖动参数的用户请求,去除用户请求中的拖动参数,向视频源站发送用户请求;并从视频源站获取MP4视频文件的视频头信息和MP4视频文件长度;
所述文件创建模块,用于创建一个与MP4视频文件长度相同的本地缓存文件以及对应的映射标记文件;所述映射标记文件用于标记本地缓存文件的每个数据块是否有数据;
所述第二数据请求模块,用于向视频源站发送携带拖动参数的请求,并接收视频源站返回的数据;
所述文件更新模块,用于基于拖动后视频文件的结构,形成新的视频头文件和部分视频数据;基于部分视频数据计算拖动后的视频在MP4视频文件的位置,将部分视频数据写入本地缓存文件的该位置处,然后更新映射标记文件;
所述视频数据输出模块,用于将新的视频头文件和视频数据返回给用户。
5.根据权利要求4所述的代理缓存中降低MP4视频出口流量的***,其特征在于,所述***还包括:调度服务器,用于拦截用户发送给视频源站的请求,该请求中携带拖动参数,所述拖动参数为用户拖动视频位移对应的拖动时间;向用户发送重定向请求。
6.根据权利要求4所述的代理缓存中降低MP4视频出口流量的***,其特征在于,所述文件更新模块的具体实现过程包括:
将MP4视频文件的视频数据和拖动后视频文件的部分视频数据进行尾进齐,获取拖动后视频文件在本地缓存文件中的位置;
将数据写入本地缓存文件中的上述位置处。
7.根据权利要求4所述的代理缓存中降低MP4视频出口流量的***,其特征在于,所述缓存服务器还用于:接收用户的携带拖动参数的请求,发现本地已存有该请求对应的本地缓存文件,但本地缓存文件中的已有数据不能满足本次拖动请求,则首先根据拖动参数生成新的视频头文件,然后根据映射标记文件和本地缓存文件中缺少的数据位置,计算出一个新的拖动参数,向视频源站发送携带新的拖动参数的请求并接收视频源站返回的视频数据;计算该视频数据在本地缓存文件的位置,将视频数据写入该位置处,并更新映射标记文件,将新的视频头文件、本地缓存的视频数据和视频源站返回的视频数据返回给用户。
CN202110008479.3A 2021-01-05 2021-01-05 一种代理缓存中降低mp4视频出口流量的方法及*** Active CN112770132B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110008479.3A CN112770132B (zh) 2021-01-05 2021-01-05 一种代理缓存中降低mp4视频出口流量的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110008479.3A CN112770132B (zh) 2021-01-05 2021-01-05 一种代理缓存中降低mp4视频出口流量的方法及***

Publications (2)

Publication Number Publication Date
CN112770132A CN112770132A (zh) 2021-05-07
CN112770132B true CN112770132B (zh) 2023-01-24

Family

ID=75699277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110008479.3A Active CN112770132B (zh) 2021-01-05 2021-01-05 一种代理缓存中降低mp4视频出口流量的方法及***

Country Status (1)

Country Link
CN (1) CN112770132B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013075342A1 (zh) * 2011-11-26 2013-05-30 华为技术有限公司 一种视频处理的方法及装置
WO2014015168A2 (en) * 2012-07-18 2014-01-23 Skyfire Labs, Inc. Just-in-time distributed video cache
CN105893429A (zh) * 2015-12-08 2016-08-24 乐视云计算有限公司 用于优化web缓存的方法及***
CN109640113A (zh) * 2018-12-28 2019-04-16 网宿科技股份有限公司 一种拖拉视频数据的处理方法及代理服务器
CN110062274A (zh) * 2019-04-30 2019-07-26 深圳市迅雷网络技术有限公司 一种视频文件缓存方法、装置、设备及可读存储介质
CN111464757A (zh) * 2019-01-21 2020-07-28 西安诺瓦电子科技有限公司 视频处理方法、装置和***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013075342A1 (zh) * 2011-11-26 2013-05-30 华为技术有限公司 一种视频处理的方法及装置
WO2014015168A2 (en) * 2012-07-18 2014-01-23 Skyfire Labs, Inc. Just-in-time distributed video cache
CN105893429A (zh) * 2015-12-08 2016-08-24 乐视云计算有限公司 用于优化web缓存的方法及***
CN109640113A (zh) * 2018-12-28 2019-04-16 网宿科技股份有限公司 一种拖拉视频数据的处理方法及代理服务器
CN111464757A (zh) * 2019-01-21 2020-07-28 西安诺瓦电子科技有限公司 视频处理方法、装置和***
CN110062274A (zh) * 2019-04-30 2019-07-26 深圳市迅雷网络技术有限公司 一种视频文件缓存方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN112770132A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
US10616301B2 (en) Request-based encoding for streaming content portions
Ma et al. Framework for adaptive content delivery in heterogeneous network environments
US7941553B2 (en) Method and device for streaming a media file over a distributed information system
JP6014870B2 (ja) ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム
CN106878315B (zh) 可变速率媒体传送***
US9183576B2 (en) Methods and systems for inserting media content
KR101330052B1 (ko) 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
EP2521369A2 (en) Media file storage format and adaptive delivery system
EP2779658A2 (en) Segmented content delivery
US9794375B2 (en) Method, apparatus, and non-transitory computer medium for obtaining a required frame size for a compressed data frame
US20040010613A1 (en) Storage and distribution of segmented media data
US11310550B2 (en) System and method for storing multimedia files using an archive file format
EP2779537A1 (en) A method, apparatus and computer program for encoding data of a media file
CN109104614A (zh) 一种直播缓存***及方法
CN108513162A (zh) 直播回看的缓存、播放方法及***
CN109089175B (zh) 一种视频缓存加速的方法及装置
CN103118049B (zh) 一种通过网络缓存下载文件的方法和***
WO2014072739A1 (en) Video distribution
CN112770132B (zh) 一种代理缓存中降低mp4视频出口流量的方法及***
KR20060113678A (ko) 멀티미디어 콘텐츠 사용자의 구성을 원격 결정하는 시스템,방법 및 컴퓨터 프로그램 제품
JP5180196B2 (ja) ユーザエージェントプロファイル情報を報告するための方法、システムおよびデバイス
Jeon et al. User centric content management system for open IPTV over SNS
EP4391559A1 (en) Method for delivering an audio and/or video content and transcoding proxy implementing said method
WO2024006810A1 (en) Media content boundary-aware encoding
WO2024006818A1 (en) Media content boundary-aware supplemental content management

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