ffmpeg缺少 libx264依赖时的安装方法 (linux 下)

使用如下命令推流时:

ffmpeg -re -i a.mp4 -vcodec libx264 -acodec aac -f flv rtmp://172.31.102.165:1935/myapp

可能会出现如下错误:

Unknown encoder ‘libx264‘

即,缺少libx264库,需要安装该库:

  1. git clone git://git.videolan.org/x264.git

  2. cd x264

  3. ./configure --enable-static --enable-share --disable-asm

  4. make

  5. sudo make install

需要重新编译安装ffmpeg

  1. 配置ffmpeg时,加上x264,如:

./configure --enable-gpl --enable-libx264

  1. make clean

  2. make

  3. make install

此时,输入ffmpeg时,可能会出现错误:

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


修改ld.so.conf文件

  1. $ sudo vi /etc/ld.so.conf

  2. 修改如下

include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib ///usr/local/ffmpeg 目录是我ffmpeg安装目录,根据你的安装目录改吧

  1. 使之生效

$ sudo ldconfig


为 Ffmpeg 加入环境变量
vi /etc/profile
加入以下内容:
export PATH="/usr/local/ffmpeg/bin:$PATH"

然后保存并运行source /etc/profile

若还提示缺少libx264,则需要进到编译ffmpeg目录,使用如下命令推流:

./ffmpeg -re -i a.mp4 -vcodec libx264 -acodec aac -f flv rtmp://172.31.102.165:1935/myapp

###222222

一、问题原因分析
二、下载xlib264库
下载x264库
git clone git://git.videolan.org/x264.git

进入到库目录下
cd x264

配置x264
./configure --enable-shared --enable-static --disable-asm

编译执行
make && sudo make install

三、重新编译安装ffmpeg
需要重新编译安装ffmpeg

下载ffmpeg :
下载方式一:

wget https://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2
解压 : tar jxvf ffmpeg-4.1.tar.bz2
cd ffmpeg-4.1

下载方式二(这种用git的方式下载速度有些慢):

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

配置ffmpeg
./configure --enable-gpl --enable-libx264

编译执行
sudo make clean && make && sudo make install

四、修改配置文件
在/etc/ld.so.conf文件中添加一行/etc/ld.so.conf,当然是用root用户啦。然后执行ldconfig命令使得刚才的修改生效,完了再运行ffmpeg的转码命令试试,可以了吧。

####################33333333333333333333333
在安装ffmpeg时,执行完
./configure--enable-libx264 --enable-gpl --disable-yasm --prefix=/usr/local/ffmpeg

make

都没有错误

但是在向rtmp服务器推流的时候

./ffmpeg -re -i /media/jxs2.rmvb -vcodec libx264 -f flv"rtmp://192.168.5.200:1935/live/a2"

出现以下错误

./ffmpeg: error while loading shared libraries: libx264.so.138: cannot open shared object file: No such file or directory

解决方法:

  1. 查看ld.so.conf文件

vi /etc/ld.so.conf

添加/usr/local/x264/lib,如下

include ld.so.conf.d/*.conf
/usr/local/x264/lib

wq退出ld.so.conf文件

  1. 执行?ldconfig

  2. 重新推流,问题解决

相关推荐