基于FFmpeg的DES视频剪辑技术的研究与应用

基于FFmpeg的DES视频剪辑技术的研究与应用

ID:42524316

大小:17.42 KB

页数:6页

时间:2019-09-16

基于FFmpeg的DES视频剪辑技术的研究与应用_第1页
基于FFmpeg的DES视频剪辑技术的研究与应用_第2页
基于FFmpeg的DES视频剪辑技术的研究与应用_第3页
基于FFmpeg的DES视频剪辑技术的研究与应用_第4页
基于FFmpeg的DES视频剪辑技术的研究与应用_第5页
资源描述:

《基于FFmpeg的DES视频剪辑技术的研究与应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于FFmpeg的DES视频剪辑技术的研究与应用  FFmpeg以其丰富的编解码库和强大的解码能力著称,DES(DirectShowEditingService)是非常方便的基于DirectShow的非线性视频编辑接口。然而由于DES技术在解码方面的局限性,实际应用中很少使用它。本文提出一种基于DirectShowFilter开发技术封装FFmpeg解码库的技术,实现了结合DES技术剪辑视频的视频处理系统,即弥补了DES解码方面的缺陷,又能体现DES技术便于开发、使用简单的特性。  【关键词】FFmpegDESDirectSh

2、owFilter  1相关背景  视频技术的发展、视频压缩标准的推陈出新以及应用在多种场景中的视频显示的大量要求,视频解码技术的研究随之不断深入。一方面,实际应用中需要根据需求选取最适合的解码方法;一方面,视频剪辑技术在各种体育项目中的应用也愈加的普遍,这种技术一般具有一定的解码局限性,需要与具体的解码器适配。  目前几乎所有的主流多媒体播放器都是基于开源多媒体框架ffmpeg来做的,FFmpeg几乎覆盖全部视频格式。DirectShow开发框架是微软公司提供的针对流媒体控制的解决方案,它总体的应用框架和底层工作由Direct

3、Show来完成,为用户自定义的解决方案提供了底层流控制框架,从而使用户可以自行创建支持新的文件格式或其它用途的DirectShow组件。  DES非线性视频剪辑技术是基于DirectShow开发框架的一个核心编程框架的接口,使得音视频的编辑工作更加方便、快捷,大大提高了开发效率。但是DES视频剪辑技术在视频解码方面存在缺陷,一些特殊编码格式的视频由于不能采用此技术播放而无法剪辑。本文介绍的基于FFmpeg的DES视频剪辑系统很好的处理了这一问题。  2基于FFmpeg的DirectShowFilter解码器实现  FFmpeg

4、视频解码内核是通过封装FFmpeg中的解码功能为解码Filter而实现的。设计一个H.264视频解码器就是设计一个能实现H.264视频解码功能的DirectShowFilter。从FilterGraph的设计和功能定义上分析,H.264解码Filter是一种TransformFilter,有一个输入Pin和一个输出Pin。  综合考虑各种因素,决定采用CSource作为Filter基类,因为CSource的输出Pin是从CSourceStream派生的,CSourceStream已经实现了一个县城,在这个线程中可以控制整个编码

5、过程。Filters框架类的编程关系如图1所示。  基类选好后接着就是应用控制类的实现,设计一个控制类实现系统初始化、反初始化、调用解码算法解码、解码输出等函数。  H.264解码Filter的功能主要在于控制模块、输入输出Pin的处理、视频算法处理、过滤器处理和过滤器的注册等几部分构成。创建一个CH264MengInputPin类重写几个重要的基类函数:Receive、BeginFlush、NewSegment和CheckMediaType等。设计一个用作处理H.264视频的CMengH264Filter类,它主要实现的基类

6、函数有FindPin、Stop、GetPinCount、GetPin和Pause等,其中还实现了输入输出Pin委托的功能。  H.264标准解码Filter结构如图2所示。  3DES结合FFmpeg实现视频剪辑系统  本文所述的视频剪辑系统的实现首先需要建立DES时间线模型,然后针对视频剪辑需要事先查看的要求(这里就用到了前文所诉的解码Filter),实现剪辑视频预览的功能,最后在建立文件保存剪辑好的视频文件。  3.1DirectShowEditingService时间线的构建  构建时间线模型需要调用系统提供的一个虚接口

7、(没有具体的实现,只提供函数名称表示,供应用层调用)即时间线接口IAMTimeline,遵循时间线的结构模型,定义实际所需的属性和函数,并且创建出时间线对象。其中主要属性包括组(Group)、集合(Composition)、轨道(Track)和媒体源(Source)。  根据接口提供的方法创建时间线对象时间线框架,根据实际需要在“树形”时间线结构的框架上填充“枝叶”。“枝叶”便是DES对象,需要使用虚接口中的方法CreateEmptyNode来定义,包括:IAMTimelineGroup、IAMTimelineComp、IAM

8、TimelineTrack、IAMTimelineSrc。其中每个对象都需要创建视频和音频两种。下一步就是要在组中加入轨道,然后实现视频剪切过程。设置媒体源的剪切时间和其在时间线上的时间,将其放到相应的轨道上。  3.2DirectShowEditingService预览功能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。