|
|
@@ -121,65 +121,6 @@ This description of how to use the FFmpeg libraries with MSVC++ is based on |
|
|
|
Microsoft Visual C++ 2005 Express Edition. If you have a different version, |
|
|
|
you might have to modify the procedures slightly. |
|
|
|
|
|
|
|
@subsection Using static libraries |
|
|
|
|
|
|
|
Assuming you have just built and installed FFmpeg in @file{/usr/local}: |
|
|
|
|
|
|
|
@enumerate |
|
|
|
|
|
|
|
@item Create a new console application ("File / New / Project") and then |
|
|
|
select "Win32 Console Application". On the appropriate page of the |
|
|
|
Application Wizard, uncheck the "Precompiled headers" option. |
|
|
|
|
|
|
|
@item Write the source code for your application, or, for testing, just |
|
|
|
copy the code from an existing sample application into the source file |
|
|
|
that MSVC++ has already created for you. For example, you can copy |
|
|
|
@file{libavformat/output-example.c} from the FFmpeg distribution. |
|
|
|
|
|
|
|
@item Open the "Project / Properties" dialog box. In the "Configuration" |
|
|
|
combo box, select "All Configurations" so that the changes you make will |
|
|
|
affect both debug and release builds. In the tree view on the left hand |
|
|
|
side, select "C/C++ / General", then edit the "Additional Include |
|
|
|
Directories" setting to contain the path where the FFmpeg includes were |
|
|
|
installed (i.e. @file{c:\msys\1.0\local\include}). |
|
|
|
Do not add MinGW's include directory here, or the include files will |
|
|
|
conflict with MSVC's. |
|
|
|
|
|
|
|
@item Still in the "Project / Properties" dialog box, select |
|
|
|
"Linker / General" from the tree view and edit the |
|
|
|
"Additional Library Directories" setting to contain the @file{lib} |
|
|
|
directory where FFmpeg was installed (i.e. @file{c:\msys\1.0\local\lib}), |
|
|
|
the directory where MinGW libs are installed (i.e. @file{c:\mingw\lib}), |
|
|
|
and the directory where MinGW's GCC libs are installed |
|
|
|
(i.e. @file{C:\mingw\lib\gcc\mingw32\4.2.1-sjlj}). Then select |
|
|
|
"Linker / Input" from the tree view, and add the files @file{libavformat.a}, |
|
|
|
@file{libavcodec.a}, @file{libavutil.a}, @file{libmingwex.a}, |
|
|
|
@file{libgcc.a}, and any other libraries you used (i.e. @file{libz.a}) |
|
|
|
to the end of "Additional Dependencies". |
|
|
|
|
|
|
|
@item Now, select "C/C++ / Code Generation" from the tree view. Select |
|
|
|
"Debug" in the "Configuration" combo box. Make sure that "Runtime |
|
|
|
Library" is set to "Multi-threaded Debug DLL". Then, select "Release" in |
|
|
|
the "Configuration" combo box and make sure that "Runtime Library" is |
|
|
|
set to "Multi-threaded DLL". |
|
|
|
|
|
|
|
@item Click "OK" to close the "Project / Properties" dialog box. |
|
|
|
|
|
|
|
@item MSVC++ lacks some C99 header files that are fundamental for FFmpeg. |
|
|
|
Get msinttypes from @url{http://code.google.com/p/msinttypes/downloads/list} |
|
|
|
and install it in MSVC++'s include directory |
|
|
|
(i.e. @file{C:\Program Files\Microsoft Visual Studio 8\VC\include}). |
|
|
|
|
|
|
|
@item MSVC++ also does not understand the @code{inline} keyword used by |
|
|
|
FFmpeg, so you must add this line before @code{#include}ing libav*: |
|
|
|
@example |
|
|
|
#define inline _inline |
|
|
|
@end example |
|
|
|
|
|
|
|
@item Build your application, everything should work. |
|
|
|
|
|
|
|
@end enumerate |
|
|
|
|
|
|
|
@subsection Using shared libraries |
|
|
|
|
|
|
|
This is how to create DLL and LIB files that are compatible with MSVC++: |
|
|
|