1、在ffmpeg 官网下载最新的ffmpeg 源码:如下
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
2、编译ffmpeg
直接 执行 ./configure 有些mac 会报一些问题
这是本人遇到的情况
Undefined symbols for architecture x86_64:
"_ff_filters_ssse3", referenced from:
_put_8tap_smooth_64hv_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_regular_64hv_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_sharp_64hv_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_smooth_64v_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_regular_64v_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_sharp_64v_8_ssse3 in libavcodec.a(vp9dsp_init.o)
_put_8tap_smooth_64h_8_ssse3 in libavcodec.a(vp9dsp_init.o)
...
"_ff_pw_m16364_804", referenced from:
l070 in libavcodec.a(vp9itxfm_16bpp.o)
l073 in libavcodec.a(vp9itxfm_16bpp.o)
l082 in libavcodec.a(vp9itxfm_16bpp.o)
l088 in libavcodec.a(vp9itxfm_16bpp.o)
l094 in libavcodec.a(vp9itxfm_16bpp.o)
l100 in libavcodec.a(vp9itxfm_16bpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
从上面错误情况看是vp9 不支持 ,因此用下面编译方法通过
./configure --disable-decoder=vp9 && make && make install
成功编译出mac版的ffmpeg 静态库。
3、使用xcode 调用ffmpeg 静态库
建立一个简单的xcode工程 在General里的Linked Frameworks and Libraries 里添加相应的 ffmpeg 静态库,同时也要添加相应的框架库
QuarzCore.framework
CoreMedia.framework
AudioToolbox.framework
CoreFoundation.framework
VideoDecoderAcceleration.framework
VideoToolbox.framework
libz.dylib
libav*.a (ffmepg 的静态库)
同时添加ffmpeg 头文件搜索路径