Skip to content

Latest commit

 

History

History
54 lines (26 loc) · 2.1 KB

CompileFFmpegAndPortAudioWithMSVC.md

File metadata and controls

54 lines (26 loc) · 2.1 KB

FFmpeg Build Script

I write a script to simplify the build. The script is in QtAV/scripts/build_ffmpeg.sh. It supports mingw gcc, msvc(2013), android, maemo5, maemo6(meego), sailfish os etc. Just put the script in ffmpeg source tree and run

./build_ffmpeg.sh

To cross build for android, maemo etc, you have to set some vars, for example NDK_ROOT for android. The vars can be set in config-android.sh, config-maemo5.sh etc.

Install

make install prefix=some_dir

ref: http://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows

Build with VC

Open vs prompt, go to msys' bin dir and run

sh --login -i

Then your are ready to use bash environment and with VC environment. Then go to ffmpeg source dir and run './build_ffmpeg.sh vc'

if get error about gawk, just ignore make -ki

Additional Tools for Windows

Your msys may lack of some command line tools that ffmpeg build system needs, such as pr, od, install, pkg-config, nasm. You can download one of build-ffmpeg-win-additinal-tools_msys2/gnuwin32.7z here: https://sourceforge.net/projects/qtav/files/depends/

extract and append it's bin dir to PATH. then you can build ffmpeg with gcc or vc.

If you build with vc and not vs2013, you have to download c99wrap

Use MinGW libraries in VC

If we build FFmpeg using mingw gcc, the *,lib are also created and installed in /usr/local/bin. So VC linker can use those. *,lib are generated by vc toolchain's lib.exe and link.exe if they are found. Otherwise dlltool is used. You may need additional link flag /SAFESEH:NO when linking to libs created by dlltool to avoid link error.

If gcc does not create *.lib, for example, portaudio, then you can do it yourself.

dlltool -m i386 -d libportaudio-2.dll.def -l portaudio.lib -D libportaudio-2.dll

the def file can be found in lib/.lib for portaudio

Build PortAudio

cmake is recommended. It's not difficult.

Build QtAV

https://github.com/wang-bin/QtAV/wiki/Build-QtAV

prebuilt FFmpeg+portuaido