应为项目设备的更新,需要用到在arm64下安装ffmpeg6.0,但是这个过程中遇到好些问题,简直是裂开。。。。
详细步骤如下:
切换到root权限下开始安装
该文基于:ubuntu22.04
开始安装之前先执行该命令跟新系统包,因为我在后面拉取代码的时候超时了,但是更新了以后就可以正常拉取代码了。
sudo apt update
先安装依赖
apt-get -y install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget curl git zlib1g-dev
还要安装一些库
apt-get -y install libasound2-dev
apt-get -y install libgl1-mesa-dev
apt-get -y install libglew-dev
apt-get -y install libglm-dev
apt-get -y install mercurial libnuma-dev
如注:果以上过程种有什么报错根据实际报错去查找解决办法,因为可能不同版本的ubuntu系统可能出现的问题也不一样。
首先进到这个目录(注意是root权限下的,所有操作都是root下的)
cd ~
#创建按三个文件夹
mkdir ffmpeg6.0_bin
mkdir ffmpeg6.0_build
mkdir ffmpeg6.0_sources
汇编相关的程序 nasm (版本2.16.02rc1)
wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.02rc1/nasm-2.16.02rc1.tar.bz2
tar jxvf nasm-2.16.02rc1.tar.bz2
cd nasm-2.16.02rc1
./autogen.sh
./configure --prefix="$HOME/ffmpeg6.0_build" --bindir="$HOME/ffmpeg6.0_bin"
make -j4
make install
ln -s $HOME/ffmpeg6.0_bin/nasm /usr/bin/nasm
汇编库 Yasm (版本是1.3.0)
wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure CFLAGS="-fPIC" CPPFLAGS="-fPIC" --prefix="$HOME/ffmpeg6.0_build" --bindir="$HOME/ffmpeg6.0_bin"
make && make install
ln -s $HOME/ffmpeg6.0_bin/yasm /usr/bin/yasm
编译拉取的代码
x264
cd ~/ffmpeg6.0_sources
git clone --depth 1 https://github.com/mirror/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg6.0_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg6.0_build" --bindir="$HOME/ffmpeg6.0_bin" --enable-static --enable-shared --enable-pic
make
make install
x265
cd ~/ffmpeg6.0_sources
git clone https://gitee.com/mirrors_videolan/x265.git
cd x265/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg6.0_build" -D ENABLE_SHARED=on -DENABLE_PIC=on -DBIN_INSTALL_DIR="$HOME/ffmpeg6.0_bin" ../../source
make && make install
libvpx
cd ~/ffmpeg6.0_sources
git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg6.0_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared
make && make install
fdk-aac
cd ~/ffmpeg6.0_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure CFLAGS="-fPIC" CPPFLAGS="-fPIC" --prefix="$HOME/ffmpeg6.0_build" --bindir="$HOME/ffmpeg6.0_bin"
make && make instal
lame
cd ~/ffmpeg6.0_sources
git clone --depth 1 https://gitee.com/hqiu/lame.git
cd lame
./configure --prefix="$HOME/ffmpeg6.0_build" --bindir="$HOME/ffmpeg6.0_bin" --enable-nasm --with-pic
make && make install
opus
cd ~/ffmpeg6.0_sources
git clone --depth 1 https://github.com/xiph/opus.git
cd opus
./autogen.sh
./configure --prefix="$HOME/ffmpeg6.0_build" -with-pic
make && make install
ln -s $HOME/ffmpeg6.0_bin/lame /usr/bin/lame
现在正式开始ffmpeg6.0的安装
cd ~/ffmpeg6.0_sources
wget -c https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n6.0.tar.gz
tar zxvf n6.0.tar.gz
mv FFmpeg-n6.0 FFmpeg
cd FFmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg6.0_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg6.0_build" --extra-libs="-lpthread -lm" --bindir="$HOME/ffmpeg6.0_bin" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg6.0_build/include" --extra-cflags="-I$HOME/ffmpeg6.0_build/include/fdk-aac" --extra-ldflags="-L$HOME/ffmpeg6.0_build/lib" --enable-gpl --enable-libass --enable-libfreetype --enable-libvorbis --enable-pic --enable-shared --enable-static --enable-nonfree --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-sdl2 --enable-ffplay --disable-optimizations --disable-stripping --enable-debug=3
#注:运行到这里没有报错并提示“License: nonfree and unredistributable”,就可以运行下面的命令了,如果有错根据实际错误去解决,我在此过程没有报错
make -j16
make install
编辑和修改/etc/ld.so.conf
#保存修改:CTRL+X 然后输入Y回车 也可以用vim命令修改
nano /etc/ld.so.conf
把该路径添加末尾
/root/ffmpeg6.0_build/lib
然后执行:
ldconfig
添加环境变量:
#保存修改:CTRL+X 然后输入Y回车 也可以用vim命令修改
nano /etc/profile
把以下加末尾
export PATH=$PATH:/root/ffmpeg6.0_bin
使环境变量生效
source /etc/profile
创建执行的快捷方式
ln -s /root/ffmpeg6.0_bin/ffmpeg /usr/bin/ffmpeg
到这里就已经安装成功了,检查安装成功没有
ffmpeg -version
正常能查看到版本就已经说明安装好了