zoukankan      html  css  js  c++  java
  • ffmpeg安装的问题

    php语音转换需要安装ffmpeg文件

    参考地址:

    http://thierry-xing.iteye.com/blog/2017864

    http://diogomelo.net/blog/11/encoder-codec-id-86017-not-found-output-stream-00-compile-ffmpeg-yourself

    ubuntu上安装ffmpeg

    博客分类:
     

    安装包和主要步骤:

    1. 首先安装系统基础环境

    RHEL & CentOS 系列:yum install -y automake autoconf libtool gcc gcc-c++

    Debian & Ubuntu 系列:apt-get install automake autoconf libtool gcc gcc-c++

    2. 下载最新的FFMpeg源码包

    FFMpeg官方下载地址:http://ffmpeg.org/download.html

    一般直接使用最新版本,下载完成后解压缩,进入源码文件夹,运行“./configure --help”查看帮助,这里主要是为了确认需要安装的扩展,有些扩展默认是已经开启的,有些是需要单独下载扩展源码包进行编译的。以我的需求为例,需要单独编译yasm、lame、OenCore AMR、AmrNB和AmrWB,其中lame是MP3解码器。

    3. 编译所需源码包

    从各个官方地址下载上述五种源码包,为了保证兼容最新版本的ffmpeg,请务必也下载最新版本的源码:

    yasm:http://yasm.tortall.net/Download.html

    lame:http://lame.sourceforge.net/download.php

    OenCore AMR:http://sourceforge.net/projects/opencore-amr

    AmrNB & AmrWB:http://www.penguin.cz/~utx/amr

    分别解压缩并编译上述源码包,直接使用“./configure && make && make install”即可。

    4. 编译FFMpef

    回到刚才的FFMpeg源码目录,打开所需扩展并且编译FFMpeg:

    ./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared

    make && make install

    ldconfig

    最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。

    5. 可能遇到的问题

    ffmpeg默认安装目录为“/usr/local/lib”,有些64位系统下软件目录则为“/usr/lib64”,编译过程中可能会出现“ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory”等类似的错误,解决办法是建立软链接或者移动库文件到相应的目录:

    ln -s /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0

    mv /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0

    6. 使用方法

    MP3转换AMR: ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr

    AMR转换MP3: ffmpeg -i 1.amr 1.mp3

    遇到问题及解决:

    1. ERROR: libopenjpeg not found

    http://code.google.com/p/openjpeg/downloads/detail?name=openjpeg-1.5.1.tar.gz&can=2&q=

    下载openjpeg-1.5.1的代码,注意不要下载openjpeg-2.0的,否则ffmpeg跟openjpeg的接口不支持,编译会处错误。

    configure 
    make,make install

    找到头文件是在/usr/local/include/openjpeg-1.5.1下面,而ffmpeg在连接的时候,其实是/usr/local/include,所以提示说“ERROR: libopenjpeg not found”。将/usr/local/include/openjpeg-1.5.1下面的头文件“openjpeg.h”拷贝到/usr/local/include下面。

    1,x264也是有这个问题,x264.h这个文件要放在/usr/local/include下,而不是在/usr/local/下单独建个子目录放。 其他的库都是在make install的时候自己建的子文件夹。

    需要将libx264的库文件拷贝到/usr/local/lib下
    或者直接在configure的时候,改变路径,如下所示:
    ./configure --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
    即可。

    2. ERROR:libfdk_aac not found

    http://sourceforge.net/projects/opencore-amr/?source=directory

    下载fdk-aac-0.1.1.tar.gz 

    执行 

    configure

    make

    make install

    3. ERROR:libilbc not found

    https://github.com/dekkers/libilbc

    git clone git://github.com/dekkers/libilbc.git

    解压

    安装cmake,如下所示

    sudo apt-get install cmake

    创建一个build目录,执行:

    cd build
    cmake ..           (这里的..意思是,如果是一个.表示CMakeLists.txt在当前路径下,两个..表示CMakeLists.txt在上一层目录下)

    cmake install ..
    make                (在build/bin下会找到可执行文件。)

    make install      (将生成的库拷贝到linux相关目录下)

    4. ERROR: libmp3lame >= 3.98.3 not found

    sudo apt-get install libmp3lame-dev

    5. ERROR: libopencore_amrnb not found

    sudo apt-get install libx264-dev libxvidcore-dev libopencore-amrwb-dev libopencore-amrnb-dev libfaad-dev libfaac-dev libmp3lame-dev 
    libtwolame-dev liba52-0.7.4-dev libcddb2-dev libcdaudio-dev libcdio-cdda-dev libvorbis-dev libopenjpeg-dev

    (5) git chone git://git.videolan.org/x264.git
    configure
    make && make install
    (6) ERROR: libvo_aacenc not found
    http://sourceforge.net/projects/opencore-amr/files/vo-aacenc/vo-aacenc-0.1.2.tar.gz/download
    (7) ERROR: libvo_amrwbenc not found
    http://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/
    (8) ERROR: libvpx decoder version must be >=0.9.1
    http://code.google.com/p/webm/downloads/detail?name=libvpx-v1.1.0.tar.bz2&can=2&q=
    (9)编译 ffplay 需要 libsdl1.2-dev 库:
    sudo apt-get install libsdl1.2-dev (10)ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file

    Solution:
    Search the file libavdevice.so.52 on the server using the ‘find’ command

    1
    # find / -name libavdevice.so.52

    You need to add the path to the directory the file is in, in the ‘ld.so.conf’ file. If for example the file is located under “/usr/local/lib” directory, execute

    1
    # vi /etc/ld.so.conf

    and add the following at the bottom of the file

     
    /usr/local/lib

    7. Encoder (codec id 86017) not found for output stream #0.0

    解决方案:http://diogomelo.net/blog/11/encoder-codec-id-86017-not-found-output-stream-00-compile-ffmpeg-yourself

  • 相关阅读:
    创建Variant数组
    ASP与存储过程(Stored Procedures)
    FileSystemObject对象成员概要
    Kotlin 朱涛9 委托 代理 懒加载 Delegate
    Kotlin 朱涛 思维4 空安全思维 平台类型 非空断言
    Kotlin 朱涛7 高阶函数 函数类型 Lambda SAM
    Kotlin 朱涛16 协程 生命周期 Job 结构化并发
    Proxy 代理模式 动态代理 cglib MD
    RxJava 设计理念 观察者模式 Observable lambdas MD
    动态图片 Movie androidgifdrawable GifView
  • 原文地址:https://www.cnblogs.com/xingmeng/p/5039895.html
Copyright © 2011-2022 走看看