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库,需要安装该库:
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-static --enable-share --disable-asm
make
- sudo make install
需要重新编译安装ffmpeg
- 配置ffmpeg时,加上x264,如:
./configure --enable-gpl --enable-libx264
make clean
make
- 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文件
$ sudo vi /etc/ld.so.conf
- 修改如下
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib ///usr/local/ffmpeg 目录是我ffmpeg安装目录,根据你的安装目录改吧
- 使之生效
$ 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
解决方法:
- 查看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文件
执行?ldconfig
- 重新推流,问题解决