APP下载

教育视频点播系统视频格式转换技术的研究*

2014-07-31吴凡代毅高冠南

中国教育信息化·基础教育 2014年5期

吴凡+代毅+高冠南

摘 要:随着Internet的普及,用户原创内容逐渐受到人们的重视,对教育视频点播系统提出了新的要求,即为教育者和受教育者提供视频上传功能。然而当前视频种类繁多,数字化处理后的视频数据量非常大,如何有效压缩视频数据和音频数据并将其存储为适当的格式成为服务器端亟待解决的问题。FFmpeg及MEncoder两种开源、跨平台的视频压缩处理命令行程序,已成为目前最流行的视频压缩和处理软件核心。文章在测试二者差异性基础上,结合二者优点及视频编码信息,设计服务器端视频转码模块,为开发者提供服务器端统一视频文件格式技术解决方案。

关键词:教育视频点播系统;视频转码;FFmpeg;MEncoder

中图分类号:G431 文献标志码:B 文章编号:1673-8454(2014)10-0067-04

一、引言

计算机网络技术逐渐成熟及多媒体应用日益普及的同时,视频点播(VOD)系统开始兴起并逐渐成为人们获取网络信息的重要手段,其在远程教育中的应用已成为开展远程教育的一个重要方面。[1]视频点播系统以视听、交互及根据用户需求提供服务为特征应用于教育,不仅为受教育者提供实时同步的音、视频等多种多媒体信息。同时,在一定程度上实现了按需教育,打破了传统教育手段时间和空间上的局限,使受教育者可以根据自己的需求,自主选择和获取自己感兴趣的各种多媒体信息。[2]

教育视频点播(EVOD)系统,即应用于教育的视频点播系统,其结构和数据传输方式与普通视频点播系统相同,所不同的是视频资料主要面向学生自主学习、学生课外知识拓展、教师课堂教学及教师专业发展等方面,一般要求具有科学性和教育性。[3]由此可见,教育视频点播系统的发展很大程度上依赖于视频点播技术的进步。Web 2.0的迅猛发展,移动网接入速度的提高,及终端处理能力的逐步增强,在推动视频点播系统面向用户参与、主导及建设的同时,对教育视频点播系统也提出了新的要求。

二、教育视频点播系统面临的挑战

互联网的普及,催生了用户原创内容(UGC)的概念,即用户将自己原创的内容通过互联网平台分享给其他用户。这表明用户使用互联网的方式已由以下载为主转变为下载与上传并重。YouTube、MySpace、优酷等主流视频点播网站,都已支持原创视频的上传与分享功能。UGC在视频点播系统的成功应用,对教育视频点播系统提出了新的要求,即为教育者和受教育者提供视频上传功能,系统自动分享与维护,以方便教育资源传播的便易性和快捷性,加强师生、生生之间的交流,进一步提高学生的学习效果及教师队伍的教学水平。

目前教育视频点播系统面向开放的同时,也面临视频编码信息(格式、分辨率、编解码器等)多元化而带来的众多视频标准及大量不同格式的视频信息交织在一起的混乱局面。[4]限定上载视频格式虽然能够解决此类问题,却增加了使用者的负担。如何将庞大的视频数据和音频数据进行有效压缩并以适当格式存储已成为教育视频点播系统一个非常重要的问题。统一视频文件格式,不仅有利于浏览器的兼容播放,降低受教育者使用成本,增强界面友好性,便于网站服务器端的管理,而且视频素材易于应用到教学中,具有重要的意义。[5]针对这一问题,笔者主要对服务器端的两种视频格式转换技术FFmpeg和MEncoder进行研究,为教育视频点播系统开发者提供服务器端统一视频文件格式技术解决方案。

三、视频格式转换技术

当前最流行的视频压缩和处理软件核心为FFmpeg和MEncoder两种。两者都是开源、跨平台的视频压缩处理命令行程序,而且很多FFmpeg的开发者同时也是Mplayer的开发者,所以两者联系紧密。此外,FFmpeg和MEncoder也被广泛应用于大多数的视频播放软件,例如暴风影音播放器利用了FFmpeg,Mplayer播放器利用了MEncoder。

1.FFmpeg

FFmpeg是如今应用非常广泛的开源免费项目,提供对音视频进行录制、转换及编解码功能为一体的完整解决方案。它包含了目前领先的音视频编解码库libavcodec,并对libavcodec库中的很多codec重新开发,以保证质量和性能。FFmpeg基于Linux平台开发,但同样可以在Windows等主流操作系统中编译运行,很多优秀的播放器如暴风影音、TCPMP、VLC都采用FFmpeg解码器。

