基于DirectShow非线性编辑DES

摘要

本文详细阐述了基于DirectShow核心框架的非线性编辑的基本原理,并提供 了一个编辑的源代码,演示如何拼接两个音视频文件,实现视频过渡效果,并预览。

编译环境 WindowsXP,VC6.0+sp5,DX9 SDK.

技术原理

DES (DirectShow Editing Services),是一套基于DirectShow核心框架的编程接口。DES的出现,简化了视频 编辑任务,弥补了DirectShow对于媒体文件非线性编辑支持的先天性不足。但是,就技术本 身而言,DES并没有超越DirectShow Filter架构,而只是DirectShow Filter的一种增强应用 。我们可以从下图中了解到DES在我们整个多媒体处理应用中的位置。

下面,我们举个 例子来看一下DES能够给我们带来些什么。假如我们现在有三个文件A、B和C,使用这三个文 件做成一个合成的文件。我们想取A的4秒钟的内容,紧接着取B的10秒钟的内容,再紧接着C 的5秒钟的内容。如果仅仅是这样,我们直接使用DirectShow Filter是不难实现的。(一般 情况下,应用程序级会维持各个文件的编辑信息,由应用程序根据这些信息动态创建/控制功 能单一的Filter Graph,以顺序对各个文件进行处理。)但是,如果我们的"创意 "是随时改变的,我们现在想让C在B之前出现,或者我们想取A的不同位置的10秒钟内容 ,或者我们想给整个合成的文件加上一段美妙的背景音乐。如果我们仍然直接使用 DirectShow Filter去实现,情况就变得很复杂了。然而,对于DES,这真的是小Case!(将所 有的编辑信息以DES提供的接口告诉DES,其它的如Filter Graph的创建/控制输出,就完全交 给DES来负责吧!这时候,DES创建的Filter Graph带有各个Source输出的控制功能,一般比 较复杂。)

如果我们使用DES,我们还可以得到如下的便利:

1. 基于时间线 (Timeline)的结构以及Track的概念,使得多媒体文件的组织、编辑变得直观而高效;

2. 支持即时的预览;

3. 视频编辑项目支持XML文档的形式保存;

4. 支持对视频/音频的效果处理,以及视频之间切换的过渡处理;

5. 可以直接使用DES 提供的100多种SMPTE过渡效果,以及MS IE自带的各种Transform、Transition组件;

6. 支持通过色调、亮度、RGB值或者alpha值进行图像的合成;

7. 自动对源 文件输出的视频帧率、音频的采样率进行调整,直接支持视频的缩放。

接下去,我们 来看一下DES的结构(Timeline模型),如下图所示:

时间: 2025-01-30 15:22:27

基于DirectShow非线性编辑DES的相关文章

基于DirectShow的MPEG-4视频传输系统的研究与实现

1 引言    近年来,随着国民经济的发展,社会各个部门对于视频监视系统的需求越来越多.但目前的很多监视系统都跟具体的硬件相关,必须要具体的采集卡的支持才能实现.所以有必要开发一种具有通用性的视频监视系统,用普通的摄像头就能实现视频的采集.     基于DirectShow的开发能很灵活地控制音视频的效果,所以选择DirectShow这种可扩展性好的技术做开发对以后的应用升级很有帮助.此外, 为了实现流媒体传输控制的策略,流媒体的传输和回放也是应解决的问题之一.由Microsoft提供的Dire

视频监控-开发filter(基于directshow)后,如何在别的机器上使用呢

问题描述 开发filter(基于directshow)后,如何在别的机器上使用呢 开发filter(基于directshow)后,在我做调试的电脑上安装了win7的sdk包,然后配置了directshow的开发环境,然后自己编写了一个filter实现一些功能,调试后可以使用! 现在的问题是,如何在别的机器上使用呢!需要安装的电脑上没有安装Windows7的sdk也没有安装vs,就是实现自己开发的监控软件可以使用???求大神们帮助啊 解决方案 就是解决如何在别的机器上注册filter啊?用regs

基于DirectShow和FFmpeg的USB摄像头监控软件-转

