zoukankan      html  css  js  c++  java
  • Linux下ffmpeg的完整安装

    最近在做一个企业项目, 期间需要将用户上传的视频转成flv格式或mp4格式并用flash插件在前端播放, 我决定采用ffmpeg (http://www.ffmpeg.org/ )实现. 当然以前也用过ffmpeg, 但是没有安装额外的库, 只是源代码下简单地 ./configure, 最后发现好多功能都用不了, 比如最流行的x264编码器. 所以决心完整地安装一下ffmpeg, 经过两天痛苦地折腾, 终于成功了, 现在将过程记录下来. 主要参考了 [1] 和 [2] 两篇博文, 其中 [1] 是2007年写成的, 其中所提到的依赖库版本比较老, 本人安装的都是相应最新的版本.

    首先要安装各种解码器

    1、lame
    lame-3.99.5.tar.gz
    Url:http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309
    安装方法如下:

    1     tar -zxvf lame-3.99.5.tar.gz  
    2     cd lame-3.99.5  
    3     ./configure --enable-shared 4     make  
    5     make install  

    2、libogg
    libogg-1.3.1.tar.gz
    Url:http://www.xiph.org/downloads/
    安装方法如下:

    1     ./configure 2     make  
    3     make install  

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

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

    1     ./configure 2     make  
    3     make install  

    4、xvid
    xvidcore-1.3.2.tar.gz
    Url:http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz
    安装方法如下:

    1     tar zvxf xvidcore-1.3.2.tar.gz  
    2     cd xvidcore-1.3.2/build/generic  
    3     ./configure4     make  
    5     make install  

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

    1    tar -jxvf latest_x264.tar.bz2
    2     ./configure  
    3     make  
    4     make install  
    

    6、libdts
    libdca-0.0.5.tar.bz2
    Url: http://www.videolan.org/developers/libdca.html
    安装方法:

    1     tar -jxvf libdca-0.0.5.tar.bz2 
    2     cd libdca-0.0.5  
    3     ./configure 4     make  
    5     make install  

    7、a52
    a52dec-0.7.4.tar.gz           (这个库从2002年就没有更新过了)
    http://liba52.sourceforge.net/downloads.html      
    安装方法:

    1     ./configure 2     make  
    3     make install  

    8、faad2
    faad2-2.7.tar.gz
    http://www.audiocoding.com/downloads.html
    安装方法

    1     autoreconf -vif  
    2     ./configure  --with-mp4v2 --enable-shared  
    3     make  
    4     make install  

    9、faac
    faac-1.28.tar.gz
    http://www.audiocoding.com/downloads.html
    安装方法:

    1     tar zxvf faac-1.28.tar.gz  
    2     cd faac-1.28  
    3     ./bootstrap  
    4     ./configure 5     make   
    6     make install  

    10、amr-nb
    amrnb-10.0.0.0.tar.bz2
    http://ftp.penguin.cz/pub/users/utx/amr/ ( 从此处下载最新版本 )
    安装方法:

    1     ./configure 2     make  
    3     make install  

    11、amr-wb
    amrwb-7.0.0.1.tar.bz2
    http://ftp.penguin.cz/pub/users/utx/amr/ ( 从此处下载最新版本 )
    安装方法:

    1     ./configure 2     make  
    3     make install  


    12、最关键的一步, 安装ffmpeg

    
    
    1   ./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-ffplay
    2   make  
    3   make install  
    

     在./configure的时候会报错, 提示说没有libopencore-amrnb和libopencore-amrwb两个库. 我参考了 [2], 使用如下命令安装它们:

    sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
    

     如果./configure的时候加入 --enable-shared, 编译安装没有问题. 但是运行ffmpeg命令就会出错:

     relocation error: /usr/local/lib/libavfilter.so.3: symbol sws_get_class, version LIBSWSCALE_2 not defined in file libswscale.so.2 with link time reference;
    

     这时可以参考 [3], 大意是说跟gstreamer的动态库冲突了, 要卸载gstreamer. 但是如果卸载了gstreamer我的多媒体软件多不能用了. 所以我卸载了ffmpeg并重新编译成静态库. 安装完之后, 运行ffmpeg成功, 输出如下:

    ffmpeg version 2.0.1 Copyright (c) 2000-2013 the FFmpeg developers                                                      
      built on Oct 25 2013 17:40:51 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)                                              
      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      52. 38.100 / 52. 38.100
      libavcodec     55. 18.102 / 55. 18.102
      libavformat    55. 12.100 / 55. 12.100
      libavdevice    55.  3.100 / 55.  3.100
      libavfilter     3. 79.101 /  3. 79.101
      libswscale      2.  3.100 /  2.  3.100
      libswresample   0. 17.102 /  0. 17.102
      libpostproc    52.  3.100 / 52.  3.100
    Hyper fast Audio and Video encoder
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
    

    [1] http://yezi.iteye.com/blog/139399

    [2] http://www.learndiary.com/2011/04/ubuntu-linux-%E4%B8%8B-ffmpeg-%E5%8F%8A-mencoder-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E5%B0%8F%E7%BB%93/

    [3] http://blog.csdn.net/nil_foc/article/details/6547047

  • 相关阅读:
    可变速率的语音变调效果
    低音增强
    低质量音频伪装高质量音频的检测方法
    离线版-端点检测代码重写
    检测带人声的音乐
    音乐流派分类初步结果
    音乐和人声自动判别小结
    梯度下降法[转]
    梳状滤波器滤除谐波
    项目管理实战之团队管理 对团队的管理需要重视以下几个方面 一个系统不仅需要优秀的分析和设计,更需要一个良好的过程将其从蓝图转化为实现。这个过程中最重要的是对团队的管理,也就是人的管理
  • 原文地址:https://www.cnblogs.com/wanghetao/p/3386311.html
Copyright © 2011-2022 走看看