Linux Ubuntu 编译FFMPEG音视频库,并实现例程
Posted 赵新政
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
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库的路径,注意这个命令围起来的不是普通的单引号!
以上是关于Linux Ubuntu 编译FFMPEG音视频库,并实现例程的主要内容,如果未能解决你的问题,请参考以下文章