CN111147869B - 一种基于分布式对象存储的视频转码系统及方法 - Google Patents
一种基于分布式对象存储的视频转码系统及方法 Download PDFInfo
- Publication number
- CN111147869B CN111147869B CN201911354094.1A CN201911354094A CN111147869B CN 111147869 B CN111147869 B CN 111147869B CN 201911354094 A CN201911354094 A CN 201911354094A CN 111147869 B CN111147869 B CN 111147869B
- Authority
- CN
- China
- Prior art keywords
- video
- video file
- transcoded
- fragmented
- object storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000012634 fragment Substances 0.000 claims abstract description 60
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 6
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 6
- 238000012545 processing Methods 0.000 claims description 33
- 238000012986 modification Methods 0.000 claims description 17
- 230000004048 modification Effects 0.000 claims description 17
- 230000002194 synthesizing effect Effects 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 9
- 238000004140 cleaning Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2181—Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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
-
- 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)
- Television Signal Processing For Recording (AREA)
Abstract
本发明实施例提供一种基于分布式对象存储的视频转码系统及方法,包括:分布式对象存储单元:用于接收视频被分片后的分片视频文件,并将分片视频文件通过纠删码方式存储在N个节点中;以及,在接收到视频转码模块获取所述分片视频文件时,通过纠删码方式还原分片视频文件,并将分片视频文件传输到视频转码模块;以及,接收经视频转码模块转码后的分片视频文件,并将每个转码后的分片视频文件通过纠删码方式存储在N个节点中;以及,在接收到视频合成模块获取所述转码后的分片视频文件时,通过纠删码方式还原转码后的分片视频文件,并将转码后的分片视频文件传输到视频合成模块。将分片视频文件存储在不同节点,通过纠删码算法恢复数据,避免数据丢失。
Description
技术领域
本发明涉及视频编解码领域,具体涉及一种基于分布式对象存储的视频转码系统及方法。
背景技术
随着多媒体技术的发展,视频行业已经进入全面爆发时期,而在视频处理过程中,通常会将同一视频源进行多清晰度转码及图像处理(添加水印和Logo等)后,最终呈现给用户观看。为提高视频转码速度,通常会将视频源进行分片转码然后合成最终的视频进行存储,在这个过程中,视频分片文件的读写存储速度对视频转码速度起决定性作用。
在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
现有技术中采用本地磁盘存储。本地磁盘存储要求单台服务器同时具备三个模块:分片模块,转码模块,合成模块。分片模块将视频源切割成相同T时间段的切片直接存储在本地磁盘中,然后转码模块从本地磁盘中读取视频分片进行转码,并将转码后的视频分片存储在本地,最后合成模块读取转码后的视频分片合成为最终的视频提供用户访问。这种方式以单机部署严重依赖单机磁盘的性能,一旦磁盘故障,数据就会丢失。
发明内容
本发明实施例提供一种基于分布式对象存储的视频转码系统及方法,将分片视频文件存储在不同的节点上,任意一个或多个节点故障(故障节点数小于节点总数的一半)时,仍然可以通过纠删码算法保存和恢复数据,避免了数据丢失。
为达上述目的,一方面,本发明实施例提供一种基于分布式对象存储的视频转码系统,包括:分布式对象存储单元和视频处理单元,所述视频处理单元包括视频转码模块和视频合成模块,其中:
分布式对象存储单元:用于接收视频文件被分片后的分片视频文件,并将分片视频文件通过纠删码方式存储在N个节点中;所述纠删码方式为一种设定的矩阵算法;以及,
在接收到视频转码模块获取所述分片视频文件时,通过纠删码方式还原分片视频文件,并将分片视频文件传输到视频转码模块;以及,
接收经视频转码模块转码后的分片视频文件,并将每个转码后的分片视频文件通过纠删码方式存储在N个节点中;以及,
在接收到视频合成模块获取所述转码后的分片视频文件时,通过纠删码方式还原转码后的分片视频文件,并将转码后的分片视频文件传输到视频合成模块;
视频转码模块:设置于视频处理单元内,用于自分布式对象存储单元获取分片视频文件,将分片视频文件转码,并将转码后的分片视频文件上传到分布式对象存储单元;
视频合成模块:设置于视频处理单元内,用于自分布式对象存储单元获取转码后的分片视频文件,将转码后的分片视频文件合成完整的视频文件。
另一方面,本发明实施例提供一种基于分布式对象存储的视频转码方法,包括:
将视频文件分片生成多个分片视频文件,并将多个分片视频文件以分布式对象存储的方式进行存储;将分片视频文件以分布式对象存储的方式进行存储具体包括:将每个分片视频文件通过纠删码方式存储在N个节点中,所述纠删码方式为一种设定的矩阵算法,以及,通过纠删码方式还原分片视频文件;
获取通过纠删码方式还原的分片视频文件,将所述分片视频文件进行转码生成转码的分片视频文件,并将转码的分片视频文件以分布式对象存储的方式进行存储;将转码的分片视频文件以分布式对象存储的方式进行存储具体包括:将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,以及,通过纠删码方式还原转码后的分片视频文件;
获取通过纠删码方式还原的转码后的分片视频文件,将所述转码后的分片视频文件合成完整的视频文件。
上述技术方案具有如下有益效果:以分布式对象存储方式将分片视频文件存储在不同的节点上,任意一个或多个节点故障(故障节点数小于节点总数的一半)时,仍然可以通过纠删码算法保存和恢复数据,避免了数据丢失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种基于分布式对象存储的视频转码系统的结构示意图;
图2是本发明实施例的一种基于分布式对象存储的视频转码方法的流程示意图;
图3是本发明实施例的分布式对象存储结构示意图;
图4是本发明实施例的另一种基于分布式对象存储的视频转码系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,结合本发明的实施例,提供一种基于分布式对象存储的视频转码系统,包括:分布式对象存储单元和视频处理单元,所述视频处理单元包括视频转码模块和视频合成模块,其中:
分布式对象存储单元11:用于接收视频文件被分片后的分片视频文件,并将分片视频文件通过纠删码方式存储在N个节点中;所述纠删码方式为一种设定的矩阵算法;以及,
在接收到视频转码模块12获取所述分片视频文件时,通过纠删码方式还原分片视频文件,并将分片视频文件传输到视频转码模块12;以及,
接收经视频转码模块12转码后的分片视频文件,并将每个转码后的分片视频文件通过纠删码方式存储在N个节点中;以及,
在接收到视频合成模块13获取所述转码后的分片视频文件时,通过纠删码方式还原转码后的分片视频文件,并将转码后的分片视频文件传输到视频合成模块13;
视频转码模块12:设置于视频处理单元内,用于自分布式对象存储单元11获取分片视频文件,将分片视频文件转码,并将转码后的分片视频文件上传到分布式对象存储单元 11;
视频合成模块13:设置于视频处理单元内,用于自分布式对象存储单元11获取转码后的分片视频文件,将转码后的分片视频文件合成完整的视频文件。
优选地,在分布式对象存储单元11中,
将分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个分片视频文件生成其相应的奇偶校验块,将每个分片视频文件拆分成多个第一级数据块,以及将每个分片视频文件的奇偶校验块拆分成多个第一级奇偶校验块,所述第一级数据块和第一级奇偶校验块的总数为N;并将第一级数据块和第一级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原分片视频文件具体包括:从第一级数据块和第一级奇偶校验块中获取任意至少N/2个块,通过获取的第一级奇偶校验块校验获取的第一级数据块之间的数据关系,使用获取的第一级数据块还原出分片视频文件;
以及,
将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个转码后的分片视频文件生成其相应的奇偶校验块,将每个转码后的分片视频文件拆分成多个第二级数据块,将每个转码后的分片视频文件的奇偶校验块拆分为多个第二级奇偶校验块,所述第二级数据块和所述第二级奇偶校验块的总数为N;并将第二级数据块和第二级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原转码后的分片视频文件具体包括:从第二级数据块和第二级奇偶校验块中获取任意至少N/2个块,通过获取的第二级奇偶校验块校验获取的第二级数据块之间的数据关系,使用获取的第二级数据块还原出转码后的分片视频文件。
优选地,所述分布式对象存储单元11设有SDK接口,通过SDK接口连接所述视频处理单元,所述视频处理单元通过SDK接口的putObject调用方法上传分片视频文件和转码后的分片视频文件到分布式对象存储单元11;以及,通过SDK接口的getObject调用方法获取分布式对象存储单元11内的通过纠删码方式还原的分片视频文件和通过纠删码方式还原的转码后的分片视频文件。
优选地,还包括删除单元14:
用于检测分布式对象存储单元11内的分片视频文件的修改时间或转码后的分片视频文件的修改时间,当修改时间与当前时间的差值大于预设值时将对应的分片视频文件或转码后的分片视频文件删除,所述预设值的单位包括分钟、小时、天中的一种或者多种。
优选地,所述分布式对象存储单元11和所述视频处理单元处于同一内网,和/或,所述分布式对象存储单元11和所述视频处理单元共用相同的服务器。
如图2所示,结合本发明的实施例,提供一种基于分布式对象存储的视频转码方法,包括:
S201:将视频文件分片生成多个分片视频文件,并将多个分片视频文件以分布式对象存储的方式进行存储;将分片视频文件以分布式对象存储的方式进行存储具体包括:将每个分片视频文件通过纠删码方式存储在N个节点中,所述纠删码方式为一种设定的矩阵算法,以及,通过纠删码方式还原分片视频文件;
S202:获取通过纠删码方式还原的分片视频文件,将所述分片视频文件进行转码生成转码的分片视频文件,并将转码的分片视频文件以分布式对象存储的方式进行存储;将转码的分片视频文件以分布式对象存储的方式进行存储具体包括:将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,以及,通过纠删码方式还原转码后的分片视频文件;
S203:获取通过纠删码方式还原的转码后的分片视频文件,将所述转码后的分片视频文件合成完整的视频文件。
优选地,基于分布式对象存储的视频转码方法的步骤201中具体包括:
将每个分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个分片视频文件生成其相应的奇偶校验块,将每个分片视频文件拆分成多个第一级数据块,以及将每个分片视频文件的奇偶校验块拆分成多个第一级奇偶校验块,所述第一级数据块和第一级奇偶校验块的总数为N;并将第一级数据块和第一级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原分片视频文件具体包括:从第一级数据块和第一级奇偶校验块中获取任意至少N/2个块,通过获取的第一级奇偶校验块校验获取的第一级数据块之间的数据关系,使用获取的第一级数据块还原出分片视频文件;
以及,
将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个转码后的分片视频文件生成其相应的奇偶校验块,将每个转码后的分片视频文件拆分成多个第二级数据块,将每个转码后的分片视频文件的奇偶校验块拆分为多个第二级奇偶校验块,所述第二级数据块和所述第二级奇偶校验块的总数为N;并将第二级数据块和第二级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原转码后的分片视频文件具体包括:从第二级数据块和第二级奇偶校验块中获取任意至少N/2个块,通过获取的第二级奇偶校验块校验获取的第二级数据块之间的数据关系,使用获取的第二级数据块还原出转码后的分片视频文件。
优选地,基于分布式对象存储的视频转码方法还包括:
通过putObject调用方法上传分片视频文件,以对分片视频文件以分布式对象存储的方式进行存储;以及,通过putObject调用方法上传转码后的分片视频文件,以对转码后的分片视频文件以分布式对象存储的方式进行存储;
通过getObject调用方法获取通过纠删码方式还原的分片视频文件和通过纠删码方式还原的转码后的分片视频文件。
优选地,还包括S204::检测分片视频文件的修改时间或转码后的分片视频文件的修改时间,当修改时间与当前时间的差值大于预设值时,将对应的分片视频文件或转码后的分片视频文件删除,所述预设值的单位包括分钟、小时、天中的一种或者多种。
优选地,还包括:将视频文件分片形成分片视频文件、将分片视频文件转码形成转码分片视频文件、将转码分片视频文件合成完整的视频文件,均与分片视频文件以分布式对象存储共用一内网,和/或,将视频文件分片形成分片视频文件、将分片视频文件转码形成转码分片视频文件、将转码分片视频文件合成完整的视频文件,均与分片视频文件以分布式对象存储共用相同的服务器。
本发明实施例上述技术方案具有如下有益效果:以分布式对象存储方式将分片视频文件存储在不同的节点上,任意一个或多个节点故障(故障节点数小于节点总数的一半)时,仍然可以通过纠删码算法保存和恢复数据,避免了数据丢失。
以下结合应用实例(结合图3到图4)对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
MinIO是一个基于Apache License v2.0开源协议的对象存储服务。它兼容AmazonS3 接口(Amazon S3,全称:Amazon Simple Storage Service,是一个公用的云存储服务,Web 应用程序开发人员可以使用程序向其上传和下载文件),提供了MinIO客户端和SDK以对系统和数据进行操作,目前SDK有JS,Java,Python,Golang和.NET等多语言版本。MinIO客户端具有mc(MinIO Client),mc(提供了一系列类UNIX命令,它主要是对MinIO服务进行管理,就是本地对集群进行管理操作;而SDK则主要提供了对Bucket(开放式存储) 以及文件对象Object(Object字节流)的操作,比如:在视频处理单元中的创建,删除,上传,下载等操作。
本技术方案中的MinIO分布式对象存储结构图如图3所示,具体的MinIO分布式对象存储结构为:使用N(2<=N<=32)个节点组成一个MinIO集群,这里选取16个节点,以5,6,5的方式分布在A,B,C三个机房中,每个节点上使用EC纠删码模式(Erasure Code, 纠删码运行MinIO服务。纠删码方式为一种设定的矩阵算法,是一种数据保护方法,具体为:MinIO默认采用Reed-Solomon code将原始数据生成相应的奇偶校验块,然后将原始数据拆分成多个数据块,也将奇偶校验块拆分为多个数据块,二者拆分后的总数为N。接下来并将拆分后的原始数据和拆分后的奇偶校验块随机保存到集群的N个节点的每个节点中。当对原始数据进行还原时,获取拆分后的原始数据和拆分后的奇偶校验块中的至少N/2 个块,通过获取的拆分后的奇偶校验块校验获取的拆分后的原始数据之间的数据关系,使用获取的拆分后的原始数据还原出分片视频文件,或者获取到的全部为拆分后的奇偶校验块,通过获取的奇偶校验块就可以还原出分片视频文件。
比如,针对本申请的分片视频文件,通过纠删码将原始数据(分片视频文件)生成相应的奇偶校验块;接下来将原始数据(分片视频文件)和奇偶校验块进行拆分,最后将拆分后的原始数据(假设将分片视频文件拆分为N/2个数据块)和奇偶校验块(假设将奇偶校验块拆分为N/2个)分别写入不同节点中的存储介质中,存储介质比如(比如磁盘,存储节点或其它的地理位置(其它的地理位置比如在远端,不在MinIO所在服务器上,通过 NFS等方式存储数据)。
针对MinIO集群,可选取16个节点,以5,6,5的方式分布在A,B,C三个机房中,每个节点上使用EC纠删码模式(Erasure Code,纠删码运行MinIO服务。这就意味着当集群是16个节点时,一个原始数据和其相应的就校验块可一共拆分为16块,比如各自拆分为8个,那么可以最多丢失任意8个节点内的数据(不管其是存放的是拆分后的数据块还是拆分后的校验块),仍可以通过剩下的节点中的数据运用复杂的矩阵算法进行恢复。因此任意一个机房故障,都不会造成数据丢失,有效保证了数据的高可用。
应用程序(这里指分片,转码,合成三个程序)采用HTTP/HTTPS通信协议,使用MinIO提供的各种API接口对存储数据进行操作,例如makeBucket,removeBucket,getObject,putObject等操作,通过这些操作可以在SDK里面调用API数据。
视频通过分布式对象存储的方式的具体流为:
1.分片单元分片程序的分片单元根据视频源的大小,将视频源分割成相同T时间段的视频分片(带有序号0,1,…),通过putObject方法将视频分片上传至MinIO集群(存储单元)。单集群可以提供PB级存储容量,同时提供统一的域名访问,相当于提供了负载均衡功能,流量均衡分配在每个Node上,以防流量集中在某个Node上而造成的流量拥塞从而影响读取速度,大幅提升了视频文件读写速度。待分片文件全部上传完成后,向转码程序发送该视频源的视频分片结束信号以通知转码程序开始转码。其中视频分片文件的命名方式带有该视频源的唯一标识及分片序号;其中转码前和转码后的视频分片的唯一标识前面带有对应前缀,同时会有一个调度单元在管理这些视频的分片、转码、合成调度。
2.转码程序的转码单元收到该视频源的视频分片结束信号后,通过getObject方法从 MinIO集群中下载该视频源的视频分片开始转码,转码完成后,将转码后的视频分片文件上传至MinIO集群,全部转码后的视频分片转码上传完成后,向合成程序发送该视频源的视频分片转码结束信号。
3.转码程序的合成单元收到该视频源的视频分片转码结束信号后,根据视频分片的唯一标识名称从MinIO集群中下载该视频源的所有视频分片进行合成,最终可会成为多种格式的视频提供给不同的用户。
4.清理单元MinIO集群在上述三个步骤执行的同时,可单独在本地启动删除数据进程 (清理单元),通过在服务器上通过运行相关程序进行删除,不需要使用deleteAPI接口通过网络访问存储集群来删除数据,因此会减少网络消耗时间,快速清理数据。删除数据时,删除数据进程首先会查找Bucket中修改时间大于value值的对象数据(也就是当修改时间与当前时间的差值大于预设值),并记录下来,然后对其进行快速删除,比如,删除的可为几天前或者多少分钟之前的数据。其value值支持不同的删除维度,如:可以采用 d(days),h(hours),m(minutes)来定义数据的时效性,对时效性较短的数据而言,以分钟为维度进行删除,能极大减少存储空间。
另外,应用程序同MinIO集群部署在同一个内网环境中,也可复用(就是应用程序同 MinIO可同时部署在一台服务器上,应用程序能够使用MinIO存储集群的资源,如服务器,网络等),因此应用程序能够快速访问存储集群,进行数据交互,且在数据存储时效(以分钟计算)较短时,可立即删除,节省存储空间。
采用基于分布式对象存储的视频转码系统的结构示意图如图4所示。
本申请取得了如下有益技术效果:
1.数据保护,高可用性。使用分布式对象存储结构将MinIO集群中的N个节点分布在多个机房,并通过纠删码方式运行各节点服务,任意N/2个节点故障,都能够进行数据恢复,不用担心因硬件故障导致数据丢失或损坏的情况,有效保证数据的高可用性。极大的提升了转码效率及稳定性。避免了采用本地磁盘存储方式,因视频分片全部存储在本地磁盘上,数据不易共享,一旦磁盘故障,数据就会丢失从而导致视频处理失败,最终影响视频播放情况的发生。
2.支持不同维度的数据快速清理策略,极大的提升存储效率。根据不同的数据缓存时间的要求,合理调整以days,hours,minutes为维度进行清理,及时释放存储空间,提升资源利用效率,并通过独立的进程,直接对MinIO集群进行本地删除数据操作,减少网络消耗时间,达到快速清理的目的。
3.MinIO存储对开发友好,易于程序移植。MinIO对象存储兼容Amazon S3接口,提供基于多种语言的API接口、SDK,开发人员只需替换存储域名及对应的Access_key与Secret_key值即可将数据存储至MinIO,不需要因考虑代码的兼容性从而进行代码重构等操作。
4.将应用程序同MinIO部署在同一局域网中,仅通过内网进行数据的存取操作,有效保证了其访问速度,大幅提升了文件存储效率,降低了公网带宽消耗,同时还提升了数据的安全性。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM 存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于分布式对象存储的视频转码系统,其特征在于,包括:分布式对象存储单元和视频处理单元,所述视频处理单元包括视频转码模块和视频合成模块,其中:
分布式对象存储单元:用于接收视频文件被分片后的分片视频文件,并将分片视频文件通过纠删码方式存储在N个节点中;所述纠删码方式为一种设定的矩阵算法;以及,
在接收到视频转码模块获取所述分片视频文件时,通过纠删码方式还原分片视频文件,并将分片视频文件传输到视频转码模块;以及,
接收经视频转码模块转码后的分片视频文件,并将每个转码后的分片视频文件通过纠删码方式存储在N个节点中;以及,
在接收到视频合成模块获取所述转码后的分片视频文件时,通过纠删码方式还原转码后的分片视频文件,并将转码后的分片视频文件传输到视频合成模块;
视频转码模块:设置于视频处理单元内,用于自分布式对象存储单元获取分片视频文件,将分片视频文件转码,并将转码后的分片视频文件上传到分布式对象存储单元;
视频合成模块:设置于视频处理单元内,用于自分布式对象存储单元获取转码后的分片视频文件,将转码后的分片视频文件合成完整的视频文件;
在分布式对象存储单元中,
将分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个分片视频文件生成其相应的奇偶校验块,将每个分片视频文件拆分成多个第一级数据块,以及将每个分片视频文件的奇偶校验块拆分成多个第一级奇偶校验块,所述第一级数据块和第一级奇偶校验块的总数为N;并将第一级数据块和第一级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原分片视频文件具体包括:从第一级数据块和第一级奇偶校验块中获取任意至少N/2个块,通过获取的第一级奇偶校验块校验获取的第一级数据块之间的数据关系,使用获取的第一级数据块还原出分片视频文件;
以及,
将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个转码后的分片视频文件生成其相应的奇偶校验块,将每个转码后的分片视频文件拆分成多个第二级数据块,将每个转码后的分片视频文件的奇偶校验块拆分为多个第二级奇偶校验块,所述第二级数据块和所述第二级奇偶校验块的总数为N;并将第二级数据块和第二级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原转码后的分片视频文件具体包括:从第二级数据块和第二级奇偶校验块中获取任意至少N/2个块,通过获取的第二级奇偶校验块校验获取的第二级数据块之间的数据关系,使用获取的第二级数据块还原出转码后的分片视频文件。
2.根据权利要求1所述的基于分布式对象存储的视频转码系统,其特征在于,
所述分布式对象存储单元设有SDK接口,通过SDK接口连接所述视频处理单元,所述视频处理单元通过SDK接口的putObject调用方法上传分片视频文件和转码后的分片视频文件到分布式对象存储单元;以及,通过SDK接口的getObject调用方法获取分布式对象存储单元内的通过纠删码方式还原的分片视频文件和通过纠删码方式还原的转码后的分片视频文件。
3.根据权利要求1所述的基于分布式对象存储的视频转码系统,其特征在于,还包括删除单元:
用于检测分布式对象存储单元内的分片视频文件的修改时间或转码后的分片视频文件的修改时间,当修改时间与当前时间的差值大于预设值时将对应的分片视频文件或转码后的分片视频文件删除,所述预设值的单位包括分钟、小时、天中的一种或者多种。
4.根据权利要求1所述的基于分布式对象存储的视频转码系统,其特征在于,
所述分布式对象存储单元和所述视频处理单元处于同一内网,和/或,所述分布式对象存储单元和所述视频处理单元共用相同的服务器。
5.一种基于分布式对象存储的视频转码方法,其特征在于,包括:
将视频文件分片生成多个分片视频文件,并将多个分片视频文件以分布式对象存储的方式进行存储;将分片视频文件以分布式对象存储的方式进行存储具体包括:将每个分片视频文件通过纠删码方式存储在N个节点中,所述纠删码方式为一种设定的矩阵算法,以及,通过纠删码方式还原分片视频文件;
获取通过纠删码方式还原的分片视频文件,将所述分片视频文件进行转码生成转码的分片视频文件,并将转码的分片视频文件以分布式对象存储的方式进行存储;将转码的分片视频文件以分布式对象存储的方式进行存储具体包括:将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,以及,通过纠删码方式还原转码后的分片视频文件;
获取通过纠删码方式还原的转码后的分片视频文件,将所述转码后的分片视频文件合成完整的视频文件;
将每个分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个分片视频文件生成其相应的奇偶校验块,将每个分片视频文件拆分成多个第一级数据块,以及将每个分片视频文件的奇偶校验块拆分成多个第一级奇偶校验块,所述第一级数据块和第一级奇偶校验块的总数为N;并将第一级数据块和第一级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原分片视频文件具体包括:从第一级数据块和第一级奇偶校验块中获取任意至少N/2个块,通过获取的第一级奇偶校验块校验获取的第一级数据块之间的数据关系,使用获取的第一级数据块还原出分片视频文件;
以及,
将每个转码后的分片视频文件通过纠删码方式存储在N个节点中,具体包括:根据每个转码后的分片视频文件生成其相应的奇偶校验块,将每个转码后的分片视频文件拆分成多个第二级数据块,将每个转码后的分片视频文件的奇偶校验块拆分为多个第二级奇偶校验块,所述第二级数据块和所述第二级奇偶校验块的总数为N;并将第二级数据块和第二级奇偶校验块随机保存到集群的N个节点的每个节点中;
通过纠删码方式还原转码后的分片视频文件具体包括:从第二级数据块和第二级奇偶校验块中获取任意至少N/2个块,通过获取的第二级奇偶校验块校验获取的第二级数据块之间的数据关系,使用获取的第二级数据块还原出转码后的分片视频文件。
6.根据权利要求5所述的基于分布式对象存储的视频转码方法,其特征在于,还包括:
通过putObject调用方法上传分片视频文件,以对分片视频文件以分布式对象存储的方式进行存储;以及,通过putObject调用方法上传转码后的分片视频文件,以对转码后的分片视频文件以分布式对象存储的方式进行存储;
通过getObject调用方法获取通过纠删码方式还原的分片视频文件和通过纠删码方式还原的转码后的分片视频文件。
7.根据权利要求5所述的基于分布式对象存储的视频转码方法,其特征在于,还包括:
检测分片视频文件的修改时间或转码后的分片视频文件的修改时间,当修改时间与当前时间的差值大于预设值时,将对应的分片视频文件或转码后的分片视频文件删除,所述预设值的单位包括分钟、小时、天中的一种或者多种。
8.根据权利要求5所述的基于分布式对象存储的视频转码方法,其特征在于,还包括:
将视频文件分片形成分片视频文件、将分片视频文件转码形成转码分片视频文件、将转码分片视频文件合成完整的视频文件,均与分片视频文件以分布式对象存储共用一内网,和/或,将视频文件分片形成分片视频文件、将分片视频文件转码形成转码分片视频文件、将转码分片视频文件合成完整的视频文件,均与分片视频文件以分布式对象存储共用相同的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911354094.1A CN111147869B (zh) | 2019-12-25 | 2019-12-25 | 一种基于分布式对象存储的视频转码系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911354094.1A CN111147869B (zh) | 2019-12-25 | 2019-12-25 | 一种基于分布式对象存储的视频转码系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147869A CN111147869A (zh) | 2020-05-12 |
CN111147869B true CN111147869B (zh) | 2022-02-08 |
Family
ID=70519853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911354094.1A Active CN111147869B (zh) | 2019-12-25 | 2019-12-25 | 一种基于分布式对象存储的视频转码系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147869B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112104726A (zh) * | 2020-09-09 | 2020-12-18 | 上海微亿智造科技有限公司 | 一种工业物联网对象存储实时监测系统 |
CN114630177A (zh) * | 2022-03-25 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 一种视频转码方法及其相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200204A (zh) * | 2012-01-04 | 2013-07-10 | 中兴通讯股份有限公司 | 基于云存储的分布式转码系统及其方法 |
CN108989885A (zh) * | 2017-06-05 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 视频文件转码系统、分割方法、转码方法及装置 |
CN110175212A (zh) * | 2019-05-22 | 2019-08-27 | 杭州复杂美科技有限公司 | 区块链分布式存储方法、数据读取方法、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149847B2 (en) * | 2003-06-26 | 2006-12-12 | Adaptec, Inc. | RAID 6 disk array architectures |
US7114055B1 (en) * | 2003-09-29 | 2006-09-26 | Xilinx, Inc. | Reduced instruction set computer architecture with duplication of bit values from an immediate field of an instruction multiple times in a data word |
CN107844272A (zh) * | 2017-10-31 | 2018-03-27 | 成都信息工程大学 | 一种提高纠错能力的交叉分组编译码方法 |
-
2019
- 2019-12-25 CN CN201911354094.1A patent/CN111147869B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200204A (zh) * | 2012-01-04 | 2013-07-10 | 中兴通讯股份有限公司 | 基于云存储的分布式转码系统及其方法 |
CN108989885A (zh) * | 2017-06-05 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 视频文件转码系统、分割方法、转码方法及装置 |
CN110175212A (zh) * | 2019-05-22 | 2019-08-27 | 杭州复杂美科技有限公司 | 区块链分布式存储方法、数据读取方法、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Erasure Code原理;HeyManLeader;《https://blog.csdn.net/sinat_27186785/article/details/52034588》;20160726;第2-6页 * |
自动删除旧文件;yang_njupt;《https://blog.csdn.net/ycdhqzhiai/article/details/80840672》;20180628;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111147869A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101896048B1 (ko) | 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송 | |
US9094428B2 (en) | Distributing multi-media content to a plurality of potential accessing devices | |
US9104719B2 (en) | Storing data and metadata in a distributed storage network | |
US8838968B2 (en) | System and method for virtual machine data protection in a public cloud | |
CN105095364A (zh) | 一种数据同步系统和方法 | |
CN111147869B (zh) | 一种基于分布式对象存储的视频转码系统及方法 | |
US10268374B2 (en) | Redundant array of independent discs and dispersed storage network system re-director | |
CN104572966A (zh) | 一种压缩文件的解压方法和装置 | |
BRPI0710236A2 (pt) | método e aparelho para a reconstrução de mìdia, produto de programa de computador, aparelho para criar uma representação de mìdia, objeto de dados de ponto de acesso randÈmico, e, representação e documento ou recipiente de mìdia | |
CN104735463A (zh) | 流媒体传输方法及系统 | |
CN101216794A (zh) | 改进的Server-Less备份方法、存储设备及备份服务器 | |
CN112486918B (zh) | 文件处理方法、装置、设备及介质 | |
CN113535068A (zh) | 数据读取方法和系统 | |
CN115080515A (zh) | 基于区块链的系统文件共享方法及系统 | |
US20170039259A1 (en) | Method and Apparatus for Implementing Storage of File in IP Disk | |
US10802914B2 (en) | Method of using common storage of parity data for unique copy recording | |
CN113873288A (zh) | 在直播过程中生成回放的方法和装置 | |
CN106919574B (zh) | 一种实时处理远程同步文件的方法 | |
US20140149370A1 (en) | System for analyzing access path to access target file in image and method thereof | |
CN109151016B (zh) | 流量转发方法和装置、服务系统、计算设备及存储介质 | |
KR101272876B1 (ko) | 미디어 스트리밍 서버와 이 서버의 미디어 데이터 관리 방법 | |
KR20200101594A (ko) | 분산 파일 시스템에서 클라이언트 기반의 실시간 데이터 복구에 기반한 디코딩 처리 방법 및 이를 위한 장치 | |
KR100991561B1 (ko) | 순환 중복 체크 패턴을 이용하는 파일 공유 서비스에서의 파일 필터링 방법 및 장치 | |
KR20190085743A (ko) | 계층적 소거 코딩을 이용한 분산 파일시스템의 장애 복구 방법 및 이를 위한 장치 | |
WO2017039538A1 (en) | Systems and methods for unified storage services |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230426 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Patentee after: Sina Technology (China) Co.,Ltd. Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Patentee before: Sina.com Technology (China) Co.,Ltd. |
|
TR01 | Transfer of patent right |