(1)FFmpeg的使用

FFmpeg的基本语法为:ffmpeg [inputfile_options] -i inputfile [outputfile_options] outputfile,其中inputfile_options为源文件格式选项,-i为读取源文件命令,inputfile为带有完全路径的源视频文件名(可以为硬盘中的文件、网络流、设备中捕获的音视频等),outputfile_options为输出文件格式选项,outputfile为带有完全路径的输出文件名。FFmpeg常用options选项如下表 1所示。

(2)FFmpeg视频格式转换技术

FFmpeg命令行可实现视频格式转换及视频图片提取功能。视频格式转换命令如图 1所示,此命令可将input.avi文件转换为output.flv文件;设置输出文件使用flv视频编码器,帧频为24fps,视频编码码率为500bps,分辨率为720×480;设置输出文件使用mp3音频编码器,音频采样率为22050Hz,音频编码码率为56kbps。

FFmpeg提取视频图片命令如图 2所示,此命令实现每秒提取input.avi的一个视频帧,并将图片命名为“output-001.jpg”、“output-002.jpg”,“output-003.jpg”等。图片的分辨率将由“W×H”的值重新设置。若要提取有限数量的帧,可以添加-vframes或-t选项,也可以添加-ss选项,从一个特定时间点开始提取图片。

2.MEncoder

MEncoder是Linux视频播放工具MPlayer自带的编码工具,是一个使用C语言开发的高效的视频压缩和格式转换系统。MEncoder基于命令行使用,需要用命令行手工添加所需的各项参数。它支持各种视频格式,可针对不同CPU指令集进行优化编译,能充分利用处理器性能,因此转换速度快,1/10至1/2的播放时长就可完成。

(1)MEncoder的使用

MEncoder的基本语法为:mencoder inputfile[file|URL|-] [-o outputfile] [options],其中inputfile为带有完全路径的源视频文件名(可以为硬盘中的文件或网页地址);-o为输出文件命令,outputfile带有完全路径的输出文件名;options选项较为复杂,表 2列出了MEncoder部分选项。

(2)MEncoder视频格式技术

MEncoder命令可实现视频格式转换功能。视频格式转换命令,如图 3所示,此命令将input.avi文件转换为output.flv文件;以mp3lame为编码使用的音频编码器,lavc(Libavcodec)为编码使用的视频编码器,由于Libavcodec包含了多种视频编码,故用vcodec指定使用FLV编码;并设定以平均码率编码的音频编码码率为56kbps,音频采样频率为22050Hz,视频编码码率为500kbps。

四、视频格式转换技术比较

1.功能比较

FFmpeg命令行可在输入文件前添加选项、强制输出格式,支持输入文件的编解码及从视频中截取单帧图片,而MEncoder不支持。[6]但在视频压缩方面,两者的功能相差不大,主要差别在于MEncoder能够编辑到所有FFmpeg的libavcodec所支持的编码,[7]其支持的视频格式较FFmpeg完整。例如MEncoder可转换FFmpeg不支持的扩展名为.rm、.rmvb、.rt的文件。[8]

2.效率效果比较

本实验基于Ubuntu 12.04操作系统安装的FFmpeg及MEncoder转换软件,分别转换同一高清视频,从转换视频用时及输出视频的大小两个角度,测试两者转换效率的差异。源视频采用时长为超过1h20mn,码率为3535Kbps,MPEG-4编码的100段高清视频片段,主要为滑雪运动画面和人物叙事画面,可以有效检测视频转码在压缩动态和静态画面时的优劣。FFmpeg及MEncoder均采用表 3中命令行选项提及的flv对视频进行压缩,mp3对音频进行压缩,设定音频采样率为22050Hz,视频码率为3000Kbp,帧频为24fps,容器为flv。测试结果及分析如下:

例如,抽取源视频文件大小为1.99GB(2,137,663,152 字节)的滑雪视频,转码后视频大小见表 3。由于为了保持高清视频转码后的清晰度,设定了较高的码率,转码后的视频大小相比源文件大小没有较大的变化,但相同选项参数下,MEncoder压缩率略高。在视频转换用时方面,FFmpeg用时较少,编码速度较高。在画面效果方面,由于压缩是有损的,输出视频相比源视频清晰度都有一定程度的下降,且MEncoder相比FFmpeg转码后的视频质量略高。本实验一共测试了所有的100段测试视频,92%的视频符合此规律。同时也有学者证实,FFmpeg转换.wmv和.asf文件时经常出现花屏现象,转换.mkv格式的效果也差。[8]

