您的位置:首页 > 其它

MPEG-4 Xvid VC6.0编译指南

2010-03-07 22:28 204 查看
From: http://www.chinavideo.org/index.php?option=com_content&task=view&id=127&Itemid=5
David
Carroll,Peter Lee

2006-01-09
OK, you've got your copy of Microsoft Visual C++ 6.0. You should
be able to just download
the source code
, click on the project file, and a few second later,
you'll have the Xvid Binary. Right? Well, unfortunately, it's not that
easy. However, it's not that hard either.

I. Downloading Necessary Files

Xvid depends on a number of libraries and programs that do not come
standard with Microsoft Visual C++ 6.0.

You need:

1) Service Pack 5 for Visual Studio 6
- http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp5/default.asp
The
service pack contains all the latest bug fixes for Visual C++ 6.0 as
well as updates to essential libraries. You can download the service
pack or order it on CD from the M
icros
oft D
evelopers
N
etwork (MSDN) by clicking the link above.

vc6补丁,所选的语言和VC的语言一致就可以了

2) Visual C++ 6.0 Processor Pack
- http://msdn.microsoft.com/vstudio/downloads/tools/ppack/default.aspx

The
processors pack adds support for Intel's SSE, SEE2 and AMD's 3DNow!
instructions.

支持处理器多媒体汇编指令的补丁

3) NASM - the famous Netwide Assembler
- http://sourceforge.net/projects/nasm/

Xvid
uses NASM to "compile" the code written in assembly language (the *.asm
files). Download the Win32 binary.

4) DirectX 9.0 SDK
- http://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp

To
build the DirectShow filter, you need the DirectX SDK (S
oftware D
evelopment
K
it). Unfortunately for dial-up users, the ~200MB DirectX SDK is
no longer available on CD.

5) (optional) Pthreads for Win32
- http://sources.redhat.com/pthreads-win32/

You
will need the pthreads library if you want to build the SMP version of
the xvid.dll. This is not needed for most users since most users don't
have dual processing systems.

II. Configuring the Compiler

1) Installing Service Pack 5

The Service Pack is easy to install since it comes with an installer.
The installer's filename is "setupsp5.exe". Just find the file and
double-click it.

自解压后,运行setupsp5.exe

2) Installing Visual C++ Processor Pack

Double-click
"vcpp5.exe" to install.
3) Installing and Configuring NASM

a) Unzip the file to an easy to remember directory of your choosing
(i.e., "C:/DEVELOP/NASM")

b) Xvid expects the filename to be
"nasm.exe" (probably because all other versions except the Win32 version
has that name). For some reason, the Win32 version NASM has a filename
of "nasmw.exe." I recommend making a copy of "nasmw.exe" and renaming it
"nasm.exe."

c) Load up Microsoft Visual C++.

i) Click on the "Tools" menu and select "Options."

ii) Click on
the "Directories" tab.

iii) Select "Executable Files" from the "Show
Directories For" dropdown box.

iv) Add the path to NASM (e.g.,
"C:/DEVELOP/NASM")

文件名一定要改成nasm.exe ,拷贝到Microsoft Visual
Studio6/vc98/bin下即可

4) Installing and Configuring the DirectX SDK

The DirectX SDK comes with an installer. Just double-click on the
"setup.exe" file and follow the prompts.

To configure the DirectX SDK:

a) Load up Microsoft Visual C++.

b) Click on the "Tools" menu and
select "Options."

c) Click on the "Directories" tab.

d) Select
"Include Files" from the "Show Directories For" dropdown box.

e) Add
the following entry: "<path to DirectX
SDK>/SAMPLES/C++/DIRECTSHOW/BASECLASSES" where you replace <path
to DirectX SDK> with the actual path to the DirectX SDK (i.e.,
"C:/DEVELOP/DXSDK").

f) Use the little up arrow icon to move the
entries to the top of the list.