第一个版本   ### 软件版本及实现功能 0.0.1  1. USB摄像头枚举和设备信息获取2. 实时视频观看3. 24小时不间断录像,录像文件支持暴风影音播放 ### 软件说明: 软件基于 DirectShow 和 FFMpeg开发 ### 软件使用说明: 1. 第一次使用(以管理员权限运行)打开系统配置进行设备获取2. 主界面双击树节点会打开摄像头视频 3. 默认支持录像,录像文件直接用暴风影音即可播放   有bug和建议请到下载地址1评论 下载地址1:    http://www.gdd

VS2010 C++学习(5):基于DirectShow的视频预览录像程序

VS2010 C++学习(5):基于DirectShow的视频 预览录像程序   学习VC++编制的基于DirectShow视频捕获程序,主要练习基于DirectShow程序的应用.   一.           主要内容:   1.        基于DirectShow视频预览: 2.        基于DirectShow视频录像:   二.           设计实现: (一).安装DirectShow 首先我们安装DirectShow SDK,由于现在directShow没有和dir

基于DirectShow/DES的MPEG-2音视频编辑软件的实现方案

引言 1994年欧洲制定的数字视频广播(DVB)标准和1996年美国联邦通信委员会(FCC)的先进电视制式委员会(ATSC)地面广播电视标准,在视频部分都采用了MPEG-2 标准.我国的CATV 数字网,也采用DVB 标准.MPEG-2 标准的出现,大大推动了数字视频业务的发展.越来越多的节目交换是以MPEG-2压缩方式进行的,使演播室制作涉及大量对MPEG编码压缩节目的处理,如非线性编辑涉及的不同节目间的切换.剪切和串编.在画面上加字幕.台标.实现淡入淡出等.其中节目剪切和串编是实现其他编辑功

基于Directshow框架使用Windows渲染器VMR叠加水印

对于windows系统,EVR/VMR9/VMR渲染器均提供了叠加静态图片的接口:SetAlphaBitmap(): 此接口支持静态图片的资源使用方式,一种是HDC,一种是SURFACE:使用发现,如果静态图片不规则,是有Alpha通道的不同取值形成,则通过HDC叠加的会有黑边存在: 对于EVR/VMR9可采用SURFACE,使用D3D创建,完美水印效果相对容易实现,略过:对于VMR渲染器,SURFACE需要基于DirectDraw创建离屏表面: 离屏表面创建后,静态图片数据使用决定着是否能完美

(DirectX系列09)DirectShow EDS应用编码分析

(DirectX系列09)DirectShow EDS应用编码分析 DES (DirectShow Editing Services),是一套基于DirectShow核心框架的编程接口.DES的出现,简化了视频编辑任务,弥补了DirectShow对于媒体文件非线性编辑支持的先天性不足.但是,就技术本身而言,DES并没有超越DirectShow Filter架构,而只是DirectShow Filter的一种增强应用. 本章通过DirectX 下timelinetest为例子详细介绍Eds应用编码

(DirectX系列05)DirectShow 视频采集

    前几小节陆续介绍了Directsound.Directshow音频处理方面的技术,还没有介绍视频方面的技术,从这节开始介绍视频采集方面的技术.今日刚好就介绍Directshow视频采集技术,其实DirectShow视频采集并不复杂,复杂的部分微软已经帮做好了,只需按照顺序将API连接起来即可,如下所叙述: 系统设备枚举     系统设备枚举器为我们按类型枚举已注册在系统中的Fitler提供了统一的方法.而且它能够区分不同的硬件设备,即便是同一个Filter支持它们.这对那些使用Windo

vc++-极其诡异的directshow问题

问题描述 极其诡异的directshow问题 用vc写了一个基于directshow的播放器,发现如下诡异问题:如果将可执行文件命名为game.exe,那么无法播放flv文件,但不报错,播放会立即停止.但是,如果可执行文件是其他名字,则可以播放.播放其他视频格式,比如avi则没有任何问题.求解.难道directshow或者flv的filter对game.exe这个名字有特殊照顾? 解决方案 啥系统,会有这样奇怪的问题? filter 是系统的,还是第三方的? 解决方案二: 你还要看看是否系统安全