APP下载

面向图书电子化的视频协同编辑和管理平台

2017-11-01李菁菁蔡鸿明步丰林

关键词:分支协同模块

李菁菁, 蔡鸿明, 步丰林

(上海交通大学 软件学院, 上海 200240)

面向图书电子化的视频协同编辑和管理平台

李菁菁, 蔡鸿明, 步丰林

(上海交通大学 软件学院, 上海 200240)

针对图书电子化过程的协同编辑问题,提出了一种视频协同编辑和管理平台框架.采用基于双向链表带权重的有向图形式进行视频版本管理模型的设计,并使用完整版本和增量版本混合的方式对视频资源进行管理,版本的存取则采用非对称多模型的形式,通过实现视频的版本控制模块来实现视频编辑的异步协同.软件的初步应用验证可知,提出的版本控制模块在支持视频的异步协同编辑方面具有较大适用性.

版本控制; 协同; 视频编辑

出版社为了适应新一轮互联网+的发展,已经由传统的单一纸质出版形式向纸质文本与电子化资源联合出版的形式转变,其中电子化资源主要指书籍内容所对应的视频.书籍文本和其电子化资源的编辑都需要作者协作完成,但是作者的工作时间比较弹性,多个作者往往不能满足同一时间全部在线工作的要求.因此,如何为作者提供一种异步协同的工作模式来保证作者可以随时随地进行编辑工作成为目前急需解决的问题.

现已有GitBook等工具支持多人对书籍文本进行异步协同编辑工作,但对于视频而言,目前还没有成熟的应用以支持多人异步协同编辑.随着HTML5标准化的发展,开发独立的平台应用在不同操作系统和不同分辨率的智能手机、平板电脑、手提电脑和台式机中运行成为可能,基于HTML5视频播放器进行视频编辑的相关研究已有很多成果.Video-Wiki[1]是一款基于Web的视频编辑系统,根据文本对视频内容进行协同标记,通过用户对文本内容的理解对视频内容进行剪切、编辑以及重组,生成定制视频.文献[2]开发了一款基于HTML5的交互式非线性视频编辑播放器,但提出的视频协同编辑只限于不同用户对视频添加文字或者图片注释等操作,并没有开放对原有视频内容进行编辑的权限,对视频的最终修改只能由视频拥有者来做.维基百科[3]在2011年提出视频协同编辑的概念,通过讨论现有HTML5技术如何为富媒体应用提供更好的支持,进行了基于浏览器的视频协同程序的展望工作.VidWiki[4]是一个基于浏览器的在线视频修正系统,可用来提高教育视频中手写文字的可读性.用户可以为教育视频某一时刻的内容添加标注,用印刷字覆盖视频中的手写字,提高了视频中文字的可读性,为视频中的内容添加公式、图片或者其他内容使教学视频中的内容更便于理解,同时通过本地化视频中的语言方便本地学习者学习视频中的内容.VidWiki通过获得锁的方式实现视频协同编辑,在某一段时间内只有一人拥有某个视频的编辑权,只有获得锁的人将锁释放后,其他人才有可能获得相应的锁,进行视频编辑操作.NOVET[5]是一种基于Web的视频编辑开源工具,它允许用户通过浏览器编辑视频并将其结果发布,具有视频剪切、合并、上传、下载、添加音频等功能.WeVideo[6]是一个视频协同编辑平台,可以运行在Web端和移动端,提供视频剪辑,添加特效、字幕和音乐等功能.用户通过邀请其他用户进入自己创建的工程,实现在线多人同步编辑功能.简而言之,现有的在线视频编辑应用,大多数不支持多人协同编辑,少数只支持视频的同步协同编辑或者只支持单人进行视频编辑的异步协同.

因此,本文提出一种视频协同编辑和管理平台框架,支持同步协同和异步协同两种协同方式.其中,异步协同主要基于版本控制来实现,提出基于双向链表的非对称版本管理模型,并在此基础上实现版本控制算法来达到多人异步协同进行视频编辑的目的.

1 视频协同编辑和管理平台框架

