We built FFmpeg with MSVC 2013 and the standard flags. We followed the steps from the FFmpeg website:

4.2 Microsoft Visual C++ or Intel C++ Compiler for Windows

FFmpeg can be built with MSVC 2012 or earlier using a C99-to-C89 conversion utility and wrapper, or with MSVC 2013 and ICL natively. 

You will need the following prerequisites: 
 C99-to-C89 Converter & Wrapper (if using MSVC 2012 or earlier) 
 msinttypes (if using MSVC 2012 or earlier) 
 MSYS2 
 YASM (Also available via MSYS2s package manager.) 

To set up a proper environment in MSYS2, you need to run msys_shell.bat from the Visual Studio or Intel Compiler command prompt. 

Place yasm.exe somewhere in your PATH. If using MSVC 2012 or earlier, place c99wrap.exe and c99conv.exe somewhere in your PATH as well. 

Next, make sure any other headers and libs you want to use, such as zlib, are located in a spot that the compiler can see. Do so by modifying the LIB and INCLUDE environment variables to include the Windows-style paths to these directories. Alternatively, you can try and use the --extra-cflags/--extra-ldflags configure options. If using MSVC 2012 or earlier, place inttypes.h somewhere the compiler can see too. 

Finally, run: 

For MSVC:
./configure --toolchain=msvc

For ICL:
./configure --toolchain=icl

make
make install