III. Compiling XVID

Now you can download the
source code
, click on the workspace file, and a few second later,
you'll have the Xvid Binary. Just make sure you build the xvidcore
first.

IV. Installing XVID

For Windows users, there are really only three files you have to be
concerned with:

1) xvid.dll and xvid.inf -
both of these files are in the
"<path to Xvid source code>/vfw/bin/" directory. The "xvid.dll"
file is the Xvid Video for Windows codec. This file is necessary if you
wish to encode any videos using a Video for Windows compliant program
(i.e., almost every video editor out there). In theory, you should be
able to play back Xvid files in the Windows Media Player using this file
as well although this functionality appears to be broken at this point.
Therefore, if you wish to play back files in a media player, install
the "xvid.ax" file (see below). The "xvid.inf" file is the setup
information file. Basically, this file tells Windows how to install
"xvid.dll".

To install the Xvid Video for Windows codec (aka xvid.dll)

a) Simply right-click the "xvid.inf" and select "Install" from the
context menu.

That's it, you're done. To verify that the file has been installed
correctly, go to the Control Panel and select "Multimedia", then click
on the "Devices" tab and finally see if "XVID" is listed under the
"Video Compression Codecs" section. If you wish to uninstall the Xvid
codec, select "XVID MPEG-4 CODEC" from the "Add/Remove Program" list in
the Control Panel.

控制面板》声音与多媒体,选择硬件tab,...

2) xvid.ax -
This file is in the "<path to Xvid source
code>/dshow/bin/" directory. The "xvid.ax" file is the Xvid
DirectShow filter. Microsoft has decreed that DirectShow shall replace
Video for Windows, so in theory you won't need "xvid.dll". However, this
isn't true. Instead, the DirectShow filter is used mostly for playback
by newer media players. Most video programs still depend on the Video
for Windows codec for encoding.

解码,作播放用

To install the Xvid DirectShow filter (aka xvid.ax)

a) First copy the "xvid.ax" file to a safe place (i.e., "C:/Program
Files/xvid"). The Video for Windows codec is automatically copied to the
Windows system directory when you install it. The DirectShow filter is
not. Therefore, if you delete the source code directory, you lose your
DirectShow filter.

b) Once you have copied the "xvid.ax" file to a
safe place, go to the Start Menu and select "Run." Type "<path to
Windows>/system/regsvr32 <path to xvid.ax>/xvid.ax" (i.e,
C:/windows/system/regsvr32 C:/Program Files/xvid.ax).

xvid.ax拷贝某个目录后,然后开始》运行》
regsvr32 xvid.ax所在的目录

That's it, you're done. There really is no easy way to verify that
the DirectShow filter was properly installed other than to play a Xvid
encoded video. To uninstall the DirectShow filter, go to the Start Menu
and select "Run." Type "<path to Windows>/system/regsvr32 /u
<path to xvid.ax>/xvid.ax"

V. Troubleshooting FAQ

Q
. Why do I get the following error message:

Assembling ../../src/utils/x86_asm/mem_transfer_mmx.asm

Bad
command or file name

A.
You did not correctly install NASM.

Q
. What causes this error: "CXvidDecoder.obj : error
LNK2001: unresolved external symbol _MEDIASUBTYPE_IYUV"?

A
. This is caused by an outdated strmbase.lib. You need to
build a new one. The path to the project file is <path to DirectX
SDK>/Samples/C++/DirectShow/BaseClasses/baseclasses.dsw. After you
build the library, I recommend you copy the strmbase.lib file to
<path to DirectX SDK>/lib.

Q
. I have ffdshow
, do I need
to install the XviD DirectShow filter?

A
. No, not really.

Q
. When trying to open a workspace file (.dsw), I get an
"empty" workspace (i.e., there are no source files listed) and/or

When
trying to open a project file (.dsp), I get a"This makefile was not
generated by Developer Studio" error.