以同步协同方式进行视频编辑时,用户的操作会实时地上传至服务器,服务器端对所有操作进行冲突检测,若冲突无法得到解决,系统会驳回相关的冲突操作,其余的操作则会根据文献[7]中的方法构建操作树,根据操作树得到视频的渲染结果并返回给所有用户.系统的版本控制模块会保留用户每次进行协同工作的最终版本,并对其进行管理.

异步协同视频编辑功能的实现依赖于版本控制模块.每个用户可以创建私有分支,在私有分支上进行视频编辑工作和版本的提交,同时不会影响其他用户的编辑结果.在所有用户完成工作后,进行分支的融合并得到最终的结果.但用户间的操作往往会发生冲突,冲突的检测主要依赖于视频操作集,冲突解决方案主要采用产生多版本的冲突容忍策略.

本文提出的视频协同编辑和管理平台框架(如图1所示)主要分为客户端和服务器端两部分.

图1 视频协同编辑和管理平台框架Fig.1 Collaborative video editing and management platform framework

客户端即浏览器端,用户可以在浏览器中上传视频或者选择已有的视频进行编辑,其主要包括视频编辑器模块、版本控制模块、协同编辑方式模块和协同管理模块.

(1) 视频编辑器模块包括视频播放以及各种视频编辑操作模块,主要为视频编辑提供相应功能.

(2) 版本控制模块可以查看视频版本关系演进图,并进行版本的提取和回溯等.

(3) 协同编辑方式模块进行协同方式的选择,提供同步协同和异步协同两种方式.

(4) 协同管理模块主要对用户权限和视频资源进行管理.

服务器端包括服务层和数据层两部分.服务层包括版本控制模块和协同编辑模块.数据层主要是对系统资源进行管理,包括视频操作集、视频资源、版本关系图和用户权限.其中服务层主要模块的功能如下:

(1) 版本控制模块的版本管理是核心,并在其基础上实现版本控制算法.

(2) 协同编辑模块主要是对抽象操作集、共享资源和用户间的会话进行管理,以此来进行冲突检测,实现冲突避免,或对已产生的冲突根据不同的处理策略进行冲突处理.

2 视频协同编辑和管理方法

2.1非对称多模型的版本管理

本文通过实现视频的版本控制模块来实现异步协同,保证所有用户能随时进行资源的编辑与管理.如今流行的版本控制系统包括CVS、 Subversion、 Git和Mercurial[8].由于视频无法进行结构化分割且占用大量存储空间,以往基于文本和基于场景图的3D资源版本控制方法不适用于视频资源,本文提出非对称多模型的版本管理方法,根据版本间转化权重决定版本的管理模型类型,以非对称的形式维护视频版本,并在此基础上实现版本控制算法,达到异步协同的目的.

2.1.1 视频多版本管理模型

现有的多版本管理策略分为完整版本管理和增量版本管理[9-10].完整版本管理对管理空间的要求较高,增量版本管理虽然降低了管理空间的要求,但对特定版本的提取需要进行相关计算,从而影响版本的提取效率.因此,提出一种基于双向链表的带权重的有向图的版本关系模型,采取混合版本管理的方式来平衡管理空间与版本提取速度.

图2 基于双向链表的带权重的有向图Fig.2 Weighted directed graph based on doubly linked list

2.1.2 非对称多模型

编辑视频前首先要提取视频的某个版本,之后的编辑操作主要是为了让用户快速看到编辑后的效果,对视频本身质量要求不高,所以用户提取版本时为用户返回视频的压缩版本,这样可以降低网络负载,减少网络传输时间,提高用户操作响应速度.

定义1 满足以下条件之一时,则为相关版本创建压缩版本并进行维护,其中压缩版本均为完整版本的压缩版本.

(1) 版本为当前分支的最新版本;

(2) 用户提取版本为某个非最新版本.

定义2 满足以下条件之一时,创建和维护的压缩版本将被舍弃.

(1) 新版本产生,即压缩版本所对应的版本节点不再是当前分支的最新版本节点;

(2) 分支进行合并.

