[toc]
ffmpeg安装
下载ffmpeg
- 1.git下载 git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg # 网速太慢
- 2.官网下载 http://www.ffmpeg.org/download.html # 我使用的这个
安装依赖
sudo apt-get install yasm # 必选
sudo apt-get install xorg-dev # 可选
sudo apt-get install libsdl1.2-dev # 可选
开始编译安装
./configure --enable-shared --extra-cflags="-fPIC"
sudo make
sudo make install
# 编译完成,查看/usr/local/lib和/usr/local/include是否生成ffmpeg的库
测试
ffmpeg -version # 输出正常即可
测试用例1:
新建test.c,写入以下代码:
#include <stdio.h>
#include <libavutil/avstring.h>
#include <libavutil/eval.h>
#include <libavutil/mathematics.h>
#include <libavutil/pixdesc.h>
#include <libavutil/imgutils.h>
#include <libavutil/dict.h>
#include <libavutil/parseutils.h>
#include <libavutil/samplefmt.h>
#include <libavutil/avassert.h>
#include <libavutil/time.h>
#include <libavformat/avformat.h>
#include <libavdevice/avdevice.h>
#include <libswscale/swscale.h>
#include <libavutil/opt.h>
#include <libavcodec/avfft.h>
#include <libswresample/swresample.h>
int main(int argc, char* argv[])
{
printf("this is a test program for ffmpeg\n");
av_register_all();
return 0;
}
在终端输入以下指令:
gcc test.c -o test -I /usr/local/include -L /usr/local/lib -lavutil -lavformat -lavcodec -lavutil -lswresample -lm -lrt -lpthread -lz
./test
测试用例2
test1.c
#include <stdio.h>
#include <libavutil/avstring.h>
#include <libavutil/eval.h>
#include <libavutil/mathematics.h>
#include <libavutil/pixdesc.h>
#include <libavutil/imgutils.h>
#include <libavutil/dict.h>
#include <libavutil/parseutils.h>
#include <libavutil/samplefmt.h>
#include <libavutil/avassert.h>
#include <libavutil/time.h>
#include <libavformat/avformat.h>
#include <libavdevice/avdevice.h>
#include <libswscale/swscale.h>
#include <libavutil/opt.h>
#include <libavcodec/avfft.h>
#include <libswresample/swresample.h>
int main(int argc, char* argv[])
{
printf("this is a test program for ffmpeg\n");
printf("%s", avcodec_configuration());
getchar();
return 0;
}
在终端输入以下指令:
gcc test1.c -o test -I /usr/local/include -L /usr/local/lib -lavutil -lavformat -lavcodec -lavutil -lswresample -lm -lrt -lpthread -lz
./test
踩坑
- 1.ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
因为我们使用源码编译,没有添加环境变量
sudo vim /etc/ld.so.conf
添加: /usr/local/lib
退出vim
sudo ldconfig # 更改生效
sudo vim /etc/profile
添加: export PATH="/usr/local/bin:$PATH"
source /etc/profile # 更改生效
再在终端输入ffmpeg -version 就会有信息输出了