Linux Ubuntu 编译FFMPEG音视频库,并实现例程

1 . 标题编译与安装

1 注意,先确保系统中拥有alsa音频驱动,可以通过alsa命令看到是否拥有,没有就apt-get alsa即可,否则没法使用linux进行录音;确保系统中安装了libsdl跟yasm

sudo apt-get install libsdl2-dev
sudo apt-get install yasm

另外,如果需要使用libfdk_aac对音频记性操作,就需要先安装好:

 sudo apt-get install libfdk-aac-dev

If use libx264 then use

sudo apt-get install libx264-dev

when configure add

--enable-libx264

2 下载源代码ffmpeg

3 cd 进入目录,执行编译配置命令 :

./configure  --prefix=/usr/local/ffmpeg     --enable-debug=3    --enable-shared   --disable-static --enable-sdl2

其中sdl的enable是保证使用了sdl,可以编译出来ffplay;如果需要启动libfdk-aac来编码aac格式文件,就加上下面的参数:

--enable-libfdk-aac

4 开始编译:

make -j 4 

(此处是指定cpu几核,多线程编译,是多核就写多少个就行)

5 执行安装:

make install

6 执行如下命令,测试音频输入功能

ffmpeg -f alsa -i hw:0,0 out.wav

7 执行如下命令,测试音频外放功能

ffplay out.wav

2 . 头文件与链接库配置

1 sudo gedit ~/.bashrc 打开bash的运行环境配置文件
2 加入:

#ffmpeg命令的环境变量配置
export PATH=/usr/local/ffmpeg/bin:$PATH
#运行时链接库配置,$LD_LIBRARY_PATH这里可能在文件的前面也配置了一堆库,所以在这里用:隔开,大家粘结在一起,形成了动态库的环境变量
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
#这里是ffmpeg或者各种linux库的pkg-config文件的存在地点,linux的pkg-config命令会用到
export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig:$PKG_CONFIG_PATH

保存退出后,更新source

source   ~/.bashrc

案例程序:

#include<iostream>
extern "C" {
	#include<libavutil/avutil.h>
}


int main(){
	av_log_set_level(AV_LOG_DEBUG);
	av_log(NULL, 3, "av is ok");
	return 0;
}

这里注意,一定要加入extern C,因为ffmpeg是c语言的函数库,里面的编译链接规则遵守C语言的规则,故而需要告诉编译器,括号中间的头文件所指向的代码库,请都遵守C语言的编译链接规则

编译命令:

g++ -g -o test test.cpp `pkg-config --libs --cflags libavutil`

其中:pkg-config --libs --cflags libavutil ,可以单独执行,可以看到输出的-I -L 的结果,即为程序的编译链接提供了头文件跟lib库的路径,注意这个命令围起来的不是普通的单引号!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵新政

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值