非对称多模型如图3所示.由图3可知:在版本节点1处进行分支操作,产生两个分支,每个分支会在最新版本节点处产生最新版本所对应完整版本的压缩版本,并进行临时存储;进行分支合并操作后,每个分支创建和维护的压缩版本将被舍弃,并创建和维护合并版本所对应的压缩版本.由于分支合并规定存储完整版本,可以直接对其产生的合并版本进行压缩,产生对应的压缩版本.图3中,在版本5处进行分支的合并操作,版本5为当前最新版本,应创建和维护其对应的压缩版本,同时压缩版本3和压缩版本4被舍弃;当用户进行指定版本的提取时,也将临时维护所提取版本对应的压缩版本.

图3 非对称多模型Fig.3 Asymmetric multiple model

2.2版本控制算法

本文提出的版本控制算法主要包括4个方面:提取、分支与标签、提交与更新、差分与融合.

2.2.1 版本的提取

将用户上传的原始视频作为视频的初始版本,服务器端会对初始版本进行压缩,将压缩版本返回给用户进行编辑,其中初始版本永远采用完整版本策略.

若视频已经存储在服务器端,且用户没有指定返回的版本,则服务器端返回给当前用户所在分支最新版本所对应的压缩版本.如果用户指定了某个版本,且指定版本不是当前分支所对应的最新版本,则分为以下两种情况进行结果的返回:(1)如果提取版本为完整版本,则直接创建其压缩版本并返回给用户;(2)如果提取版本为增量版本,则通过最近的完整版本进行操作渲染,产生指定版本的完整版本并进行压缩,将其压缩版本返回给用户.

2.2.2 版本的分支与标签

视频编辑默认的分支为主分支(Master),在进行分支操作的时候,会判断当前分支的最后一个节点的存储类型.如果是完整存储版本,则直接进行分支操作;如果是增量存储版本,则向上追溯到最近的完整版本并进行当前分支最后一个节点的完整版本渲染,得到最新的完整版本并替换当前的增量版本.新的分支会被用户赋予一个新的名称作为唯一标识,用户可以在任意分支之间进行切换.

用户可以对任意一个分支中的某个版本进行标签操作,系统会产生一个对此版本的引用,用户可以通过标签快速切换到其对应的版本;同时,用户也可以对已有的标签进行删除,解除对某个版本的引用.

视频版本的分支和标签如图4所示.由图4可知,当前的版本历史图中有Master和Branch 1两个分支,同时为版本1所在的标签打上Version 1的标签.

图4 视频版本的分支和标签Fig.4 Branches and tags of video versions

2.2.3 版本的提交与更新

将用户上传的原始视频作为视频的初始版本,视频编辑后产生的新版本则根据2.1.1节中提出的基于双向链表的带权重的有向图来进行新版本的存储,存储新版本流程的伪代码如图5所示.

