ffmpeg Mac xcode开发环境搭建

一、环境

macOs :
10.15.3 (19D76)

Xcode:
Version 11.7 (11E801a)

ffmpeg:
4.3.1

二、安装

使用brew工具安装

brew install ffmpeg

安装完成后,可以在/usr/local/Cellar/ffmpeg/4.3.1_4/目录下找到:
头文件、库文件、可执行文件,分别位于include、lib、bin子目录。

$pkg-config --cflags --libs libavcodec
-I/usr/local/Cellar/ffmpeg/4.3.1_4/include -L/usr/local/Cellar/ffmpeg/4.3.1_4/lib -lavcodec

$ ls /usr/local/Cellar/ffmpeg/4.3.1_4/
COPYING.GPLv2        COPYING.LGPLv3       LICENSE.md           include
COPYING.GPLv3        Changelog            README.md            lib
COPYING.LGPLv2.1     INSTALL_RECEIPT.json bin                  share

三、配置

新建一个xcode工程,选择,之后选择"c++"工程,
在这里插入图片描述

按照以下步骤,设置一下头文件路径和库文件路径。
在这里插入图片描述

同样的,设置链接库,点击"+",选择"Add Other",“Add Files”,然后按快捷键,“CMD + Shift + G”,输入目标路径“”
在这里插入图片描述

在这里插入图片描述
目录下所有.a都选上。
在这里插入图片描述

四、测试

修改main.cpp文件如下,请注意我这里是c++项目,因为ffmpeg是c库,所以,在include ffmpeg头文件时,需要加extern “C”, 否则会报编译错误。

//
//  main.cpp
//  ffmpeg_demo
//
//  Created by fish on 2021/2/4.
//  Copyright © 2021 fish. All rights reserved.
//

#ifdef __cplusplus
extern "C"{
#endif

    #include <libavcodec/avcodec.h>

#ifdef __cplusplus
}
#endif


#include <iostream>

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << avcodec_version() << std::endl;
    return 0;
}

输出:

3824484
Program ended with exit code: 0

五、遇到的问题

不加extern "C"导致编译报错。

Undefined symbols for architecture x86_64:
  "avcodec_version()", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

六、 总结

虽然,avcodec_version()输出,是一个不明所以然的数字,这个我们留到以后研究吧。
总之整个程序,编译->链接->执行,流程跑通,也确实调用到了ffmpeg里面的方法。目的已经达到。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值