一、查看自己需要的FFMPEG
FFMPEG有很多更新的东西,针对自己的使用,需要在源码中切换版本,找到适合自己的版本(函数在下载的源码都有的),我就是先下载最新的,结果发现avcodec_register_all、avcodec_find_decoder等函数没有,且自己是小白,搞不清更新的关系,所以退回到3.0版本
二、FFMPEG的安装与卸载
参考链接:
https://blog.csdn.net/qq_36397240/article/details/107745149
FFMPEG编译安装
带H265安装
./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx265
安装H265
sudo apt-get install libx265-dev libnuma-dev
https://blog.csdn.net/weixin_43360707/article/details/118222034
三、cmake配置
set (FFMPEG_LIBRARY
/usr/local/ffmpeg/lib/libavformat.so
/usr/local/ffmpeg/lib/libavdevice.so
/usr/local/ffmpeg/lib/libavcodec.so
/usr/local/ffmpeg/lib/libavfilter.so
/usr/local/ffmpeg/lib/libavutil.so
/usr/local/ffmpeg/lib/libswscale.so
/usr/local/ffmpeg/lib/libswresample.so)
并添加链接
target_link_libraries(aa ${FFMPEG_LIBRARY})
四、问题解决
1、碰到undefined reference错误
除了网上查到的方法,可以参考:
将以下代码
#include <libavcodec/avcodec.h>
改成
extern "C" {
#include <libavcodec/avcodec.h>
}