Is it possible to build ffmpeg x64 on Windows?

ぐ巨炮叔叔 提交于 2019-12-05 22:37:53

No, it cannot be done. MS compiler doesn't support #include_next. Plus, many other problems... You need MinGW.

Assuming with x64 you mean the standard 64-bit version, yes it is possible. See the fate page for all tested builds of FFmpeg, there's various 32- and 64-bit versions of Visual Studio in that list, including VS2013 and VS2015 64-bit. Search for "Microsoft (R) C/C++ Optimizing Compiler Version 18.00.40629 for x64" (or "19.00.24215.1") or "VS2013"/"VS2015", all the way at the bottom. For exact build options, see here for 2013 or here for 2015. The important part is to open a Windows shell with the 64-bit commandline build tools in your $PATH and open a msys shell from there, and then run configure using the --arch=x86_64 --target-os=win64 --toolchain=msvc options. For more detail, see the MSVC compilation wiki page.

I used to compile ffmpeg on a linux machine with MinGW, but now I'm able to compile on a windows machine, in my case Windows 10.

NOTE: For me it only worked for ffmpeg versions >= 3.0 and I tested using VS 2013 and 2015

Few steps but very important:

Download and install (except YASM):

Steps:

  1. Install MSYS2 to a fixed folder (eg.: C:\Dev\msys64)
  2. Run msys2.exe
  3. Execute command "pacman -S make gcc diffutils" and press "Y" to install
  4. Close msys2
  5. Rename C:\Dev\msys64\usr\bin\link.exe to some other name (eg.: msys2_link.exe)
  6. Copy and rename "yasm--win64.exe" to "C:\Dev\yasm.exe"
  7. Add "C:\Dev" to environment variables PATH
  8. Run VS2013/2015 x86 (for x86) or x64 for (x64) Command Prompt
  9. Execute "C:\Dev\msys64\msys2_shell.cmd -msys -use-full-path"
  10. On the msys2 window execute "which cl" and you should see the path of your VS
  11. Execute "which link" and you should also see the path of your VS
  12. Go to the ffmpeg source path (eg.: "cd /c/ffmpeg3.3")
  13. Run ./configure and make

I use this configuration:

./configure \
    --toolchain=msvc \
    --arch=x86_64 \
    --enable-yasm \
    --enable-asm\
    --enable-shared \
    --enable-w32threads \
    --disable-programs \
    --disable-ffserver \
    --disable-doc \
    --disable-static \
    --prefix=/c/ffmpeg3.3/DLLS

NOTE2: If you used the last line --prefix=/c/ffmpeg3.3/DLLS, as a final step, run make install and the binaries will be copied to that path

Hope it helped.

Best of luck

There is a How-to on the FFmpeg Page itself.It didn't work for me so far, but at least you should get rid of the C99 Errors and so on.

https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC

Maybe you try installing this stuff (I had to download pkg-config seperatly with Msys2 for it to work) and follow these steps.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!