ffdshow是一个非常强大的DirectShow解码器,封装了ffmpeg,libmpeg2等解码库。它也提供了丰富的加工处理选项,可以锐化画面,调节画面的亮度等等。不止是视频,FFDShow现在同样可以解码音频,AC3、MP3等音频格式都可支持。并且可以外挂winamp 的DSP插件,来改善听觉效果。一个词形容:强大。
因为项目的要求,需要对ffdshow进行二次开发,正好有这个机会,分析研究一下ffdshow的源代码。
ffdshow项目的资源可以从sourceforge下载。包括编译好的程序,以及原代码等,下载地址:http://sourceforge.net/projects/ffdshow-tryout/
注意:sourceforge上有两个版本的ffdshow:ffdshow以及ffdshow-tryout。其中前一个版本很早之前已经停止开发了,因此我们需要选择后一个(ffdshow-tryout)。
下载源代码的方法不再赘述,下面直接进入正题。源代码下载后,需要进行编译,推荐使用源代码根目录下的bat脚本一次性完成所有的资源编译。
编译完成后我们就可以打开源代码根目录里的工程了。我自己的开发环境是VC2010,打开后工程如下图所示(解决方案的名字被我修改了= =):
由图可见,ffdshow由一大堆工程组成,乍一看给人一种杂论无章的感觉,其实大部分工程我们不用去理会,我们重点研究最重要的工程就是那个名字叫“ffdshow”的工程。
下面我介绍几个最重要的文件夹里包含的代码的功能:
audiofilters:音频滤镜都在这里面(例如EQ,调节高低频等)
baseclasses:微软自带directshow的sdk里面就有,主要是微软为了方便DirectShow开发而提供的一些基本的类
codecs:支持的解码器都在这里(例如libavcodec,libmpeg2等)
convert:色彩转换的一些功能(没太用过)
decss:解除版权加密的一些功能(没太用过)
dialog:音频视频滤镜的配置页面
doc:文档,不是程序
ffvfw:VFW相关(目前没太用过)
Header Files:核心代码的头文件
imgfilters:视频滤镜都在这里(显示QP/MV,加LOGO,显示视频信息等)
Resource Files:资源文件
settings:音频视频滤镜的配置信息
Source Files:核心代码的源文件
subtitles:字幕相关的功能
以上用红色标出的,是我们二次开发中最有可能会涉及到的三个部分。掌握了这三个部分,就可以往ffdhow中添加自己写的滤镜(注意:这里说的是视频滤镜,音频的方法是一样的)
黄色背景标出的部分,虽然我们可能不需要做出什么改变,但是为了了解ffdshow的架构,我们需要分析其中的代码。
打了好多字啊。。。休息休息先
相关推荐
ffdshow的源代码是学习视频解码和处理技术的宝贵资源,对于开发者来说,深入研究它的实现细节有助于提升在多媒体领域的专业技能。 首先,让我们来看看ffdshow的核心功能: 1. **视频解码**:ffdshow能够解码多种...
ffdshow 源代码分析1 : 整体结构 302 ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog) 304 ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings) 312 ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜...
ffdshow 源代码分析 1 : 整体结构 288 ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分 Dialog) 290 ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings) 297 ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜...
5. **滤波器开发**:ffdshow源代码提供了一个很好的实例,展示了如何编写DirectShow滤波器,包括注册滤镜、实现滤镜接口、处理媒体样本等。 6. **编译与调试**:获取源代码后,开发者可以尝试在Visual Studio等环境...
ffdshow是一款著名的开源视频...总之,ffdshow源代码的分析和编译是一个深度学习DirectShow框架、视频解码技术以及C++编程的实践过程,对于任何希望在多媒体领域深化技术理解的开发者来说,都是一个宝贵的学习机会。
开发者可以通过分析和修改FFDSHOW源代码,学习到以下知识点: - **视频和音频解码原理**:了解各种编码标准的内部工作方式,例如H.264的宏块解码、熵解码等。 - **DirectShow编程**:学习如何创建和使用...
这个压缩包"ffdshow_source_2011_12_28 ffdshow源码(2011-12-28)"包含了2011年12月28日版本的ffdshow的源代码,对于开发者来说,这是一个宝贵的资源,可以深入了解其内部工作原理并进行二次开发或定制。 1. **...
在本压缩包中,你将找到FFDShow在directshow下的源代码,这对于深入理解DirectShow架构以及H.264等现代视频编码技术具有重要的学习价值。 首先,我们来探讨一下FFDShow的主要功能。FFDShow主要负责在DirectShow播放...
ffdshow的源码分析可以帮助开发者深入理解视频解码的过程,包括如何解析视频流、提取帧数据、进行颜色空间转换以及如何应用各种解码优化技术。对于想要自定义解码器功能或实现特定视频处理算法的开发者来说,这是一...
- 学习FFDShow的源代码,了解如何高效地处理视频解码和编码。 - 创建自定义的解码器和编码器,以适应特定的需求或优化性能。 - 将FFDShow的功能集成到多媒体播放器、视频编辑软件或其他多媒体应用中。 - 开发新的...
这个压缩包包含了ffdshow的源代码、SDK以及相关的开发手册,对于想要深入理解ffdshow工作原理或基于它进行二次开发的IT从业者来说是宝贵的资源。 首先,让我们来看看FFmpeg SDK开发手册。FFmpeg是一个跨平台的开源...
6. **WinFormCameraDemo**:这个文件可能是演示程序的源代码,展示了如何在Windows Forms环境下利用DirectX.Capture和ffdshow实现摄像头操作。开发者可以通过分析和运行这个示例代码,学习如何在实际项目中集成这些...
ffdshow的源码揭示了这一过程,包括如何读取和解析视频流,如何将压缩的数据解码为原始的像素数据,以及如何将这些数据渲染到屏幕上。源码中包含的解码器支持多种编码标准,如MPEG-4 ASP、DivX、Xvid、H.264等,这些...
描述中提到的“完整的FFDSHOW代码”意味着这个压缩包包含了FFDShow解码器的所有源代码,开发者可以通过这些源代码了解FFDShow的工作原理,甚至对其进行修改或扩展以适应特定需求。源代码通常对开发者来说是极其宝贵...
ffdshow20130525x64解码器是一款专为64位操作系统设计的视频解码工具,其主要功能是帮助用户解析和播放各种格式的视频文件。在数字媒体领域,解码器扮演着至关重要的角色,因为不同格式的视频文件需要对应的解码器...
ffdshow的源代码采用C++编写,遵循LGPL许可协议,这意味着其他开发者可以自由地使用、修改和分发这个软件。由于其开源性质,ffdshow获得了社区的持续维护和支持,不断更新以适应新的编码标准和技术进步。此外,...
FFDShow是一款强大的DirectShow解码过滤器,它支持多种视频和音频格式,而在此场景中,我们将关注FFDShow如何用于摄像头录像和拍照。FFDShow与ffmpeg结合使用,可以实现高质量的视频捕获和图像捕捉功能。下面将详细...
ffdshow播放器是一款知名的视频解码工具,尤其在过去的数年间在Windows系统中广受欢迎。它主要用于处理和解码各种视频格式,使用户能够在不支持这些格式的默认媒体播放器上观看电影或视频。ffdshow的名称来源于其...
ffdshow的核心功能在于解码,它能够处理如H.264、DivX、XviD、MPEG-4 ASP、MPEG-1、MPEG-2、VC-1、WMV等常见的视频编码格式,以及AC3、DTS、AAC、MP3等音频编码格式。通过集成在播放器(如Media Player Classic或Pot...
ffdshow的dshow filter,支持dxva的h264和vc1硬解。