基于FFmpegDES视频剪辑技术研究与应用.docVIP

基于FFmpegDES视频剪辑技术研究与应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FFmpegDES视频剪辑技术研究与应用

基于FFmpegDES视频剪辑技术研究与应用   FFmpeg以其丰富的编解码库和强大的解码能力著称,DES(DirectShow Editing Service)是非常方便的基于DirectShow的非线性视频编辑接口。然而由于DES技术在解码方面的局限性,实际应用中很少使用它。本文提出一种基于DirectShow Filter开发技术封装FFmpeg解码库的技术,实现了结合DES技术剪辑视频的视频处理系统,即弥补了DES解码方面的缺陷,又能体现DES技术便于开发、使用简单的特性。   【关键词】FFmpeg DES DirectShow Filter   1 相关背景   视频技术的发展、视频压缩标准的推陈出新以及应用在多种场景中的视频显示的大量要求,视频解码技术的研究随之不断深入。一方面,实际应用中需要根据需求选取最适合的解码方法;一方面,视频剪辑技术在各种体育项目中的应用也愈加的普遍,这种技术一般具有一定的解码局限性,需要与具体的解码器适配。   目前几乎所有的主流多媒体播放器都是基于开源多媒体框架ffmpeg来做的,FFmpeg几乎覆盖全部视频格式。DirectShow开发框架是微软公司提供的针对流媒体控制的解决方案,它总体的应用框架和底层工作由DirectShow来完成,为用户自定义的解决方案提供了底层流控制框架,从而使用户可以自行创建支持新的文件格式或其它用途的DirectShow组件。   DES非线性视频剪辑技术是基于DirectShow开发框架的一个核心编程框架的接口,使得音视频的编辑工作更加方便、快捷,大大提高了开发效率。但是DES视频剪辑技术在视频解码方面存在缺陷,一些特殊编码格式的视频由于不能采用此技术播放而无法剪辑。本文介绍的基于FFmpeg的DES视频剪辑系统很好的处理了这一问题。   2 基于FFmpeg的DirectShow Filter解码器实现   FFmpeg视频解码内核是通过封装FFmpeg中的解码功能为解码Filter而实现的。设计一个H.264视频解码器就是设计一个能实现H.264视频解码功能的DirectShow Filter。从Filter Graph的设计和功能定义上分析,H.264 解码Filter是一种Transform Filter,有一个输入Pin和一个输出Pin。   综合考虑各种因素,决定采用CSource作为Filter基类,因为CSource的输出Pin是从CSourceStream派生的,CSourceStream已经实现了一个县城,在这个线程中可以控制整个编码过程。Filters框架类的编程关系如图1所示。   基类选好后接着就是应用控制类的实现,设计一个控制类实现系统初始化、反初始化、调用解码算法解码、解码输出等函数。   H.264解码Filter的功能主要在于控制模块、输入输出Pin的处理、视频算法处理、过滤器处理和过滤器的注册等几部分构成。创建一个CH264MengInputPin类重写几个重要的基类函数:Receive、BeginFlush、NewSegment和CheckMediaType等。设计一个用作处理H.264视频的CMengH264Filter类,它主要实现的基类函数有FindPin、Stop、GetPinCount、GetPin和Pause等,其中还实现了输入输出Pin委托的功能。   H.264标准解码Filter结构如图2所示。   3 DES结合FFmpeg实现视频剪辑系统   本文所述的视频剪辑系统的实现首先需要建立DES时间线模型,然后针对视频剪辑需要事先查看的要求(这里就用到了前文所诉的解码Filter),实现剪辑视频预览的功能,最后在建立文件保存剪辑好的视频文件。   3.1 DirectShow Editing Service时间线的构建   构建时间线模型需要调用系统提供的一个虚接口(没有具体的实现,只提供函数名称表示,供应用层调用)即时间线接口IAMTimeline,遵循时间线的结构模型,定义实际所需的属性和函数,并且创建出时间线对象。其中主要属性包括组(Group)、集合(Composition)、轨道(Track)和媒体源(Source)。   根据接口提供的方法创建时间线对象时间线框架,根据实际需要在“树形”时间线结构的框架上填充“枝叶”。“枝叶”便是DES对象,需要使用虚接口中的方法CreateEmptyNode来定义,包括:IAMTimelineGroup、IAMTimelineComp、IAMTimelineTrack、 IAMTimelineSrc。其中每个对象都需要创建视频和音频两种。下一步就是要在组中加入轨道,然后实现视频剪切过程。设置媒体源的剪切时间和其在时

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档