树莓派交叉编译FFmpeg

树莓派编译FFmpeg
前言:采用交叉编译的方式为树莓派安装ffmpeg程序,宿主机为Centos7,交叉编译工具链由buildroot编译完成,具体buildroot的编译请看我的其他文章。
1、编译x264库,注意打上使用汇编编译
tar -jxvf x264.tar.bz2
cd x264
./configure --prefix=/home/fu/ffmpeg/build --enable-shared --host=arm-linux --cross-prefix=/usr/local/toolchain/bin/arm-Raspberry-linux-gnueabihf- --enable-pic --enable-gpl
make
make install

2、编译fdk_aac库
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autogen.sh
./configure --prefix=/home/fu/ffmpeg/build CXX=arm-Raspberry-linux-gnueabihf-g++ CC=arm-Raspberry-linux-gnueabihf-gcc --enable-shared
make
make install

3、编译ffmpeg
wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg/build/lib/pkgconfig"
添加自定义的链接库的路径
注意:虽然在这里添加了其他库的连接,但是因为是交叉编译配置的过程中还会报错arm-Raspberry-linux-gnueabihf-pkg-config软件找不到,解决就是去交叉编译工具链中找到pkg-config软件,复制一份命名为arm-Raspberry-linux-gnueabihf-pkg-config然后再配置就可以了,交叉编译工具链中的pkg-config软件是编译buidlroot中生成的,详细请参考用buildroot编译树莓派镜像,在编译buidlroot的时候回自动生产,不用特意配置。
–arch=arm --target-os=linux --prefix=/home/fu/ffmpeg/build --cross-prefix=arm-Raspberry-linux-gnueabihf- --extra-cflags=-I/home/fu/ffmpeg/build/include --extra-ldflags=-L/home/fu/ffmpeg/build/lib --extra-libs=-lpthread --extra-libs=-lm --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --enable-shared
make
make install

4、完成
将编译好的ffmpeg可执行文件,x264可执行文件等拷贝到树莓派上面去,为ffmpeg添加环境变量,为ffmpeg的库文件添加链接脚本即可,下面是配置方法。

5、配置链接库
按照上面的编译完成后需要将编译完成的文件拷贝到树莓派的文件系统中即可
1、拷贝/home/fu/ffmpeg/build/bin下面的所有可执行文件到树莓派/usr/local/bin/
2、拷贝/home/fu/ffmpeg/build/lib下面的所有可执行文件到树莓派/usr/local/lib/ 注意有好多的链接,拷贝时用-a选项
3、复制buildroot目录下已经编译好的ldconfig程序到树莓派buildroot/output/host/arm-Raspberry-linux-gnueabihf/sysroot/sbin/ldconfig
4、在输煤拍/etc/下面建立链接库配置文件目录ld.so.conf.d,在ld.so.conf.d下面创建ffmpeg的链接库配置。vim ffmpeg.conf,里面输入/usr/local/lib/,保存退出后执行命令ldconfig即可。

你可能感兴趣的:(树莓派,FFmpeg编译安装,树莓派FFmpeg)