基于中间文件的视频编辑与播放系统研究
2018-10-11王戴妮丛志海常昶
王戴妮 丛志海 常昶
摘 要 在现代媒体技术的快速发展下,视频编辑应用广泛,对视频播放效果有直接影响。文章对基于中间文件的视频编辑与播放系统设计进行研究,首先分析了系统的设计需求,包括性能需求和功能需求,进而研究系统的整体架构设计。在此基础上,具体探讨基于中间文件的视频编辑与播放系统关键模块设计与实现,以期为媒体视频编辑技术的创新应用提供参考。
关键词 中间文件;视频编辑;播放系统
中图分类号 G2 文献标识码 A 文章编号 2096-0360(2018)15-0025-02
1 基于中间文件的视频编辑与播放系统设计需求分析
在信息多媒体技术的快速发展下,目前市面上使用的视频编辑系统多数为非线性编辑系统。采用非线性编辑技术可以按用户需求,对图片和音频等进行合成,并添加字幕特效、声音特效、转场特效等,实用效果得到大幅度提升。比如Adobe Prmiere视频编辑系统和微软的PowerPoint系统等。在其应用该过程中,用户可以根据需要,添加动态文字和图形元素,还能设置淡入淡出效果,使外添加元素与视频内容完美结合。但是从现有的几款视频编辑系统软件的应用情况来看,受传统技术所限,在编辑视频时,不能对原视频内容进行修改,影响了操作的便捷性和编辑效率。基于中间文件的视频编辑与播放系统可以有效解决这一问题,通过修改中间文件内容,达到改变原视频的效果,而无需真正改变原视频内容,操作较为方便[1]。
基于中间文件的视频编辑与播放系统设计需求主要包括以下两个方面:1)性能需求,在使用该系统进行视频编辑时,应保證不影响原视频质量,并经过编辑后,保持视频播放流畅性;2)功能需求,要支持多种视频格式的编辑操作,丰富视频编辑功能,满足用户添加文字、图形元素、音频等各方面需要。完成编辑后,支持视频播放,并保证用户操作界面的设计友好性,使用户能够快速掌握系统的各项功能。
2 基于中间文件的视频编辑与播放系统的整体架构设计
根据上述系统需求分析,可以将基于中间文件的视频编辑与播放系统整体划分为两大模块,一是视频编辑模块,二是视频播放模块。然后分别对两大模块进行细分,将视频编辑模块拆解为视频解码模块、中间文件生成模块、用户编辑模块。将视频播放模块拆解为视频解码模块、数据帧处理模块和中间文件分析模块。系统工作流程如图1所示。
各个模块系统架构如下。
1)视频解码模块,负责对不同编码格式视频进行解码,得到视频帧YUV数据,并根据不同情况执行操作。一种情况是直接贴出YUV数据,播放视频文件。另一种情况是先将YUV数据转换成RGB数据,根据具体条件对RGB数据进行处理,然后再将其转换成YUV数据,执行视频播放操作。
2)用户编辑模块,为用户提供一个优化的操作接口界面,主要包括文字、图形元素、音频的添加和删除功能,支持用户在界面上进行拖动操作,并通过点击编辑元素,设置其属性参数。主要属性参数包括元素类型、存在时段、播出方式等。
3)中间文件生成模块,其主要功能是根据编辑元素的属性参数,对中间文件进行修改,比如插入一条数据或删除一条数据。在进行数据插入时,具体内容由中间文件格式决定,在删除数据时,则需要先找到元素的对应数据,然后将其删除。
4)中间文件解析模块,负责读取中间文件的信息内容,对其进行逐条数据分析,解释数据含义,调用视频帧处理模块,根据要求对帧数据进行处理。
5)视频帧处理模块,负责对视频帧的RGB数据进行处理,将处理后数据播放出来。不同的编辑元素,其属性信息不同,需要通过属性信息计算,确定要修改的像素值[2]。
3 基于中间文件的视频编辑与播放系统的关键模块设计与实现
3.1 用户编辑模块的设计与实现
根据上述系统架构的分析,用户编辑模块的主要设计目的是为用户提供友好操作界面,并提供尽可能丰富的视频编辑操作功能。在该模块的设计过程中,一般编辑元素的添加应做到两步完成,即第一步选择待添加元素,第二步设置元素的属性参数。在此过程中,元素属性参数设置十分重要,关系到添加元素在视频播放过程中的播放效果,而且在删除元素时,也需要根据其属性信息进行选择和删除。用户选择待添加元素后,可以直接在操作界面中编辑元素信息,然后点击确定,系统会显示操作成功。但在一些情况下,新添加元素需要利用一些辅助信息,比如在设置像素点坐标时,难以通过肉眼观察得出具体坐标。为满足用户操作需要,应加入鼠标点击位置显示坐标的功能,方便用户获得精确坐标值。完成属性编辑后,用户可以利用系统自带的预览功能,查看视频播放效果,并根据需要对其进行微调,从而优化视频编辑质量[3]。
3.2 中间文件生成模块的设计与实现
在中间文件生成模块设计过程中,考虑到中间文件是用来存储编辑元素属性参数的,要随时支持用户添加或删除数据。在进行数据添加操作时,其内容主要由中间文件格式确定。先插入数据编号,然后设置时间轴数据,最后进行待添加数据的属性参数编辑。删除数据时,则先确定删除元素对应数据,将其删除后,修改之后的所有数据编号。相比之下,删除数据操作较为复杂。要删除一条数据,要先在中间文件中找到其对应数据,执行删除操作后,还要对后面的数据项执行“编号减1”操作。在中间文件中,所有的数据项都根据时间轴进行排列,按照从小到大的顺序,因此,无论是添加还是删除数据,都要确定其时间轴位置,并对谋面的数据进行调整。
3.3 中间文件解析模块的设计与实现
中间文件解析功能需要找到当前帧的所有编辑元素信息,提取其中的属性参数。一般情况下,当前帧涉及的编辑元素都不止一个,需要一次性将所有涉及元素全部找出,这是中间文件解析模块的重点功能。但如果每播放一帧图像,都对中间文件进行一次完全遍历,会导致系统运行效率较低,因此,需要采用合适的算法,提高解析效率。由于数据在中间文件中的排列顺序是根据时间轴的由小到大顺序进行排列的,因此不需要完全遍历中间文件,遇到第一个大于当前帧数据项时即可停止操作。还有一种方法是根据上一次的中间文件遍历信息,改进查找初始位置。即不从文件头部开始进行查找,而是根据上次的查找位置,将其作为起始位置进行遍历。在这种遍历方式下,所用的时间一定小于等于从文件头部开始查找所用的时间。将两种简便算法结合起来,可以有效提高中间文件解析效率。
3.4 视频帧处理模块的设计与实现
视频帧处理模块是视频播放模块的核心模块,根据上述分析,要实现视频播放功能,首先要对视频文件进行解码,根据需要将其转换为RGB格式,经过处理后在转换为YUV格式。在解析中间文件时,获取当前帧时间值和各个数据项的属性参数。然后根据对中间文件的解析结果,处理视频帧,计算待修改像素点,并将其修改成目标像素点。因此,中间文件解析结果是视频帧处理模块的输入参数,根据其结果,对视频帧图像RGB数据进行修改,然后执行播放操作。可以采用SDL库执行视频播放操作,比如已知一条直线的起点和终点,要添加该直线,需要计算出该直线上的像素点,并利用视频帧处理模块修改对应像素点的参数值。再比如,要添加一个圆形元素,已知其圆心坐标和半径,需要计算该圆周上的像素点。如果要添加文字元素,其计算过程更加复杂,一般不可能通过直接计算确定像素点,需要使用第三方文字库显示汉字。按照判断元素类型、计算像素点、修改像素点、显示元素的顺序执行视频帧处理过程,并利用各种元素库,可以充分满足视频处理和播放需要,实现上述预期功能。
参考文献
[1]梁丽.浅谈微视频制作软件[J].信息系统工程,2018(5):35.
[2]陈树博.电视台视频编辑工作改进创新研究[J].记者摇篮,2018(4):25-26.
[3]姜鹏.浅论视频编辑的创作实践[J].新闻研究导刊,2018,9(1):171-172.