博客日历
2025年06月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
用Visual C++ 6.0编译xvid
0.xvid简介
Xvid(旧称为XviD)是一个开放源代码的MPEG-4视频编解码器,它是基于OpenDivX而编写的。
Xvid的主要竞争对手是DivX。但Xvid是开放源代码的,而DivX则只有免费(不是自由)的版本和商用版本。
详见百度百科:http://baike.baidu.com/view/30246.htm?fr=ala0_1
1.下载xvid源码
官方网站:http://www.xvid.org/
目前最新版本是Xvid 1.2.2 stable release(今天:2010年4月24日)
2.编译环境的设置
2.1 下载安装nasm汇编器(因为xvid的部分程序是用汇编写的)
下载地址:http://sourceforge.net/projects/nasm/
最新版本是nasm-2.07-installer.exe(今天:2010年4月24日)
这里将其安装在D:\NASM下
2.2 安装新版的Windows SDK(编译)
这里安装的是Microsoft Platform SDK for Windows XP SP2
下载地址:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
2.3 安装DirectX SDK(包括DirectShow SDK)
2.4 设置Visual C++ 6.0
a.Include files(添加在最前面)
D:\DXSDK\Include
D:\DXSDK\Samples\C++\DirectShow\BaseClasses
D:\Program Files\Microsoft Platform SDK for Windows XP SP2\Include
b.Library files(添加在最前面)
D:\DXSDK\Lib
D:\DXSDK\Samples\C++\DirectShow\BaseClasses\lib
c.Executable files(最后面)
D:\NASM
3.开始编译
3.1 几个VC++的project分别是
a.xvidcore-1.2.2\xvidcore\build\win32\xvidcore.dsw
包括:
libxvidcore.dsp
libxvidcore_static.dsp
xvid_bench.dsp
xvid_decraw.dsp
xvid_decraw_static.dsp
xvid_encraw.dsp
xvid_encraw_static.dsp
b.xvidcore-1.2.2\xvidcore\dshow\dshow.dsp
c.xvidcore-1.2.2\xvidcore\vfw\vfw.dsp
依次编译他们即可。
3.2 遇到错误的处理方法
a.提示xvidcore-1.2.2\xvidcore\src\plugins\plugin_2pass2.c(497) : error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64
修改如下文件:
xvidcore-1.2.2\xvidcore\src\portab.h
行57:# define uint64_t unsigned __int64改为
# define uint64_t __int64
b.提示xvidcore-1.2.2\xvidcore\vfw\src\status.c(246) : error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64
修改如下文件:
xvidcore-1.2.2\xvidcore\vfw\src\status.h
行9:# define uint64_t unsigned __int64改为
# define uint64_t __int64
4.备注
调用压缩功能时会显示一个状态窗口,要让它不显示的话,需要在编译vfw工程时,修改
xvidcore-1.2.2\xvidcore\vfw\src\config.c的297行为:
{"display_status", ®.display_status,0},
上一篇: DirectShow.2 DirectShow原理
下一篇: 0 error(s), 0 warning(s)
分类:Win32/C++ 查看次数:6944 发布时间:2010/4/14 11:17:39