linux 安装ffmpeg步骤:
1.下载
ffmpeg下载链接:http://ffmpeg.org/download.html
yasm下载链接:http://www.linuxfromscratch.org/blfs/view/svn/general/yasm.html
lame下载接:https://sourceforge.net/projects/lame/files/lame/
获取x264的网站:http://www.videolan.org/developers/x264.html
2.编译安装
2.1安装lame
tar -zxf lame-3.100.tar.gz
cd lame-3.100
./configure && make && make install
2.2安装yasm
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure && make && make install
2.2安装x264
x264-master.tar.bz2
cd x264-master
./configure --enable-shared --disable-asm
make
make install
2.3安装ffmpeg
wget http://www.ffmpeg.org/releases/ffmpeg-3.4.tar.gz
tar -zxf ffmpeg-3.4.tar.gz
cd ffmpeg-3.4
执行编译,选择支持h264的编译的configure命令:
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-libx264 --enable-gpl //支持h264的编译
#./configure --prefix=/usr/local/ffmpeg --disable-yasm --enable-shared --enable-libmp3lame //不支持h264的编译
make && make install
3.相关配置
1.配置变量
vi /etc/profile
在最后PATH添加环境变量:
export PATH=/usr/local/ffmpeg/bin:
P
A
T
H
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
PATH export LD_LIBRARY_PATH=
PATHexportLDLIBRARYPATH=LD_LIBRARY_PATH:/usr/local/ffmpeg/lib
export PKG_CONFIG_PATH=$X264_HOME/lib/pkgconfig
保存退出
查看是否生效
source /etc/profile 设置生效
ffmpeg -version 查看版本
执行命令的过程中有可能出现:ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory
2.配置软连接
ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib64/libmp3lame.so.0
3.测试转码
/usr/local/ffmpeg/bin/ffmpeg -i /date1/bfcb1903-c03a-4c6e-9310-a8b3c5ed00e9 /date1/bfcb1903-c03a-4c6e-9310-a8b3c5ed00e9.mp3
常见问题处理:
【1】执行ffmpeg -version出现以下问题:
ffmpeg: error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or directory
解决:这里我们需要配置 /etc/ld.so.conf。这个文件记录了编译时使用的动态链接库的路径,告诉链接器去哪个路径下寻找链接时需要用到的库,如果找不到,就会提示链接错误。
vim /etc/ld.so.conf
后面加上x264的lib路径,比如我这里安装到了/usr/local/lib,保存退出
刷新配置ldconfig
再执行ffmpeg -version就可以了
【2】 x264_bit_depth 未定义
libavcodec/libx264.c:892:9: error: ‘x264_bit_depth‘ undeclared (first use in this function)
原因:应该是x264的x264_bit_depth被改为了大写的X264_BIT_DEPTH。
解决方式:修改libx264.c文件,将此文件中的所有x264_bit_depth替换为X264_BIT_DEPTH,然后重新编译。