Linux上部署FFMpeg

作者:  最后修改:2013年12月10日  浏览数:534

  安装FFMPEG的目的:ZCMS平台上传视频音频时所依赖的软件。

  安装FFMPEG前,先要安装其依赖的第三方编码器库,这样才能支持多种格式的转换。

  所以要先装好编码器库后,最后装FFMPEG。

 

1. 安装前准备编译的环境

  yum install -y automake autoconf libtool gcc gcc-c++

 

2. 把要用的jar包都拷到一个目录下/home/software

 

3. 在/etc/ld.so.conf里面加入

  /usr/local/bin

  /usr/local/lib

  加入这两句的目的:让后面安装的第三方编码库等存放到我们制定的目录中去

  /usr/local/bin

  /usr/local/lib

 

4. 解压并安装一系列第三方编码器库和组件,要注意的是:不是所有的命令都一样,有不同的地方,装完后,记得执行命令:ldconfig,作用:ffpmeg能按/etc/ld.so.conf配置找到安装的第三方编码器库。

 

  安装lame

  1)解压:tar -zxvf lame-3.99.5.tar.gz  

  2)cd lame-3.99  

  3)/configure --enable-shared 

  4) make  

  5) make install  

  6) ldconfig

 

  安装yasm 

  1)解压:tar -zxvf yasm-1.2.0.tar.gz  

  2)cd yasm-1.2

  3)/configure --enable-shared 

  4) make  

  5)make install  

  6) ldconfig

 

  安装xvidcore (注意目录位置,不在直接的解压后的文件下)

  1) tar zvxf xvidcore-1.1.3.tar.gz  

  2)cd xvidcore-1.1.3/build/generic  

  3) ./configure

  4)make  

  5) make install  

  6) ldconfig

 

  安装x264  (注意格式为.tar.bz2)

  1) bunzip2 last_x264.tar.bz2  

  2) tar xvf last_x264.tar

  3) cd x264-snapshot-20121030-2245/

  4) ./configure  --enable-shared  

  5) make  

  6) make install  

  7) ldconfig

 

  安装a52dec

  1)解压:tar -zxvf a52dec-0.7.4.tar.gz

  2)cd a52dec

  3) /configure --enable-shared=PKGS && make && make install

  4)ldconfig

  

  安装 faac

  1) 解压:tar -zxvf faac-1.26.tar.gz

  2)cd faac

  3)/bootstrap

  4)/configure

  5)make && make install

  6) ldconfig

  编译报错mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’

  解决方法:

  从123行开始修改此文件vi common/mp4v2/mpeg4ip.h,到129行结束。
  修改前:
  #ifdef __cplusplus
  extern "C" {
  #endif
  char *strcasestr(const char *haystack, const char *needle);
  #ifdef __cplusplus
  }
  #endif
  修改后:
  #ifdef __cplusplus
  extern "C++" {
  #endif
  const char *strcasestr(const char *haystack, const char *needle);
  #ifdef __cplusplus
  }
  #endif

 

  安装 faad2

  1)解压:tar -zxvf faad2-2.6.1.tar.gz

  2)cd faad2

  3) ./bootstrap

  4) ./configure

  5) make && make install

  6) ldconfig

 

        安装 vo_aacenc  http://archive.ubuntu.com/ubuntu/pool/universe/v/vo-aacenc/vo-aacenc_0.1.3.orig.tar.gz

  1)解压:tar -zxvf vo-aacenc_0.1.3.orig.tar.gz

  2)cd vo-aacenc_0.1.3

  4) ./configure --enable-shared

  5) make && make install

  6) ldconfig

  到此ffmpeg的编码库也装完了。

 

     安装ffmpeg

  tar zvxf ffmpeg-1.0.tar.gz

  cd fempeg执行下面的语句:

  ./configure --enable-gpl  --enable-postproc --enable-nonfree --enable-postproc --enable-swscale --enable-avfilter --enable-pthreads --enable-libxvid --enable-libx264 --enable-libmp3lame  --enable-libfaac --enable-libvo-aacenc --enable-version3

  make && make install

  ldconfig

  到此ffmpeg也装完了,直接执行命令ffmpeg,出现ffmpeg版本信息以及执行命令帮助就说明装完了。

  ffmpeg -i /usr/09.mp4 -y -acodec libmp3lame -ab 128 -ar 22050 -vcodec h264 -b 96k -r 25 /usr/01.flv  执行转换试试行不行

 

 

可能出现的问题:

  执行ffmpeg时,报错

  Unknown encoder  ****

  原因,对应的编码库没有装好,或者ffmpeg没有装载到他

  首先到/usr/local/bin 和  /usr/local/lib 目录下查看报错的没有的库文件是否存在,有的话,执行ldconfig,再ffmpeg就能解决问题(注意,我们一开始配置的文件/etc/ld.so.conf里的路径)。如果指定的库文件没有存在,就是对应的编码库没安装好,找到对应的软件解压后文件夹,在前面的安装步骤里的./confgure 后

  执行:

  ldconfig

  make clean && make && make install

  重新安装一次

  现有文件里的编码库我在32位和64位的linux 系统中都安装成功了。

       检查ffmpeg版本发布日志对支持编码库情况,比如h264编码是ffmpeg0.9版本才开始有的,ffmpeg-0.6下是不支持的。所以需要高版本额ffmpeg再重新编译。

补充:

  安装vo-aacenc: