FFmpeg 编程之VS环境搭建

ffmpeg下载链接:https://ffmpeg.zeranoe.com/builds/

共有2部分:shared和dev, shared包含动态链接库,dev包含头文件和lib文件。

解压后将share内bin目录和dev内部include和lib文件放置在同一目录下,如D:\ffmpeg-4.2.2-win64。

新建环境变量名称FFMPEG_DIR,值为D:\ffmpeg-4.2.2-win64,编辑系统环境变量path,增加%FFMPEG_DIR%\bin(该部分能够使的在运行编译后的exe时自动调用相关dll,无需单独拷贝dll到exe目录)。

新建工程:文件->新建->项目->Win32控制台应用程序,更改为配置管理器为64位,注意下载的时64位的库。

打开属性面板:解决方案资源管理器->右键单击项目->属性
头文件配置:配置属性->C/C++->常规->附加包含目录,输入“$(FFMPEG_DIR)\include”
导入库配置:
配置属性->链接器->常规->附加库目录,输入“$(FFMPEG_DIR)\lib”
配置属性->链接器->输入->附加依赖项,输入对应的FFMPEG库avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;
动态库不用配置。

注意:

在VC下使用FFMPEG编译好的库,不仅仅需要包含include和lib文件就行,还需要做以下几步。(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http://ffmpeg.zeranoe.com/builds/

(1)将mingw安装目录下的include的inttypes.h,stdint.h,_mingw.h三个文件拷到你ffmpeg库的目录下的include
(2)在_mingw.h文件的结尾处(在#endif 一行之前)添加了一行:
#define __restrict__
(2)把所有long long改成了__int64,如果是直接在vs2008下编译,则这个修改应该是不需要的(这步我没有遇到)
(3)修改.cpp文件

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define __STDC_CONSTANT_MACROS
#ifdef __cplusplus
extern "C"

#endif
{
        #include "ffmpeg/avutil.h"
        #include "ffmpeg/avcodec.h"
        #include "ffmpeg/avformat.h"

#ifdef __cplusplus
}
#endif

(4)如果遇到error C3861: 'UINT64_C': identifier not found
在common.h里加入定义如下:
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)

#endif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值