A
. Often, this can be caused by having UNIX line breaks (LF)
in the .dsw and .dsp files, as opposed to Windows line breaks (CR/LF).
It is interesting to note that .dsw and .dsp files are just text files;
you can open them up in any text editor. If you open the .dsw and .dsp
files in a text editor that can't handle UNIX line breaks (namely
Notepad) you will probably see big, black squares at the end of lines.
You can "fix" this error by following this procedure.

a) Do NOT let Microsoft Visual C++ attempt to fix the problem! Press
"No" when prompted.

b) Open the .dsw and .dsp files in a text editor
that understands UNIX line breaks. WordPad is one and it is available
with most copies of Windows.

c) Once open, simply re-save the file
(In WordPad, make sure you set the save as type to "Text Document"). All
UNIX line breaks should be converted to Windows line breaks.

Also, I have noticed that some "archive" utilities like Winzip
will perform the UNIX ->
Windows line break conversion automatically so I recommend you use those
utilities. At the time of writing, archive utilities that don't perform
this conversion include PowerArchiver and WinRAR.

Q
. I get lots of error messages similar to the following:

../../src/quant/x86_asm/quantize_mmx.asm:429: parser: instruction
expected

../../src/quant/x86_asm/quantize_mmx.asm:430: symbol
`movdqa' redefined

A
. You are using an old version of NASM, download a newer
version from http://sourceforge.net/projects/nasm/

Q
. I get a few "fatal: unable to open include file
`colorspace_mmx.inc'" errors.

A
. This is apparently caused by versions of NASM newer than
0.98.37. For whatever reason, NASM seems to have trouble dealing with
relative paths. To fix the problem:

a) Open up the project settings by pressing ALT-F7 or
selecting "Settings" from the "Project" menu.

b) Find the following
three files under "xvidcore/image/image_asm":

1) colorspace_rgb_mmx.asm

2) colorspace_yuy_mmx.asm

3)
colorspace_yuyv_mmx.asm

For each of the files, click on the "Custom Build" tab and change the
line in the "Commands" box to read:

"nasm -f win32 -DPREFIX -I"$(InputDir)"/
-o
$(IntDir)/$(InputName).obj $(InputPath)"

Instead of:

"nasm -f win32 -DPREFIX -I"$(InputDir)" -o $(IntDir)/$(InputName).obj
$(InputPath)"

Notice the extra "/" between the "(InputDir)" and "-o".

Alternately, you could just downgrade back to NASM 0.98.36
.

Q.
What does "error C2520: conversion from unsigned __int64
to double not implemented, use signed __int64" mean?

A.
It means you need to install the Visual C++ Processor Pack.

Q.
I have Visual C++ 6.0 Standard. Microsoft says I need
the Professional or Enterprise edition in order to install the Processor
Pack. Does this mean I am out of luck?

A.
No. But it does mean you can't use the installer. Instead,
you have to manually install the Processor Pack. Bascially, you have to:

a) Extract the files to a temporary directory using your favorite
archive utilitly (i.e., Winzip).

b) Find the "vcpp.inf" file in the
temporary directory and open it. Inside that file is all the information
you need to install the processor pack manually.

Hint: An entry like:

[CopyToMsdev98Bin]

EnableSIMD.reg,Enabl__1.reg,32

means you should rename "Enable__1.reg" to "EnableSIMD.reg" and copy
it to the <path to Visual C++>/MsDev98/bin directory.

c) Using the information in "vcpp.inf", copy the files from the
temporary directory to the proper directories, renaming if necessary.

Q.
What causes this error: "C:/xvid/src/image/qpel.c(84) :
fatal error C1083: Cannot open include file:
'C://xvid//src//image//qpel.c': No such file or directory."

A.
Not exactly sure why that happens - it should work. A quick
fix is to open "qpel.c" and replace every instance of

#include __FILE__

with

#include "qpel.c"

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: