ubuntu 12.04安装ffmpeg
- 下载ffmpeg-2.6.3.tar.bz2、last_x264.tar.bz2、yasm-1.2.0.tar.gz
- libx264需要yasm,所以先安装yasm
x264需要使用yasm进行编译,而且yasm版本至少为 1.2 故我们需要先安装yasm yasm包:yasm-1.2.0.tar.gz 安装yasm步骤:
<!-- lang: shell -->
cd /usr/local/bin
mkdir yasm
cd -
tar zxvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
//--prefix=PREFIX install in PREFIX []安装程序到指定目录[默认:空]
./configure --prefix=/usr/local/bin/yasm PATH=$PATH:/usr/local/bin/yasm/bin
make
make install
yasm安装完成后,我们开始安装x264
x264包:last_x264.tar.bz2
- 安装x264
<!-- lang: shell -->
tar jxvf last_x264.tar.bz2
cd x264-snapshot-20141105-2245
./configure --prefix=/usr --enable-shared --disable-asm
make
make install
- 安装ffmpeg的依赖包
libfaac、libmp3lame、libtheora、libvorbis、libxvid、libxext、libxfixes
- //apt-get install libx264-dev // 不安装
- apt-get install libfaac-dev
- apt-get install libmp3lame-dev
- apt-get install libtheora-dev
- apt-get install libvorbis-dev
- apt-get install libxvidcore-dev
- apt-get install libxext-dev
- apt-get install libxfixes-dev
apt-get install libx264-dev
apt-get install libfaac-dev
apt-get install libmp3lame-dev
apt-get install libtheora-dev
apt-get install libvorbis-dev
apt-get install libxvidcore-dev
apt-get install libxext-dev
apt-get install libxfixes-dev
4、解压ffmpeg
[plain] view plain copy print?
- tar -xjvf ffmpeg-2.6.3.tar.bz2
tar -xjvf ffmpeg-2.6.3.tar.bz2
对ffmpeg进行编译安装
- /* ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis */
CFLAGS="-fPIC" ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis --enable-ffserver --enable-ffplay --enable-ffmpeg --enable-shared --enable-static --enable-avdevice --enable-ffprobe --disable-yasm
// --enable-libfaac --enable-x11grab 出错删除???
如果配置的时候提示 当前系统的yasm版本太低,就再加上 --disable-yasm
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis
[html] view plain copy print?
- make
- make install
$ ffmpeg -version
×××××××××××报错1
-version 查看当前版本的详细信息,默认情况下一般会报libavdevice.so.57: cannot open shared object file: No such file or directory,原因是lib目录未加载到链接到系统库中,系统ld目录列表在/etc/ld.so.conf中,打开文件会发现,里面引用了/etc/ld.so.conf.d/下面所有的.conf文件,比如我们只需要创建一个ffmpeg.conf文件并写入lib路径即可,
vim /etc/ld.so.conf.d/ffmpeg.conf 然后添加一行内容:
/usr/local/ffmpeg/lib
保存并退出,然后执行 ldconfig 使配置生效,
现在再次执行 # ffmpeg -version 显示就正常了(不能是./ffmpeg)
$PATH中没有添加/usr/local/ffmpeg2/bin 这个路径,永久添加方法:
vi /etc/profile
加入以下内容:
export PATH="/usr/local/ffmpeg/bin:$PATH"
然后保存并运行source /etc/profile
×××××××××××报错2
:libavcodec/libx264.c: In function 'x264_frame' :
libavcodec/libx264.c:282:9 error: 'x264_bit_depth' undeclared(first use in this function)
- 卸载x264 ,
sudo apt-get remove ffmpeg x264 libx264-dev
cd ~/ffmpeg/x264
make distclean
git pull
- 重新安装
tar jxvf last_x264.tar.bz2
cd x264-snapshot-20141105-2245
./configure --prefix=/usr --enable-shared --disable-asm
make
make install
×××××××××××报错3
××××× x264....125: x264安装有问题,
***********没有生成ffplay 4
遇到问题:直接make之后没有生成ffplay
运行 configure 会生成 config.mak、config.h 和 libavutil/avconfig.h 这几个文件,里面决定了 ffmpeg 编译哪些模块、是否开启某些特性等。
查看config.mak文件,找到 CONFIG_FFPLAY 一行,发现前面总是有! 结果make 怎么都出错,报告ffplay.c编译错误
解决:重装了SDL
Ubuntu的新得立已经包含SDL库,所以通过几个简单的命令就可以安装,比windows还傻瓜!
sudo apt-get install libsdl1.2-dev(比较大,10M左右)
附加包:
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev
sudo apt-get install libsdl-gfx1.2-dev
安装完成之后,在目录/usr/include中,就会有个SDL文件夹,里面包含了所需要的头文件。
再次./configure --enable-memalign-hack --enable-ffplay
4、编译
$make
$sudo make install
现在发现终于OK啦!
5、测试
$./ffplay hello.mpg
可以看到视频啵?可以听到声音啵?
嘿嘿,可以吧!