FFmpeg的使用Visual Studio中(Use FFmpeg in Visual Studi

2019-06-17 13:32发布

我试图使用FFmpeg的一个C ++项目在Visual Studio 2010中我想包括在库,静态链接文件。 喜欢简单的程序的libavcodec / API-example.c无错地编译和启动时,它们会出现在错误视图中没有连接错误。 然而,一个消息框,启动应用程序,说avutil-51.dll丢失后显示出来。 你有关于如何解决这个问题的任何提示?

我使用了最新开发构建http://ffmpeg.zeranoe.com/builds/ 。 然后我指定包括作为附加包括目录,avcodec.lib; avfilter.lib; avformat.lib; avutil.lib作为附加的依赖性和IIb作为附加库目录。

Answer 1:

随着FFmpeg的,您可以:

  1. 使用与Visual Studio生成预建的.lib / .dll文件和二进制文件将依赖于AV * .dll文件
  2. 从源代码到使用非Microsoft编译静态库编译FFmpeg的,然后链接到您的Visual Studio项目(介意在这种情况下,LGPL / GPL许可证)

您开发项目按上述第1项。 你必须使用和重新发布AV * .DLL相关文件与你的二进制文件有它的工作。

在“静态” Zeranoe意味着库静态链接到像二进制文件ffmpeg.exe 。 不要用静态混淆.lib链接到你的二进制库。 Zeranoe不提供这些服务。

在Zeranoe你会发现这样的档案:

  • “共享” 的ffmpeg-20120726-GIT-236ecc3-Win32的shared.7z:
    • bin/avcodec-54.dll
    • bin/avutil-51.dll
    • 等等
  • “开发” 的ffmpeg-20120726-混帐236ecc3-Win32的dev.7z:
    • lib/avcodec.lib
    • lib/avutil.lib

“共享”档案已建成的FFmpeg动态链接DLL库。 “开发”档案库,你可以在你的项目中使用,以在ffmpeg.exe确实在共享档案的方式,以及链接到这些LIB文件。

所以,你的Visual Studio项目可以很简单,因为这( 在这里浏览完整的源代码 ):

extern "C" 
{
        // NOTE: Additional directory ..\zeranoe.com\dev\include gets to the files
        #include "libavcodec\avcodec.h"
}

// NOTE: Additional directory ..\zeranoe.com\dev\lib gets to the files
#pragma comment(lib, "avcodec.lib")

// NOTE: Be sure to copy DLL files from ..\zeranoe.com\shared\bin to the directory of 
//       the FFmpegApp.exe binary
int _tmain(int argc, _TCHAR* argv[])
{
        _tprintf(_T("Trying avcodec_register_all... "));
        avcodec_register_all();
        _tprintf(_T("Done.\n"));
        return 0;
}

你会提取“开发”归档到dev的Visual Studio项目的子目录中,你会增加dev\include在附加包含路径。 这将足以构建二进制,这将是依赖于av*.dll

这是当你提取“共享”的存档,并从它复制的DLL bin到您的二进制文件的目录。 和你的应用程序会从那里工作:

C:\FFmpegApp\Release>FFmpegApp.exe
Trying avcodec_register_all... Done.

2016年1月20日更新 :在存储库中的项目升级到Visual Studio 2013(旧的VS 2010码),并针对当前Zeranoe建立检查。 样本和说明保持良好的信誉。

需要注意的是Win32建立在Visual Studio中假设你从Zeranoe使用32位的文件。 为了建立64位版本,下载各个文件和分别设置Visual C ++项目,建立x64 (或,最好,同时下载,设置两个配置和分别构成包括/ lib中路径)。 匹配失败位数将导致错误,在下面的评论中提到。



文章来源: Use FFmpeg in Visual Studio