CN111093095A - 基于spark平台的视频转码方法及*** - Google Patents
基于spark平台的视频转码方法及*** Download PDFInfo
- Publication number
- CN111093095A CN111093095A CN201911296815.8A CN201911296815A CN111093095A CN 111093095 A CN111093095 A CN 111093095A CN 201911296815 A CN201911296815 A CN 201911296815A CN 111093095 A CN111093095 A CN 111093095A
- Authority
- CN
- China
- Prior art keywords
- video
- file
- transcoding
- spark
- webserver
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000011218 segmentation Effects 0.000 claims abstract description 8
- 230000002085 persistent effect Effects 0.000 claims description 10
- 238000002474 experimental method Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000278713 Theora Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000012545 processing 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/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
- H04N21/234309—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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- 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)
- Television Signal Processing For Recording (AREA)
Abstract
本发明涉及视频转码技术领域,具体是一种基于spark平台的视频转码方法及***。其中,方法包括:用户使用客户端通过http请求到WebServer,然后WebServer接收视频文件及获取文件格式大小等信息;WebServer将视频文件提交到视频分割节点,视频分割节点对视频文件进行分割成独立可以播放的视频文件,分割完成提交到hdfs进行分布式保存;spark集群对分布式文件进行分布式转码;转码完成后,向mysql数据库***一条记录源文件的路径、名称、格式、目标文件的名称、路径,然后webserver将记录返回给用户;用户从文件***下载转码后的目标文件。本发明的基于spark平台的视频转码方法及***具有节约转码时间及转码速率快的优点。
Description
技术领域
本发明涉及视频转码技术领域,具体是一种基于spark平台的视频转码方法及***。
背景技术
随着移动互联网的飞速发展,基于HTML5的视频对推动民族文化传播有着重要的推动作用。基于HTML5的视频只支持Theora、H.264、MPEG4视频编码,但是目前已有的民族文化的视频格式多种多样,就需要对视频文件进行快速转换以适HTML5视频标签。
随着视频网站的兴起,移动终端上的视频传输与交互得到了广泛的应用,但是由于网络环境、视频编码的不同,要适应移动终端的环境要求,需要进行专门的视频转码,视频转码传统的做法是使用单一的服务器,如果转码的视频文件内容比较大,会导致服务器耗费很长时间;视频转码是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络宽带、不同的终端处理能力和不同的用户需求。随着高清视频的发展,视频文件的也从几百MB上升到几十G,为了适配移动终端设备,对视频文件的存储和转码服务器提出了更高的要求。
现有技术中的转码模式有以下四种:其一是使用单一的转码服务器对视频进行转码工作。将视频传输至转码服务器,转码服务器转码, 返回转码后的视频。这种方法的优点是实现起来较简单,缺点是转码服务器的性能限制转码时间,不能承受高并发的转码任务。其二是采用多台转码机器同时对视频文件进行转码。将视频在片源分段,将每段传输到对应的转码机器上,转码完成后将各段合并成一个视频文件, 返回该视频。这种方法的优点是并行转码,时间成本低,可以应对并发转码任务,但也存在实现复杂,需要考虑分段同步以及断后合并的缺点。其三是使用云的存储和计算能力对视频文件进行转码。例如 Grio使用Amazon的S3(Simple Storage Service)服务器对视频文件进行存储,利用EC2( ElasticCompute Cloud)对视频文件进行转码。其中,EC2的一个实例(Instance)负责一个视频文件的转码任务。其四是基于分布式***Hadoop平台进行转码,利用Hadoop平台的HDFS进行存储和利用MapReduce思想和FFMPEG的视频转码。
发明内容
针对上述现有技术中的不足之处,本发明旨在提供一种节约转码时间及转码速率快的基于spark平台的视频转码方法及***。
为解决上述技术问题,本发明的基于spark平台的视频转码方法,包括以下步骤:
(1)用户使用客户端通过http请求到WebServer,然后WebServer接收视频文件及获取文件格式大小等信息;
(2)WebServer将视频文件提交到视频分割节点,视频分割节点对视频文件进行分割成独立可以播放的视频文件,分割完成提交到hdfs进行分布式保存;
(3)spark集群对分布式文件进行分布式转码;
(4)转码完成后,向mysql数据库***一条记录源文件的路径、名称、格式、目标文件的名称、路径,然后webserver将记录返回给用户;
(5)用户从文件***下载转码后的目标文件。
优选的,所述步骤(1)中的文件格式包括mp4、flv和rmvb。
优选的,所述步骤(2)中视频分割为首先利用ffmpeg对视频进行无损分割,分割的文件大小参照hdfs块大小。
一种基于spark平台的视频转码***,包括:Spark集群,用于对对分布式文件进行分布式转码;
mysql数据库,用于储存记录源文件的路径、名称、格式、目标文件的名称、路径;
WebServer,用于负责接收用户请求,将用户上传的文件存储到文件***,调用Spark集群进行视频的转换和存储。
优选的,还包括客户端,用于客户输入请求;
资源管理器,用于管理数据库、持续消息队列或事务性文件***中的持久性或持续性数据。
本发明基于spark平台的视频转码方法及***具有以下优点:1、task启动时间比较快,Spark是fork出线程;而MR是启动一个新的进程;2、更快的shuffles,Spark只有在shuffle的时候才会将数据放在磁盘,而MapReduce却不是。3、更快的工作流:典型的MapReduce工作流是由很多MapReduce作业组成的,他们之间的数据交互需要把数据持久化到磁盘才可以;而Spark支持DAG以及pipelining。4、本发明的具有节约转码时间及转码速率快的优点。
附图说明
图1为本发明的视频转码***结构示意图;
图2为使用spark记性视频转码业务逻辑的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
如图1所示,本发明的基于spark平台的视频转码方法,包括以下步骤:
(1)用户使用客户端4通过http请求到WebServer3,然后WebServer3接收视频文件及获取文件格式大小等信息;
(2)WebServer3将视频文件提交到视频分割节点,视频分割节点对视频文件进行分割成独立可以播放的视频文件,分割完成提交到hdfs进行分布式保存;
(3)spark集群对分布式文件进行分布式转码;
(4)转码完成后,向mysql数据库2***一条记录源文件的路径、名称、格式、目标文件的名称、路径,然后webserver3将记录返回给用户;
(5)用户从文件***下载转码后的目标文件。
进一步的,所述步骤(1)中的文件格式包括mp4、flv和rmvb。
进一步的,所述步骤(2)中视频分割为首先利用ffmpeg对视频进行无损分割,分割的文件大小参照hdfs块大小。
一种基于spark平台的视频转码***,包括:Spark集群,用于对对分布式文件进行分布式转码;
mysql数据库2,用于储存记录源文件的路径、名称、格式、目标文件的名称、路径;
WebServer3,用于负责接收用户请求,将用户上传的文件存储到文件***,调用Spark集群进行视频的转换和存储。
更进一步的,还包括客户端4,用于客户输入请求;
资源管理器5,用于管理数据库、持续消息队列或事务性文件***中的持久性或持续性数据。
基于Spark方案相比与MapReduce编程模型,Spark提供了更加灵活的DAG(Directed Acyclic Graph)变成模型,不仅包含了传统的map、reduce接口,还增加了filter、flatMap、union等操作接口,使得spark在实现视频转码更加灵活方便。使用spark记性视频转码业务逻辑如图2所示,通过spark的DAG编程模型可以把11个MapReduce简化为一个Spark作业,Spark把视频转码切分为3个Stage,每个Stage包含多个可并行执行的Tasks。Stage之间的数据通过Shuffle传递。最终只需要读取和写入HDFS一次。减少了9次HDFS读写,读写HDFS减少了80%。Spark作业启动后向yarn申请所需的Executor资源,所有Stage以线程的方式运行,共用Executors,相对于MapReduce方式,Spark申请资源的次数减少了近90%。由于进行视频转码使用RDD(Resilient Distributed Dataset)模型,中间数据都以RDD的形式存储,而RDD分布式存储于slave节点内容,减少了计算过程中读写磁盘的次数。
为了使更直观的表现本发明的优点,特做了以下实验:实验环境是在一台6核CPU、64GB内存、6TB硬盘、通过虚拟化软件VMware vSphere在服务器上建立了5台虚拟机进行试验,虚拟机统一配置为:4核CPU,8GB内存,500GB硬盘,CentOS 6 64位操作******。虚拟机角色如表1所示:
表1 节点角色
IP地址 | 节点角色 |
192.168.2.170 | Namenode , resourcemanager,Master |
192.168.2.171 | Namenode,Datanode,resourcemanager,NodeManager,worker |
192.168.2.172 | Datanode, NodeManager,worker |
192.168.2.173 | Datanode, NodeManager,worker |
192.168.2.174 | Datanode, NodeManager,worker |
实验使用的数据为3.02GB的mov格式的数据,分段大小与分段数量:
分段大小/MB | 分段数量 |
64 | 48 |
128 | 24 |
256 | 12 |
转码前后视频参数:
视频类型 | 视频大小 | 视频格式编码 | 比特率 | 分辨率 |
输入视频 | 3.02GB | mov | 6972 | 2560*1600 |
输出视频 | 476MB | MPEG-4 | 782 | 1280*720 |
实验结果
在单节点使用ffmpeg工具对视频进行转码总共耗时2280s,在4台ApplicationMaster的节点上,分段大小为64MB时,使用MapReduce耗时为1600s,基于spark平台的4个worker、分段大小为64MB时,耗时为1200s,明显的比使用mapreduce分布式转码耗时少,使用分段大小为128MB时,spark的耗时最少,使用分段大小为256MB的分段比128MB耗时要多,但是仍然比使用MapReduce耗时要少。试验结果表明Spark比MapReduce运行速度快,由此可以看出本发明具有节约转码时间及转码速率快的优点。
在使用spark平台进行转码时的分段128MB比256MB的使用时间要少的主要原因是:数据量达到一定程度,作业同一时刻需要加载进内存的数据只是整体数据的一个子集,过程中还是要对磁盘进行读写,对磁盘读写需要耗费一定时间。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
Claims (5)
1.一种基于spark平台的视频转码方法,其特征在于,包括以下步骤:
(1)用户使用客户端(4)通过http请求到WebServer(3),然后WebServer(3)接收视频文件及获取文件格式大小等信息;
(2)WebServer(3)将视频文件提交到视频分割节点,视频分割节点对视频文件进行分割成独立可以播放的视频文件,分割完成提交到hdfs进行分布式保存;
(3)spark集群对分布式文件进行分布式转码;
(4)转码完成后,向mysql数据库(2)***一条记录源文件的路径、名称、格式、目标文件的名称、路径,然后webserver(3)将记录返回给用户;
(5)用户从文件***下载转码后的目标文件。
2.根据权利要求1所述的基于spark平台的视频转码方法,其特征在于:所述步骤(1)中的文件格式包括mp4、flv和rmvb。
3.根据权利要求1所述的基于spark平台的视频转码方法,其特征在于:所述步骤(2)中视频分割为首先利用ffmpeg对视频进行无损分割,分割的文件大小参照hdfs块大小。
4.一种基于spark平台的视频转码***,其特征在于,包括:Spark集群,用于对对分布式文件进行分布式转码;
mysql数据库(2),用于储存记录源文件的路径、名称、格式、目标文件的名称、路径;
WebServer(3),用于负责接收用户请求,将用户上传的文件存储到文件***,调用Spark集群进行视频的转换和存储。
5.根据权利要求4所述的基于spark平台的视频转码***,其特征在于:还包括客户端(4),用于客户输入请求;
资源管理器(5),用于管理数据库、持续消息队列或事务性文件***中的持久性或持续性数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911296815.8A CN111093095A (zh) | 2019-12-16 | 2019-12-16 | 基于spark平台的视频转码方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911296815.8A CN111093095A (zh) | 2019-12-16 | 2019-12-16 | 基于spark平台的视频转码方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111093095A true CN111093095A (zh) | 2020-05-01 |
Family
ID=70395823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911296815.8A Pending CN111093095A (zh) | 2019-12-16 | 2019-12-16 | 基于spark平台的视频转码方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111093095A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002514A (zh) * | 2022-05-27 | 2022-09-02 | 浙江大学 | 基于云原生控制器的spark视频转码***及视频转码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012044306A (ja) * | 2010-08-16 | 2012-03-01 | Skill Up Japan Corp | 分散トランスコーディングシステム並びに方法、及びトランスコーディング装置 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和*** |
CN104159127A (zh) * | 2014-08-21 | 2014-11-19 | 北京奇艺世纪科技有限公司 | 一种视频转码方法、装置及*** |
CN108810545A (zh) * | 2018-07-04 | 2018-11-13 | 中南大学 | 用于视频编码的方法、装置、计算机可读介质及电子设备 |
-
2019
- 2019-12-16 CN CN201911296815.8A patent/CN111093095A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012044306A (ja) * | 2010-08-16 | 2012-03-01 | Skill Up Japan Corp | 分散トランスコーディングシステム並びに方法、及びトランスコーディング装置 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和*** |
CN104159127A (zh) * | 2014-08-21 | 2014-11-19 | 北京奇艺世纪科技有限公司 | 一种视频转码方法、装置及*** |
CN108810545A (zh) * | 2018-07-04 | 2018-11-13 | 中南大学 | 用于视频编码的方法、装置、计算机可读介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
包迅格: "《基于Spark的流媒体云转码技术研究与应用》" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002514A (zh) * | 2022-05-27 | 2022-09-02 | 浙江大学 | 基于云原生控制器的spark视频转码***及视频转码方法 |
CN115002514B (zh) * | 2022-05-27 | 2023-07-21 | 浙江大学 | 基于云原生控制器的spark视频转码***及视频转码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10390055B1 (en) | Video file processing | |
US10291673B2 (en) | Transcoding method and system, and distributed file apparatus | |
CN104537076B (zh) | 一种文件读写方法及装置 | |
US20160077863A1 (en) | Reliable and scalable image transfer for data centers with low connectivity using redundancy detection | |
US11226930B2 (en) | Distributed file system with integrated file object conversion | |
US11880280B2 (en) | Variable number and size of put operations for storage backup | |
US10628070B2 (en) | Selecting and compressing target files to obtain additional free data storage space to perform an operation in a virtual machine | |
US20170344539A1 (en) | System and method for improved scalability of database exports | |
US10346074B2 (en) | Method of compressing parity data upon writing | |
JP2022159405A (ja) | データのアペンド方法、装置、電子機器、記憶媒体およびコンピュータプログラム | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
US8140485B2 (en) | Data recovery using a minimum number of recovery streams | |
CN111093095A (zh) | 基于spark平台的视频转码方法及*** | |
CN104410868A (zh) | 一种共享文件***多文件快速聚合和读取的方法 | |
Schmidt et al. | An approach for processing large and non-uniform media objects on mapreduce-based clusters | |
CN112953944A (zh) | 基于MapReduce的影音转码方法 | |
US20170109367A1 (en) | Early compression related processing with offline compression | |
US10579265B2 (en) | Cloud-synchronized local storage management | |
US20140380089A1 (en) | Method and apparatus for recovering failed disk in virtual machine | |
CN113411661B (zh) | 用于记录信息的方法、装置、设备、存储介质及程序产品 | |
KR20160145250A (ko) | 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법 | |
US11095745B1 (en) | Cloud-based scheduling of data operations to an object storage using an operation pool | |
Liu et al. | Spark platform based video transcoding | |
US10063256B1 (en) | Writing copies of objects in enterprise object storage systems | |
US20190045004A1 (en) | Capturing data in data transfer appliance for transfer to a cloud-computing platform |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200501 |
|
WD01 | Invention patent application deemed withdrawn after publication |