欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Ubuntu22.04源码安装ffmpeg

Ubuntu22.04源码安装ffmpeg

2024/10/24 10:17:28 来源:https://blog.csdn.net/Slowstep_/article/details/140791358  浏览:    关键词:Ubuntu22.04源码安装ffmpeg

Ubuntu22.04源码安装ffmpeg

1.下载ffmpeg的源码包

wget https://ffmpeg.org/releases/ffmpeg-7.0.1.tar.xz

解压:

tar -xvf ffmpeg-7.0.1.tar.xz

2.安装基本编译构建工具

sudo apt-get install gcc g++ cmake make pkgconf -y

3.编译ffmpeg

进入解压后的ffmpeg源码目录,目录中有一个名为configure的shell脚本,通过该shell脚本可以配置ffmpeg的安装位置以及需要安装的ffmpeg组件,这里选择将ffmpeg安装到~/util/ffmpeg/,使用的命令如下:

mkdir -p ~/util/ffmpeg/lib
./configure --prefix="/home/cat/util/ffmpeg" --enable-gpl --enable-nonfree --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --extra-cflags=-I/home/cat/util/ffmpeg/include --extra-ldflags=-L/home/cat/util/ffmpeg/lib

在安装时可能显示缺失某些依赖包:

nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

解决方案:下载yasm源码并解压,编译yasm源码

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install
export PATH=$PATH:/home/cat/util/ffmpeg/bin

ERROR: libfdk_aac not found

解决方案:下载fdk_aac源码并编译

wget https://zenlayer.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-2.0.3.tar.gz
tar -zxvf fdk-aac-2.0.3.tar.gz
cd fdk-aac-2.0.3/
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install
export PKG_CONFIG_PATH=/home/cat/util/ffmpeg/lib/pkgconfig/

某些情况下可能已经编译好了ffmpeg的依赖包,但是编译ffmpeg时依然找不到对应的包,此时可以尝试执行rm -f ffbuild/config.log命令并重新构建ffmpeg

ERROR: libmp3lame >= 3.98.3 not found

解决方案:下载对应的源码包并编译

wget https://zenlayer.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar -zxvf lame-3.100.tar.gz
cd lame-3.100/
./configure --enable-shared --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install

ERROR: speex not found using pkg-config

wget https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.1.tar.gz
tar -zxvf speex-1.2.1.tar.gz
cd speex-1.2.1/
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install

ERROR: x264 not found using pkg-config

wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar -jxvf x264-master.tar.bz2
cd x264-master/
./configure --prefix=/home/cat/util/ffmpeg/ --disable-asm --enable-static --enable-shared
make -j16
sudo make install

ERROR: x265 not found using pkg-config

wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.tar.gz
tar -zxvf x265_3.2.tar.gz
cd x265_3.2/build/linux
./make-Makefiles.bash
make -j16
sudo make install

4.安装ffmpeg

执行ffmpeg的安装脚本,如果输出如下,表示依赖安装完成,可以编译并安装ffmpeg

install prefix            /home/cat/util/ffmpeg
source path               .
C compiler                gcc
C library                 glibc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
standalone assembly       yes
x86 assembler             yasm
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
......

在编译并安装ffmpeg之前,先下载并编译SDL源码,因为ffplay依赖于SDL

wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.30.5.tar.gz
tar -zxvf release-2.30.5.tar.gz
cd SDL-release-2.30.5
./configure --prefix=/home/cat/util/ffmpeg/
make -j16
sudo make install

进入ffmpeg源码目录

make -j16
sudo make install

5.将ffmpeg程序目录添加到PATH

sudo vim /etc/profile,在profile文件末尾添加export PATH="/home/cat/util/ffmpeg/bin/:$PATH",将/home/cat/util/ffmpeg/bin/替换为ffmpeg的安装目录

sudo vim /etc/ld.so.conf,在ld.so.conf文件末尾添加库文件路径/home/cat/util/ffmpeg/lib,执行ldconfig命令

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com