是否可以在Windows上构建ffmpeg x64?

时间:2016-12-28 08:52:35

标签: build ffmpeg msvc12

真正的答案可能是" no",但仍然只是要仔细检查。 有没有人能够在Windows(VS2013或VS2015)上构建ffmpeg x64?我知道没有经过大量修改就无法使用公开资源。但是,如果有人这样做,并且他愿意分享一些技巧......

编辑: 有趣的是,大多数所需的x64工具用于运行" configure"在没有依赖性的情况下分发,并且不可能将它们放在任何地方。看起来像一个专业的拖钓。

EDIT2: 有成千上万的错误:

fatal error C1083: Cannot open include file: 'features.h': No such file or directory

features.h缺少许多其他头文件。有没有解决方法,或者切换到Linux是唯一的选择?

4 个答案:

答案 0 :(得分:2)

假设x64是指标准的64位版本,是的,这是可能的。有关FFmpeg的所有测试版本,请参阅fate页面,该列表中有各种32位和64位版本的Visual Studio,包括VS2013和VS2015 64位。搜索“Microsoft(R)C / C ++优化编译器版本18.00.40629 for x64”(或“19.00.24215.1”)或“VS2013”​​/“VS2015”,一直在底部。有关确切的构建选项,请参阅此处2013或此处2015。重要的是在$PATH中使用64位命令行构建工具打开Windows shell,然后从那里打开msys shell,然后使用configure选项运行--arch=x86_64 --target-os=win64 --toolchain=msvc。有关更多详细信息,请参阅MSVC编译wiki页面。

答案 1 :(得分:1)

我曾经在使用MinGW的linux机器上编译ffmpeg,但现在我可以在Windows机器上编译,在我的情况下是Windows 10。

注意: 对我来说,它仅适用于ffmpeg版本> = 3.0并且我使用VS 2013和2015进行了测试

几个步骤,但非常重要:

下载并安装(YASM除外):

步骤:

  1. 将MSYS2安装到固定文件夹(例如:C:\ Dev \ msys64)
  2. 运行msys2.exe
  3. 执行命令“pacman -S make gcc diffutils”并按“Y”进行安装
  4. 关闭msys2
  5. 将C:\ Dev \ msys64 \ usr \ bin \ link.exe重命名为其他名称(例如:msys2_link.exe)
  6. 将“yasm - win64.exe”复制并重命名为“C:\ Dev \ yasm.exe”
  7. 将“C:\ Dev”添加到环境变量PATH
  8. 运行VS2013 / 2015 x86(适用于x86)或x64(x64)命令提示符
  9. 执行“C:\ Dev \ msys64 \ msys2_shell.cmd -msys -use-full-path”
  10. 在msys2窗口中执行“which cl”,您应该看到VS的路径
  11. 执行“哪个链接”,您还应该看到VS的路径
  12. 转到ffmpeg源路径(例如:“cd /c/ffmpeg3.3”)
  13. 运行./configure并制作
  14. 我使用此配置:

    ./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
    

    <强>注2: 如果您使用了最后一行 --prefix = / c / ffmpeg3.3 / DLLS ,作为最后一步,请运行make install,二进制文件将被复制到该路径

    希望它有所帮助。

    祝你好运

答案 2 :(得分:0)

FFmpeg页面本身有一个操作方法。到目前为止它对我不起作用,但至少你应该摆脱C99错误等等。

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

也许你尝试安装这些东西(我必须与Msys2分开下载pkg-config才能工作)并按照以下步骤操作。

答案 3 :(得分:0)

不,它无法完成。 MS编译器不支持#include_next。此外,还有许多其他问题......你需要MinGW。