Centos安装 ffmpeg,并添加 libx264库

ffmpeg执行时如添加参数-vcodec libx264,会出现错误:Unknown encoder "libx264"的错误,缺少libx264库,需要安装该库

安装nasm

NASM(Netwide Assembler)是一个开源的汇编器,专门用于x86架构的汇编语言编程。

它支持多种目标文件格式,包括ELF、COFF、OMF、a.out、Mach-O等,适用于16位、32位和64位代码的编译。NASM使用Intel语法,与AT&T语法的汇编器(如GNU汇编器)不同。

NASM的主要特点包括:

  • 语法简洁:采用类似于Intel的语法,易于编写和阅读。
  • 多平台支持:可以在多种操作系统上运行,包括Linux、Windows、DOS等。
  • 模块化设计:支持宏和模块化编程,增强代码的可维护性和复用性。
  • 输出格式多样:可以生成多种目标文件格式,适合不同的开发需求。

安装命令:

# 下载源代码
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz

# 解压
tar -zxvf nasm-2.14.tar.gz

# 编译安装
cd nasm-2.14
./configure
make && make install

# 测试
nasm -v

x264 安装 

x264 是一款开源的 H.264/AVC 视频编码器。

# 下载源代码
git clone https://code.videolan.org/videolan/x264.git

# 编译安装
cd x264
./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
make && make install

# 配置环境变量
vim ~/.bashrc
export PATH="/usr/local/nasm/bin:$PATH"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source ~/.bashrc

# 安装结果
pkg-config --libs x264

安装 ffmpeg 

# 下载源代码
wget https://ffmpeg.org//releases/ffmpeg-6.1.tar.gz

# 编译安装
cd ffmpeg-6.1
./configure --enable-gpl --enable-libx264 --enable-shared --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include
make && make install

# 配置环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/ffmpeg/bin

卸载移除ffmpeg:

# 停止ffmpeg进程
pkill ffmpeg

# 卸载ffmpeg
sudo yum remove ffmpeg

# 删除ffmpeg的配置文件和数据
rm -rf /usr/local/etc/ffmpeg /usr/local/share/ffmpeg /usr/local/share/doc/ffmpeg /usr/local/share/man/man1/ffmpeg*

问题记录 

ffmpeg: error while loading shared libraries: libavdevice.so.60: cannot open shared object file: No such file or directory。

当安装或更新共享库时,需要运行 ldconfig 来更新缓存。ldconfig 是 Linux 系统中的一个工具,用于管理动态链接库(shared libraries)的缓存。它主要负责更新和维护 /etc/ld.so.conf 文件中指定的库路径,并将这些路径中的共享库信息缓存到 /etc/ld.so.cache 文件中。这个缓存文件被动态链接器(ld.so 或 ld-linux.so)用来快速查找和加载所需的共享库。