论文部分内容阅读
随着手机、平板等移动智能设备的普遍使用,拍摄视频已经变得非常简单,加之无线网络覆盖范围越来越广以及视频服务平台的增多,观看视频、分享视频已成为人们日常生活中重要的娱乐活动,加上监控设备的普遍应用,每天会有大量的视频数据产生。满足在不同网络环境中传输或持不同终端设备播放视频的需求,往往需要对这些视频文件进行转码。传统的视频转码是集中式的,其储存能力和计算能力十分有限,且不能随着数据量的增大而动态增加,因此不适合对大量的视频数据进行处理。本文设计和实现了一个支持对大规模视频进行转码的分布式转码系统。本文首先详细介绍了Hadoop云平台的两个核心组成:分布式文件系统HDFS和MapReduce编程框架。重点讲解了HDFS的设计思想和读写过程,以及MapReduce的实现原理和运行过程,并简单分析了几个Hadoop常用的调度器。接着介绍了视频压缩和转码等视频处理的相关知识。在深入了解视频转码和Hadoop云平台的基础上,设计了一个支持大规模视频转码的分布式转码系统,给出了系统的组成,包括四个功能模块,服务模块,管理模块,转码模块,储存模块,然后对每个功能模块的设计和实现做了详细的说明。最后,本文利用Hadoop的HDFS进行视频储存,用MapReduce框架进行并行处理,并利用多媒体库Xuggler的视频处理功能,实现了系统的分布式视频转码功能。系统主要有Hadoop集群构成,可由普通的PC机搭建而成,其储存和计算的能力可以随着节点的增加而增加,动态适应日益增长的大规模视频数据的转码需求。文章最后先对系统做了初步的功能性测试,接着用几组不同大小的数据集测试了分布式转码系统的性能,重点测试和分析了系统总的转码时间。测试结果表明:系统在对大规模视频数据进行转码时,表现出良好的并行性,且随着Hadoop集群规模的扩大,大大地降低了系统总的转码时间。最后分析测试了几个HDFS的配置选项对系统转码性能的影响,当HDFS的block大小接近大部分视频本身大小,且block副本数为3的时候,系统获得更好的转码时间性能。