Procedure1:CalculatecostweightWbasedonoperations0Input:OperationSetO={O1,O2,……On}(0istheoperationofthevideo)Lastversionvideo:Vedioi=1Toleranceparameters:tolerancepOutput:ThecostW1ofthenewversionvideo1. CalculatenoperationcostWtempbyLoopingoverOperationSetO2. Versioni-1=getversionType(Vedioi=1)3. if(Versioni=1=='complete')4. returnWtemp5. else{6. Versiontemp=Versioni=17. while(Versiontemp!='complete'){8. Wtemp=Wtemp+getWeight(Versiontemp)9. Versiontemp=getPriorVersion(Versiontemp)10. }11.returnWtemp

Procedure2:CalculatethenewversiontypebasedonweightWInput:ThecostweightW1ofthenewversionfromthelastcompleteversionvideoOperationSetO=O1,O2,……,On(0istheoperationofthevideo)Lastversionvideo:Vedioi-1ThecriticalvalueofthecostweightΔw1.if(W1≥Δw){2. Versiontemp=Versioni-13. index=i=14. while(Versiontemp!='complete'){5. Wtemp=Wtemp+getPriorVersion(Versiontemp)6. Versiontemp=getPriorVersion(Versiontemp)7. index=index-18. }9. Vediores=Vedioindex10. while(index!=i){11. Vediorse=getRenderVideo(Vediores,Oindex+1)12. index=index=113. }14. storeCompleteVideo(Vediores,O)15.}16.else{17. storeoperations(O)18.}

图5存储新视频版本算法
Fig.5Algorithmofstorenewversionvideo

用户在进行视频编辑操作时,系统会记录用户的每一个操作,在操作结束时,会产生一系列操作组成的操作集.在进行新版本存储时,系统会根据产生的操作集计算从上一个版本到当前要存储版本之间进行视频渲染所需要的代价wi,系统本身有一个临界值Δw,比较wi和Δw大小,来决定当前版本是进行增量存储还是完整存储.

2.2.4 版本的差分与融合

任意分支可以进行融合操作,但是融合之前要进行分支之间的差异性计算.首先获取每个分支从当前最新版本到所有分支公共祖先结点的所有操作序列,将每个分支的操作序列合并形成一个新的操作集On,通过文献[7]中的方法为其构建操作树,在构建操作树的过程中,如果不同分支之间的操作存在冲突,则采用文献[11]中的冲突容忍策略,系统会先试图将不同分支的结果进行融合,如果融合失败则保留所有的组合情况供用户选择.由于分支的起始位置均采用完整存储策略,所以分支的公共祖先根据构建的操作树来进行视频的处理产生分支的融合结果,并将融合的结果进行完整版本的存储,舍弃每个分支之前各自维护的最新版本对应的压缩版本,并产生融合版本所对应的视频压缩版本.

2.2.5 异步协同视频编辑

异步协同视频编辑功能通过版本控制模块来实现.多个用户可以各自创建私有分支,并在自己的私有分支上进行相关的视频编辑工作和版本的提交.在所有用户完成各自的编辑工作后,对所有分支进行融合操作,得到最终结果.融合过程中冲突的检测主要依赖于视频操作集,冲突解决方案主要采用产生多版本的冲突容忍策略.

3 系统实现及验证

3.1原型系统实现架构

原型系统的实现架构如图6所示.应用层以浏览器为客户端,主要基于HTML5进行前端页面的开发,实现基于Video.js的视频编辑播放器,包括视频协同编辑方式选择和协同管理等模块.服务层使用Node.js进行后台开发,采用ffmpeg实现服务器端视频的处理,主要包括版本控制、协同编辑、视频存储、视频处理和用户权限管理模块.数据存储层使用非结构化数据库MongoDB进行数据存储,主要存储视频操作集、视频资源、版本关系图和用户权限等资源.其中,应用层和服务层通过WebSocket技术实现双向实时通信功能,使用Ajax进行应用层和服务层之间的服务调用.

图6 系统实现架构图Fig.6 System implementation architecture

3.2原型系统界面

Web端的实现界面如图7所示.

图7 系统实现图Fig.7 Main interface of system

分支管理界面如图8所示.

图8 分支管理界面Fig.8 Interface of branch management

合并分支之后的结果界面如图9所示.

图9 分支合并结果Fig.9 Interface of branch merge result

3.3分析与讨论

本文实现的原型系统WVES(web-based video editing system),不仅提供了较为丰富的视频编辑功能,还同时支持同步协同和异步协同两种协同编辑方式,并且提供视频的版本控制模块来对多人异步协同编辑提供保障.基于Web的视频编辑系统的比较如表1所示.

由表1可知,现有的视频系统对协同编辑的支持并不完善,也没有提供视频资源的管理方案.VidWiki不支持同步协同,通过获取锁的方式进行单人异步协同,在某一段时间内只对一个人开放视频资源的编辑权利,并不能体现协同编辑的特性.WeVideo只支持视频的同步协同编辑,不支持异步协同.本文实现的WVES系统在提供了较为完整的视频编辑功能的基础上,同时支持同步协同和异步协同两种视频协同编辑方式.在对视频资源的管理方面,VidWiki和WeVideo每次均对新的视频版本进行完整版本的存储,而本文实现的WVES系统包括视频的版本控制模块,该模块不仅为实现多人异步协同提供了保障,还可更好地对视频资源进行管理.

表1 基于Web的视频编辑系统对比

4 结 语

本文提出了基于Web的视频协同编辑和管理平台框架.针对视频资源的版本控制,从多版本管理模型和版本控制算法两方面展开研究,采用基于双向链表的带权重的有向图形式进行版本管理模型的设计,并使用完整版本和增量版本混合的技术对视频资源进行管理,版本的存取则采用非对称多模型的形式,所提出的版本控制算法支持版本的提取、分支与标记、提交与更新、差分与融合.视频的多人异步协同编辑的实现基于提出的视频版本控制模块.

由于本文对视频处理操作主要在服务端进行,对网路的传输速度有很高的要求;在异步协同编辑模式下,对多分支的融合需要较长的时间进行最终版本的渲染来获得合并后的结果.所以下一步的研究工作主要包括如何降低网络延迟对获取视频渲染结果的影响,以及如何优化现有的多分支合并方案来提高多分支融合的速度.

[1c] BLANKINSHIP E, MIKHAK B. Video-Wikis and media fluency[C]//Proceedings of the 6th International Conference on Interaction Design and Children. ACM, 2007: 175-176.

[2] MEIXNER B, SIEGEL B, SCHULTES P, et al. An HTML5 player for interactive non-linear video with time-based collaborative annotations[C]//Proceedings of International Conference on Advances in Mobile Computing & Multimedia. ACM, 2013: 490-500.

[3] DALE M. Collaborative video editing for Wikipedia[C]//Proceedings of the 7th International Symposium on Wikis and Open Collaboration. ACM, 2011: 225-225.

[4] CROSS A, BAYYAPUNEDI M, RAVINDRAN D, et al. VidWiki: Enabling the crowd to improve the legibility of online educational videos[C]//Proceedings of the 17th ACM Conference on Computer Supported Cooperative Work & Social Computing. ACM, 2014: 1167-1175.

[5] WANG H A, LIN Y C, LU H T, et al. Open source for web-based video editing[J]. Journal of Information Science and Engineering, 2012, 28(4): 787-801.

[6] WeVideo[EB/OL].[2017-02-15]. https://www.wevideo.com/.

[7] 谢晓青,张妍,姜丽红,等.基于操作树的移动视频编辑方法研究及实现[J].东华大学学报(自然科学版),2015,41(4):467-473.

[8] MUSLU K, BIRD C, NAGAPPAN N, et al. Transition from centralized to decentralized version control systems: A case study on reasons, barriers, and outcomes[C]//Proceedings of the 36th International Conference on Software Engineering. ACM, 2014: 334-344.

[9] 刘国军,杨宏志.基于双向链表的产品协同设计版本存储模型[J].计算机系统应用,2013,22(10):129-131.

[10] SONG Y, LUO Y, ZHANG Y, et al. Version storage in collaborative design system based on circular linked list[C]//Computer Supported Cooperative Work in Design (CSCWD), Proceedings of the 2014 IEEE 18th International Conference on. IEEE, 2014: 684-688.

[11] GAO L, YU F, CHEN Q, et al. Consistency maintenance of Do and Undo/Redo operations in real-time collaborative bitmap editing systems[J]. Cluster Computing, 2016, 19(1): 255-267.

(责任编辑:徐惠华)

BookOrientedElectronicPlatformforCollaborativeVideoEditingandManagement

LIJingjing,CAIHongming,BUFenglin

(School of Software, Shanghai Jiao Tong University, Shanghai 200240, China)

Aiming at the problem of collaborative video editing of book oriented electronic process, an architecture of book oriented platform for collaborative video editing and management is proposed. In this architecture, the video version management model is based on doubly linked list of weighted directed graph, using the full version and incremental version mix mode to manage the video resources, and the access of the specified version video adopts asymmetric multiple model form. Through the implementation of video version control module, the goal on asynchronous collaborative video editing can be achieved. The initial application of the system shows that the version control module has great applicability in the field of asynchronous collaborative video editing.

version control; collaboration; video editing

TP 391

A

1671-0444 (2017)04-0459-07

2017-04-28

国家自然科学基金资助项目(61373030,71171132)

李菁菁(1994—),女,河南濮阳人,硕士研究生,研究方向为信息可视化. E-mail:jingjing.li@sjtu.edu.cn

蔡鸿明(联系人),男,教授,E-mail:hmcai@sjtu.edu.cn

猜你喜欢

分支协同模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
蜀道难:车与路的协同进化
巧分支与枝
“四化”协同才有出路
一类拟齐次多项式中心的极限环分支
三医联动 协同创新
选修6 第三模块 International Relationships
协同进化
生成分支q-矩阵的零流出性