问题背景
arm平台上,fmpeg不一定能用yum install轻松安装,可能要编译安装。
环境配置
以下是我的版本配置,读者可以下载同版本的tag分支,以便复现。
ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 7.3.0 (GCC)
Euler版本如下:
NAME="EulerOS"
VERSION="2.0 (SP10)"
ID="euleros"
VERSION_ID="2.0"
主要流程
主要参考腾讯教程FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg的"二、在EulerOS(欧拉系统)上编译安装FFmpeg"一节。
以下是我跟随教程执行的一些经验:
第一步,yum install
,安装前确保配好了yum镜像。安装时如果权限不足,可以用sudo
。我安装g++
时报错找不到,但跳过也没关系。
第二步,安装x264,执行make install
如果权限不足,可以使用sudo
,下同。作者使用非root用户执行./configure
和make
都没用到root权限,只在运行make install
时用到了。
最后,记得要执行ffmpeg -version
,如果没报错输出了各个组件的版本信息,才说明安装成功。如果遇到了"error while loading shared libraries"的报错,请参考下文。
解决报错:error while loading shared libraries
分别遇到了两个报错:
- ffmpeg查看版本报错error while loading shared libraries: libavdevice.so.59
- ffmpeg: error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or directory
参考博客如下:
改写后的/etc/ld.so.conf内容如下,其中/usr/local/ffmpeg/lib/
是ffmpeg安装的目录,/usr/local/lib
是x264安装的目录。
/usr/local/ffmpeg/lib/
/usr/local/lib
执行ldconfig激活配置,即可修复两个错误。