综上所述,FFmpeg的优点在于编码速度高、功能较全面、使用更加灵活,MEncoder的优点在于可转换的视频种类多、质量高,但是转换速度较FFmpeg慢。因此,在视频文件格式转换时,应结合两个编码器的优点及视频格式、时长等视频编码信息,同时使用它们。首先,依据表4视频格式集合分类所示,将wmv、rm、rmvb、rt等FFmpeg无法处理或处理不好的格式交给MEncoder处理;其次,依据视频时长分类,将时长较大的视频(如课例)交给FFmpeg处理,减少转换用时,将时长较小的视频(如“微课”)交给MEncoder处理,忽略转换用时的略微差异,提高视频转换后的质量。

五、视频格式转换模块设计

考虑到FLV以其文件极小、加载速度极快,可以通过FlashPlayer在网页上播放的特点,已成为视频网站广泛使用的流媒体格式。本服务器端视频格式转换模块结合FFmpeg与MEncoder的优点,同时使用它们,将上传至服务器的所有格式的视频转换成符合要求的FLV格式视频。整个视频格式转换模块功能设计流程如图 4所示。

遍历视频文件夹,判断是否存在视频文件,如果发现视频文件,利用FFmpeg命令读取视频的属性信息,包括时长、分辨率、格式、帧速、比特率等参数,并根据表 4中视频转换的视频格式集合分类,判断其格式是否属于FFmpeg可处理的格式集合;如果属于,则判断视频时长是否较小,较小则调用MEncoder根据视频的属性信息执行视频转换,时长较大则调用FFmpeg根据视频的属性信息执行视频转换;如果不属于,则调用MEncoder根据视频的属性信息执行视频转换。待视频转换完成后,判断视频是否转换成功。如果转换成功,则执行文件重命名、调用FFmpeg截取视频缩略图、删除源视频文件、保存处理信息等操作;如果转换失败,将错误信息写入错误日志,再次遍历视频文件夹,当遍历完视频文件夹而没有发现视频文件时,退出程序。

六、结束语

鉴于目前教育视频点播系统逐渐趋于开放,所面临用户上载视频种类繁多的问题。本文通过测试及比较分析两种当前最流行的视频压缩和处理软件核心FFmpeg与MEncoder,并结合两者优势及视频编码信息,设计服务器端视频格式转换模块,为教育视频点播系统开发者提供服务器端统一视频文件格式技术解决方案。云计算的兴起及云终端的普及,视频点播系统已经不再满足于多种视频格式上载并统一为一种格式的正向转换,而趋向于云服务器根据网络链接状况和终端屏幕分辨率计算得到最佳效果的视频提供给终端播放的逆向转换。本研究将进一步研究基于云计算的教育视频点播系统,为教育者和受教育者提供适合当前终端的最佳效果的视频。

参考文献:

[1]吴艾,刘心松,符青云,刘克剑. DPVoD:基于P2P的视频点播体系结构[J].计算机研究与发展, 2008(2).

[2]沈时军,李三立.基于P2P的视频点播系统综述[J].计算机学报,2010(4).

[3]金智勇,孙乐传,宋志明.基于校园网的视频点播系统的构建及在教学中的应用[J].电化教育研究,2009(2).

[4]Ishfaq Ahmad , Xiaohui Wei , Yu Sun , Ya-qin Zhang.Video Transcoding: An Overview of Various Techniques and Research Issues[J]. IEEE TRANSACTIONS ON MULTIMEDIA, MULTIMEDIA, 2005, vol. 7, p. 793-804.

[5]陈少涌,林敏,梁仕銮.基于开源软件的视频点播系统的设计与实现[J].中国教育信息化,2011(3):30-32.

[6]Berton D. Advanced video coding on Linux[J].Linux Journal,2006 (150): 74-77.

[7]Heikki Orsila, Jaco Geldenhuys, Anna Ruokonen, Imed Hammouda,Trust issues in open source software development, WUP '09 Proceedings of the Warm Up Workshop for ACM/IEEE ICSE 2010, P. 9-12.

[8]FFmpeg Documentation[DB/OL].http://www.ffmpeg.org/documentation.html.

(编辑:鲁利瑞)