FFmpeg学习笔记(一)
最近准备开发一个视频播放器,以此来记录自己的学习过程。
FFmpeg的安装
我实在Manjor系统下安装使用的。
参考了如下资料:
https://www.jianshu.com/p/5c159d3721d4
http://blog.yundiantech.com/?log=blog&id=33
一、 下载ffmpeg :
源代码地址:http://ffmpeg.org/releases/
我下的是最新版的3.3.9
下载地址:http://ffmpeg.org/releases/ffmpeg-3.3.9.tar.gz
二、安装ffmpeg
将下载到的ffmpeg-3.3.9.tar.gz 复制到linux下并解压。
然后打开终端编译:
1.进入ffmpeg目录
cd ffmpeg-3.3.9
2.配置生成makefile文件
./configure --prefix=/home/ffmpeg --enable-shared
–prefix=/home/ffmpeg 表示最后编译生成的文件的存放路径。
3.依次执行
make
make install
三、配置
执行命令: vim /etc/ld.so.conf.d/ffmpeg.conf
添加内容到文件: /home/ffmpeg/lib ,然后保存并退出
执行 sudo ldconfig 使配置生效
四、Qt中使用FFmpeg
我参考的的是这个:https://blog.csdn.net/gatieme/article/details/20904547
我的配置是这样的:
INCLUDEPATH += /home/ffmpeg/include
LIBS +=-L/home/ffmpeg/lib/ -lavcodec
-L/home/ffmpeg/lib/ -lavdevice
-L/home/ffmpeg/lib/ -lavfilter
-L/home/ffmpeg/lib/ -lavformat
-L/home/ffmpeg/lib/ -lavutil
-L/home/ffmpeg/lib/ -lswresample
-L/home/ffmpeg/lib/ -lswscale
可能还是会出现链接不到的情况,这时候:
打开终端,切到之前编译生成的ffmpeg所在的目录(home目录下),执行如下命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:ffmpeg/lib
这句话的意思,给LD_LIBRARY_PATH这个变量添加一个 ffmpeg/lib
这样程序在运行的时候,就能链接到相应的库文件了。
五、运行
测试代码:
#include
#include
extern “C”
{
#include “libavcodec/avcodec.h”
#include “libavformat/avformat.h”
#include “libswscale/swscale.h”
#include “libavdevice/avdevice.h”
}
int main(int argc, char *argv[])
{
av_register_all();
unsigned int ver = avcodec_version();
std::cout << ver << std::endl;
}
成功以后就会显示如下: