本人系统Ubuntu16.04

准备工具

也可以先安装ffmpeg,等到报错的时候再去安装报错的库。
安装ffmpeg前还需要一些安装好一些工具:
yasm libx264-dev libx265-dev libmp3lame libopus-dev libfdk-aac-dev cmake mercurial
上面直接用sudo apt-get install 来获取
例如:sudo apt-get install cmake mercurial
若没有可以从我的网盘自己拿需要的,然后安装方法看下面:
网盘:

链接:https://pan.baidu.com/s/1bD7d6Fytd_kAvrLt4942Wg 
提取码:kqpf

X265安装方法:


cd x265/build/linux
cmake -G "Unix Makefiles" -DENABLE_SHARED:bool=off ../../source
make
make install
编译完成可以make clean掉

其它包的安装方式都是一样的,如下:

解压
cd 进目录(x265需要进入)
./configure 
sudo make
sudo make install
编译完成可以make clean掉

开始安装ffmpeg

1、下载ffmpeg包,我是从官网下载的4.1.3版本,也可以从我的网盘下载

链接:https://pan.baidu.com/s/1bD7d6Fytd_kAvrLt4942Wg 
提取码:kqpf

2、解开并进入目录

tar -xvf ffmpeg-4.1.3.tar.bz2
cd ffmpeg-4.1.3

3、生成Makefile
注:安装有如有报错,解决方法请参考https://blog.csdn.net/weixin_38890593/article/details/94736651

执行./configure
//我这里不选择任何参数,全部默认安装
//不想默认安装就加--prefix=等参数,自己指定路径等等
一般默认路径是/usr/local

4、编译

sudo make
sudo make install
编译完成,查看/usr/local/lib和/usr/local/include是否生成ffmpeg的库
如下图,可以看到很多ffmpeg的库

在这里插入图片描述
5、编译完成后,下面来进行简单的测试
建一个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");
	av_register_all();
    return 0;
}

编译方法

1、终端输入生成test可执行文件
gcc test1.c -o test -I /usr/local/include -L /usr/local/lib -lavutil -lavformat -lavcodec -lavutil -lswresample -lm -lrt -lpthread -lz
2、终端输入
./test

如下图,顺利编译通过!
在这里插入图片描述

测试代码二、

#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;
}

编译方法请参照例一!

Logo

更多推荐