离线ubuntu/centos安装FFmpeg
工程需要在离线的服务器上安装FFmpeg,服务器系统为centos,在此记录。
使用到的编解码器为H.264和H.265。
编译安装H.264
git clone https://code.videolan.org/videolan/x264.git
离线状态去官网下载压缩包。cd x264
./configure --enable-shared --prefix=安装路径
enable-shared
需要,否则仅安装命令而没有相关lib
。make && make install
。
编译安装H.265
- 官网下载源码 http://ftp.videolan.org/pub/videolan/x265/。
- H.265和264源码安装方式略有区别,进入
build/linux
中执行./make-Makefiles.bash
,事先安装cmake
。 - 安装过程中,会进入一个界面,此时按
c
进入配置,可以配置安装路径等,完成后按g
生成文件,此时路径下生成Makefile
等文件。 make && make install
完成安装。头文件和库文件默认安装在/usr/local/include
和/usr/local/lib
下,否则安装在上述的配置路径下的include
和lib
下。
编译安装FFmpeg
- 如果安装
H.264
和H.265
中,路径都是自定义的,则需要将H.264
和H.265
下lib/pkgconfig/x26x.pc
移至/usr/share/pkgconfig
下。 - 在FFmpeg官网/Github下载FFmpeg源码,传到服务器上,
tar -zxvf ...
解压。 - 进入解压后的目录,
./configure --prefix=安装目录
,这一步在检查编译环境和编译配置等,生成Makefile。 make
编译,如果没报错那很好,如果报错了,针对问题解决。题主在make
过程中报错libavcodec/x86/vvc/vvc_mc.asm:55: error: operand 1: expression is not simple or relocatable
libavcodec/x86/vvc/vvc_mc.asm:55: error: operand 1: expression is not simple or relocatable
libavcodec/x86/vvc/vvc_mc.asm:55: error: operand 1: expression is not simple or relocatable
libavcodec/x86/vvc/vvc_mc.asm:55: error: operand 1: expression is not simple or relocatable
libavcodec/x86/vvc/vvc_mc.asm:55: error: operand 1: expression is not simple or relocatable- 上述报错是因为
nasm
版本过低,去nasm
官网下载最新版本源码,./configure --prefix=安装目录
,make
,make install
后即安装最新版本nasm
。 - 添加环境变量,
vim ~/.bashrc
,在文件最下面添加export PATH=/home/.../.../bin:$PATH
,保存退出后,source .bashrc
激活,nasm -v
查看版本,是否安装成功。 - 然后再回到
FFmpeg
源码目录,重新configure
和make
,没有报错后,make install
安装FFmpeg,安装完成后ffmpeg -version
查看版本,安装成功。 - 如果报错
error while loading shared libraries: libx264.so.125: cannot open shared object file
…中间那个libx264.so.125
版本号可能不同。这是因为FFmpeg
找不到库。sudo vim /etc/ld.so.conf
,在末尾添加/usr/local/lib
(默认安装的H.265
或H.264
路径)或自行安装的库路径,执行sudo ldconfig
更新ld.so.conf
文件到系统。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JrunDing!
评论