在centos 5.4环境下安装 FFMPEG 和 FFMPEG-PHP 。

  1. 下载ffmepg及ffmpeg-php
    wget http://www.ffmpeg.org/releases/ffmpeg-export-snapshot.tar.bz2
    wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2?use_mirror=ncu
  2. 安装ffmpeg
    tar -xjf ffmpeg-export-snapshot.tar.bz2
    #进入解压后的源文件目录
    cd ffmpeg-export-2010-03-02/
    ./configure --prefix=/usr/local   --enable-shared
    make
    make install

    测试是否能正常使用:

    [root@mail ffmpeg-export-2010-03-02]# ffmpeg
    FFmpeg version SVN-r22144-snapshot, Copyright (c) 2000-2010 the FFmpeg developers
      built on Mar 30 2010 23:53:53 with gcc 4.1.2 20080704 (Red Hat 4.1.2-46)
      configuration: --prefix=/usr/local --enable-shared
      libavutil     50. 9. 0 / 50. 9. 0
      libavcodec    52.55. 0 / 52.55. 0
      libavformat   52.54. 0 / 52.54. 0
      libavdevice   52. 2. 0 / 52. 2. 0
      libswscale     0.10. 0 /  0.10. 0

    如果提示:“ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory”

    vi /etc/ld.so.conf.d/ffmpeg.conf
    #在里面加入:usr/local/lib,这个目录,为ffmpeg安装后libavdevice.so.52等lib文件所在目录。
    ldconfig -v
  3. 安装ffmpeg-php
    tar -xjf ffmpeg-php-0.6.0.tbz2
    cd ffmpeg-php-0.6.0
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config  --with-ffmpeg=/usr/local
    make test
    make
    make install
    #在php.ini中加入extension=ffmpeg.so

    如果在make test中发现错误提示:make: *** [ffmpeg_frame.lo] Error 1
    则:

    mv ffmpeg_frame.loT ffmpeg_frame.lo

    测试是否安装成功:

    php -r 'phpinfo();' | grep ffmpeg
    ffmpeg
    ffmpeg-php version => 0.6.0-svn
    ffmpeg-php built on => Mar 31 2010 14:17:14
    ffmpeg-php gd support  => enabled
    ffmpeg libavcodec version => Lavc52.55.0
    ffmpeg libavformat version => Lavf52.54.0
    ffmpeg swscaler version => SwS0.10.0
    ffmpeg.allow_persistent => 0 => 0
    ffmpeg.show_warnings => 0 => 0

    如果有ffmepg-php模块错误提示:php: symbol lookup error: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg.so: undefined symbol: register_ffmpeg_frame_class

    nm /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg.so|grep register_ffmpeg_frame_class
    #输出U register_ffmpeg_frame_class
    

    则修改ffmpeg_frame.c,将3处的PIX_FMT_RGBA32 更改为PIX_FMT_RGB32即可。

    vi ffmpeg_frame.c
    :%s/PIX_FMT_RGBA32/PIX_FMT_RGB32
    :w
    :q!
    ./configure --with-php-config=/usr/local/php/bin/php-config  --with-ffmpeg=/usr/local
    make test
    make
    make install

2 Replies to “ffmpeg ffmpeg-php 安装及出错解决办法

  1. annie

    非常感谢,多谢你的这篇文章,我的ffmpeg总算安装成功了! 略看了一下你的blog,以后还会继续细读

  2. Alex Hwang

    谢谢光临!

    在linux下安装ffmpeg 及 ffmpeg-php,是因为我一个朋友问问视频网站怎么弄,于是让我想到了我有几个个人视频格式需要转换成flv的,于是动手安装了ffmpeg,顺便将fmpeg-php也安装了。

    在安装 ffmpeg, ffmpeg-php 过程中,发现了几个小问题, 为了充分利用这个blog, 就记录在这儿了(以前都将技术相关的知识储存到个人gmail中,因为gmail检索功能很好)。记录这样更开放些,也有利于技术上互相交流。 ^_^

发表评论

邮箱地址不会被公开。 必填项已用*标注