Download XVID Source Code
这里使用的是xvidcore-1.1.2版本.
Prepare Build Environment
Visual Studio 6
Microsoft Visual C++ 6.0 Enterprise Edition
Service Pack 5 for Visual Studio 6
http://msdn2.microsoft.com/en-us/vstudio/aa718363.aspx
注意, 如果只安装了sp6而没有安装sp5, Visual C++ Processor Pack是无法安装的.
Visual C++ 6.0 Processor Pack
http://msdn2.microsoft.com/zh-cn/vstudio/Aa718349.aspx
NASM - the famous Netwide Assembler
我用的是0.98.3.5版本. 将nasm.exe放在D:Program FilesMicrosoft Visual StudioVC98Bin目录.
DirectX 9.0 SDK
Microsoft DirectX 9.0 SDK
安装在D:DXSDK目录.
然后打开Microsoft Visual C++中, Tools->Options->Directories中, “Include files”中添加
D:DXSDKInclude
D:DXSDKSAMPLESC++DIRECTSHOWBASECLASSES
在”Library Files”添加
D:DXSDKLib
D:DXSDKSAMPLESC++DIRECTSHOWBASECLASSESRELEASE
使用Visual C++打开D:DXSDKSamplesC++DirectShowdshow.dsw项目. 编译BaseClasses files的Win32 Release版本, 编译成功后在D:DXSDKSamplesC++DirectShowBaseClassesRelease会有一个”STRMBASE.lib”文件.
Compile XVID
Xvid Core
首先看一下xvidcore-1.1.2/doc/INSTALL文件.
使用VC++打开${xvidcore}/build/win32/xvidcore.dsw项目.
将libxvidcore- Win32 Release设为active project
Build the project (F7), 编译成功后会在${XVIDCORE}/build/win32/bin/下产生一个xvidcore.dll文件.
VFW (Video For Windows)
然后使用VC++打开${XVIDCORE}/vfw/vfs.dsw项目, 编译后会在${XVIDCORE}/vfs/bin/目录下生成xvidvfs.dll文件, 并执行命令:
copy "..buildwin32binxvidcore.dll" ".bin" (Project Setting->Post-Build step)
将xvidcore.dll拷贝到与xvidvfs.dll相同的目录.
在${XVIDCORE}/vfs/bin/目录下, 右键点击”xvid.inf”, 选择”安装”. 要看一下是否安装成功, 检查一下是否存在”控制面板->声音和音频设备->硬件->视频编码解码器->属性->XviD MPEG-4 Video Codec”.
DSHOW
使用VC++打开$(XVIDCORE)/dshow/dshow.dsw项目, 编译后会在$(XVIDCORE)/dshow/bin目录下生成xvid.ax文件, 执行命令
regsvr32 $(XVIDCORE)/show/bin/xvid.ax |
在GraphEdit中查看, 应该可以看到注册上的filter
找一个xvid编码格式的avi文件, 其属性如图所示:
在GraphEdit中, 插入”File Source (Async.)” filter, 选择avi文件. 然后选择”XviD MPEG-4 Video Decoder” filter, 连接”File Source”的Output和”XviD MPEG-4 Video Decoder”的”XForm In”, GrapEdit会自动在中间加入一个”AVI Splitter” filter, 然后鼠标右键点击”XviD MPEG-4 Video Decoder”的”XForm Out”, 在弹出菜单中选择”Render Pin”, GraphEdit会自动加入”Video Renderer” filter, 这样, 一个完整的Filter Graph就构建成功, 如下图所示.
附一些关于XviD DirectShow Filter的讨论
http://www.directshow.cn/forum/search.php?searchid=11&orderby=lastpost&ascdesc=desc&searchsubmit=yes
http://list.xvid.org/pipermail/xvid-devel/2005-March/004915.html
Reference
http://www.discdude.net/xvid/compile.html
没有评论:
发表评论