Linux下安装视频转换工具ffmpeg

Linux下安装视频转换工具ffmpeg

最近在做项目的时候,遇到一个问题就是要将用户上传的视频转成flv格式或mp4格式并用flash插件在前端播放, 我决定采用ffmpeg (http://www.ffmpeg.org/ )实现。之前已经做过在windows系统上使用ffmpeg,但是放到Linux中不能用。通过参考网上的一些资料以及结合项目的实际的情况,花了两天时间终于将他搞定。下面先说一下ffmpeg在Linux上的安装方法:

 解码器集合(包含安装ffmpeg用到的所有解码器)下载地址:http://download.csdn.net/detail/lintianlin/8547057

一、首先是安装各种解码器

1.      lame

lame-398-1.tar.gz

Url:http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309

安装方法如下:

tar -zxvf /opt/spzh/lame-398-1.tar.gz -C /opt/spzh/wj  
cd /opt/spzh/wj/lame-398-1  
./configure --enable-shared --prefix=/usr  
make  
make install 

tar -zxvf /opt/spzh/lame-398-1.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/lame-398-1
./configure --enable-shared --prefix=/usr
make
make install
<span style="color:#3333FF;">
</span>

<span style="color:#3333FF;">注:tar -zxvf 解码器压缩包路径 -C 解压好的文件存放位置     
     --prefix=安装位置</span>

2.      libogg

libogg-1.3.2.tar.gz

Url:http://www.xiph.org/downloads/
安装方法如下

tar -zxvf /opt/spzh/libogg-1.3.2.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/libogg-1.3.2
./configure --prefix=/usr
make
make install

tar -zxvf /opt/spzh/libogg-1.3.2.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/libogg-1.3.2
./configure --prefix=/usr
make
make install

3.    libvorbis

libvorbis-1.3.5.tar.gz

Url:http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz

(libvorbis依赖于libogg, 所以libogg必须先于libvorbis安装)
安装方法如下:

tar -zxvf /opt/spzh/libvorbis-1.3.5.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/libvorbis-1.3.5
./configure --prefix=/usr
make
make install

tar -zxvf /opt/spzh/libvorbis-1.3.5.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/libvorbis-1.3.5
./configure --prefix=/usr
make
make install

4.     xvid

xvidcore-1.1.3.tar.gz

Url:http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz

安装方法如下:

tar -zvxf /opt/spzh/xvidcore-1.1.3.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/xvidcore-1.1.3/build/generic   
./configure --prefix=/usr 
make   
make install

tar -zvxf /opt/spzh/xvidcore-1.1.3.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/xvidcore-1.1.3/build/generic   
./configure --prefix=/usr 
make   
make install

5.     x264

last_x264.tar.bz2 (其中包含的目录是x264-snapshot-20141218-2245)
Url:http://www.videolan.org/developers/x264.html
        ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
安装方法如下:

tar -jxvf /opt/spzh/last_x264.tar.bz2 -C /opt/spzh/wj
cd /opt/spzh/wj/x264-snapshot-20141218-2245
./configure --prefix=/usr --enable-shared
make 
make install 

 
tar -jxvf /opt/spzh/last_x264.tar.bz2 -C /opt/spzh/wj
cd /opt/spzh/wj/x264-snapshot-20141218-2245
./configure --prefix=/usr --enable-shared
make 
make install 

6.      libdts

libdca-0.0.5.tar.bz2

Url: http://www.videolan.org/developers/libdca.html

安装方法如下:

tar -jxvf /opt/spzh/libdca-0.0.5.tar.bz2 -C /opt/spzh/wj    
cd /opt/spzh/wj/libdca-0.0.5  
./configure --prefix=/usr   
make   
make install

tar -jxvf /opt/spzh/libdca-0.0.5.tar.bz2 -C /opt/spzh/wj    
cd /opt/spzh/wj/libdca-0.0.5  
./configure --prefix=/usr   
make   
make install

7.     a52

a52dec-0.7.4.tar.gz

http://liba52.sourceforge.net/downloads.html 

安装方法如下:

tar -zvxf /opt/spzh/a52dec-0.7.4.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/a52dec-0.7.4
./configure --prefix=/usr   
make   
make install

tar -zvxf /opt/spzh/a52dec-0.7.4.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/a52dec-0.7.4
./configure --prefix=/usr   
make   
make install

8.    faad2

faad2-2.7.tar.gz

url:http://www.audiocoding.com/downloads.html

安装方法如下:

tar -zvxf /opt/spzh/faad2-2.7.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/faad2-2.7
autoreconf -vif   
./configure --prefix=/usr --with-mp4v2 --enable-shared   
make   
make install 

tar -zvxf /opt/spzh/faad2-2.7.tar.gz -C /opt/spzh/wj
cd /opt/spzh/wj/faad2-2.7
autoreconf -vif   
./configure --prefix=/usr --with-mp4v2 --enable-shared   
make   
make install 

9.   faac

faac-1.28.tar.gz

http://www.audiocoding.com/downloads.html

安装方法如下:

tar -zvxf /opt/spzh/faac-1.28.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/faac-1.28   
./bootstrap   
./configure --prefix=/usr   
make    
make install

tar -zvxf /opt/spzh/faac-1.28.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/faac-1.28   
./bootstrap   
./configure --prefix=/usr   
make    
make install

10.    amr-nb

amrnb-10.0.0.0.tar.bz2

url:http://pan.baidu.com/s/1eQxUnYy

安装方法如下:

tar -jxvf /opt/spzh/amrnb-10.0.0.0.tar.bz2 -C /opt/spzh/wj  
cd /opt/spzh/wj/amrnb-10.0.0.0    
./configure --prefix=/usr   
make    
make install

tar -jxvf /opt/spzh/amrnb-10.0.0.0.tar.bz2 -C /opt/spzh/wj  
cd /opt/spzh/wj/amrnb-10.0.0.0    
./configure --prefix=/usr   
make    
make install

11.    amr-wb

amrwb-7.0.0.1.tar.bz2

url:http://pan.baidu.com/s/1eQxUnYy


安装方法如下:

tar -jxvf /opt/spzh/amrwb-7.0.0.1.tar.bz2 -C /opt/spzh/wj  
cd /opt/spzh/wj/amrwb-7.0.0.1    
./configure --prefix=/usr   
make    
make install  

tar -jxvf /opt/spzh/amrwb-7.0.0.1.tar.bz2 -C /opt/spzh/wj  
cd /opt/spzh/wj/amrwb-7.0.0.1    
./configure --prefix=/usr   
make    
make install   

至此,解码器安装完毕,开始安装ffmpeg。

二、安装ffmpeg

ffmpeg-0.8.3

tar -jxvf /opt/spzh/ffmpeg-0.8.3.tar.bz2 -C /opt/spzh/wj
cd /opt/spzh/wj/ffmpeg-0.8.3
./configure --enable-shared --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffplay

安装完成后执行
/usr/local/ffmpeg2/bin/./ffmpeg 时出现

error while loading shared libraries: libavdevice.so.53: cannot open shared object file: No such file or director

错误,是因为共享库文件安装到了/usr/local/ffmpeg2/lib目录下, 那么把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/ffmpeg2/lib" >> /etc/ld.so.conf
# ldconfig

tar -jxvf /opt/spzh/ffmpeg-0.8.3.tar.bz2 -C /opt/spzh/wj
cd /opt/spzh/wj/ffmpeg-0.8.3
<code class="cpp plain">./configure --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffpla</code><pre name="code" class="java">make    
make install 

 不出意外的话,ffmpeg到此已经安装完成了。 

运行ffmpeg,

/usr/local/ffmpeg2/bin/./ffmpeg  

/usr/local/ffmpeg2/bin/./ffmpeg

出现如下代码说明安装成功:

ffmpeg version 0.8.3, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar 25 2015 18:40:19 with gcc 4.4.5 20110214 (NeoKylin 4.4.5-6)
  configuration: --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffplay
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0

ffmpeg version 0.8.3, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar 25 2015 18:40:19 with gcc 4.4.5 20110214 (NeoKylin 4.4.5-6)
  configuration: --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffplay
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0


接下来说一下我在安装过程中出现的一些问题以及解决方法:

1.最后在安装ffmpeg时,可能会提示找不到yasm,所以需要安装一下yasm

yasm-1.3.0.tar.gz
yasm-1.3.0.tar.gz

安装方法如下:
tar -zvxf /opt/spzh/yasm-1.3.0.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/yasm-1.3.0   
./configure --prefix=/usr
make
make install
<pre name="code" class="java">tar -zvxf /opt/spzh/yasm-1.3.0.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/yasm-1.3.0   
./configure --prefix=/usr
make
make install

 2.提示找不到libopencore-amrnb和libopencore-amrwb,需要安装opencore-amr-0.1.3.tar.gz 

安装过程如下:

tar -zvxf /opt/spzh/opencore-amr-0.1.3.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/opencore-amr-0.1.3 
./configure --prefix=/usr
make
make install

tar -zvxf /opt/spzh/opencore-amr-0.1.3.tar.gz -C /opt/spzh/wj   
cd /opt/spzh/wj/opencore-amr-0.1.3 
./configure --prefix=/usr
make
make install

3.

在编译一个软件的时候,在 ./configure 和 make  之后可能会出现如下错误:

libtool: Version mismatch error.  This is libtool 2.4.2 Debian-2.4.2-1ubuntu1, but the
libtool: definition of this LT_INIT comes from libtool 2.4.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1ubuntu1
libtool: and run autoconf again.
make[5]: *** 1 Error 63
libtool: Version mismatch error.  This is libtool 2.4.2 Debian-2.4.2-1ubuntu1, but the
libtool: definition of this LT_INIT comes from libtool 2.4.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1ubuntu1
libtool: and run autoconf again.
make[5]: *** 1 Error 63

解决方法很简单:

运行 autoreconf -ivf 即可。


4.因为本机没有安装autoreconf,所以使用

apt-get install autoreconf2.13

安装了autoreconf之后就能使用

autoreconf -ivf 命令了

5.faac编译时候出现了

make[3]: *** [3gp.o] 错误 127
make[3]: Leaving directory `/root/ffmpeg-source/faac-1.28/common/mp4v2'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/root/ffmpeg-source/faac-1.28/common'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/ffmpeg-source/faac-1.28'
make: *** [all] 错误 2

对于这个问题,注释掉faac-1.28/common/mp4v2/mpeg4ip.h 里的第126行
char *strcasestr(const char *haystack, const char *needle);
重新编译就可以了


6.我开始的时候将解码器都安装在/opt/spzh/jmq文件夹下面,安装的ffmpeg的时候安装失败,通过在网上找资料发现资料中解码器大都安装在/usr下面,所以我又在没有卸载原来的解码器的情况下,在/usr下面又安装了一遍,再安装ffmpeg时就报找不到各种解码器的错误,其实我这些解码器已经安装了,后来才发现第二次安装ffmpeg的时候,他找的是第一次解码器安装的路径,所以有的解码器会找不到。解决方法:我们只需将第一次装解码器的那些文件删除或者 clean一下。

文章参考了http://blog.csdn.net/lintianlin/article/details/44651199,特此感谢作者

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值