zoukankan      html  css  js  c++  java
  • Install FFMPEG Web Server

    A lot of people are getting hiring people to install FFMPEG as they think it’s a difficult task, but it’s much easier than you think if you follow these instructions. You should have root access & basic Linux knowledge to the server to follow these instructions.

    1. Create a directory to do our work in
    mkdir ~/ffmpeg
    cd ~/ffmpeg

    2. Get all the source files
    wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/ essential-20061022.tar.bz2
    wget http://rubyforge.org/frs/download.php/9225/ flvtool2_1.0.5_rc6.tgz
    wget http://easynews.dl.sourceforge.net/sourceforge/ lame/lame-3.97.tar.gz
    wget http://superb-west.dl.sourceforge.net/sourceforge/ ffmpeg-php/ffmpeg-php-0.5.0.tbz2
    wget http://downloads.xiph.org/releases/ ogg/libogg-1.1.3.tar.gz
    wget http://downloads.xiph.org/releases/ vorbis/libvorbis-1.1.2.tar.gz

    3. Extract all the source files
    bunzip2 essential-20061022.tar.bz2; tar xvf essential-20061022.tar
    tar zxvf flvtool2_1.0.5_rc6.tgz
    tar zxvf lame-3.97.tar.gz
    bunzip2 ffmpeg-php-0.5.0.tbz2; tar xvf ffmpeg-php-0.5.0.tar
    tar zxvf libogg-1.1.3.tar.gz
    tar zxvf libvorbis-1.1.2.tar.gz

    4. Create the codecs directory & import them
    mkdir /usr/local/lib/codecs/
    mv /essential-20061022/* /usr/local/lib/codecs/
    chmod -R 755 /usr/local/lib/codecs/

    5. Install SVN/Ruby (Depends on OS, this is for RHEL/CentOS)
    yum install subversion
    yum install ruby
    yum install ncurses-devel

    6. Get the latest FFMPEG/MPlayer from the subversion
    svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
    svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

    7. Compile LAME
    cd ~/ffmpeg/lame-3.97
    ./configure
    make
    make install

    8. Compile libOGG
    cd ~/ffmpeg/libogg-1.1.3
    ./configure
    make
    make install

    9. Compile libVorbis
    cd ~/ffmpeg/libvorbis-1.1.2
    ./configure
    make
    make install

    10. Compile flvtool2
    cd ~/ffmpeg/flvtool2_1.0.5_rc6
    ruby setup.rb config
    ruby setup.rb setup
    ruby setup.rb install

    11. Compile MPlayer
    cd ~/ffmpeg/mplayer
    ./configure
    make
    make install

    12. Compile FFMPEG
    cd ~/ffmpeg/ffmpeg
    ./configure --enable-mp3lame --enable-libogg --enable-vorbis --disable-mmx --enable-shared
    echo '#define HAVE_LRINTF 1' >> config.h
    make
    make install

    13. Finalize the codec setups
    ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50
    ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
    ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
    ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
    ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51

    14. Compile FFMPEG-PHP
    cd ~/ffmpeg/ ffmpeg-php-0.5.0
    phpize
    ./configure
    make
    make install

    15. Install FFMPEG-PHP (make sure the php.ini path is correct.)
    echo 'extension=/usr/local/lib/php/extensions/ no-debug-non-zts-20020429/ffmpeg.so' >> /usr/local/Zend/etc/php.ini

    16. Restart Apache to load FFMPEG-PHP (Depends on OS, this is for RHEL/CentOS)
    service httpd restart

    17. Verify if it works
    php -r 'phpinfo();' | grep ffmpeg

    If you get a few lines such as
    ffmpeg
    ffmpeg support (ffmpeg-php) => enabled
    ffmpeg-php version => 0.5.0
    ffmpeg.allow_persistent => 0 => 0

    Then everything is installed and working. FFMPEG, FFMPEG-PHP, MPlayer, MEncoder, flv2tool, LAME MP3 encoder & libOGG.

    Cara lain

    Instruction.
    Anything that I want you to type in shell will be written inbetween [ these ]
    Open install.php on your personal computer, with notepad or your php editor.
    Press cTRL + A to select all the text, then press CTRL + C to copy the text
    into the clipboard buffer.
    Login to your shell, with putty, carry out the following steps for execution
    [ cd / ]
    [ vi install.php ]
    press [ i ]
    NOTE : You should now have vi open with --INSERT-- written at the bottom of the
    screen
    Hover over putty with your mouse and press the right mouse key to paste all the
    text into the vi document.
    Press the ESCAPE ( esc ) key once, then
    type [ :wq ] and press enter.
    then [ php install.php ] and press enter, if all goes to plan your done, you'll
    be told where the library is - you should probably copy it to somewhere simpler
    to remember, like your /home directory.
    If you have any problem, please report it to http://krakjoe.com/bug/ffmpeg-installer

    /** v2
    ffmpeg-installer is a php script intended for server administrators ( root ) to
    download, configure, and install lame, ffmpeg, and ffmpeg-php
    **/
    # Location to do all the building and downloading to
    define("MAIN_BASE", "/usr/src/ffmpeg-installer");
    # Install prefix
    define("MAIN_PREFIX", "/usr"); 
    # Lame MP3 Codec version
    define("LAME_VERSION", "3.97"); 
    # ffmpeg-php Version
    define("FFMPEG_PHP_VERSION", "0.5.0"); 
    # ffmpeg sources, use checkout-snapshot
    define("FFMPEG_SOURCE", "http://ffmpeg.mplayerhq.hu/ffmpeg-checkout-snapshot.tar.bz2");
    /**
    Stop editing this file now, upload it to your server and execute it as root
    **/
    class main
    {
    function main( )
    {
    @exec( sprintf( "rm -rf %s", MAIN_BASE ), $return );
    if( !@chdir( MAIN_BASE ) and !@mkdir( MAIN_BASE ) ) $this->xit( sprintf( "Cannot change toor create %s", MAIN_BASE ) );
    $this->toConsole( "We'll start by downloading lame sources");
    if( !$this->download( sprintf("http://kent.dl.sourceforge.net/sourceforge/lame/lame-%s.tar.gz", LAME_VERSION ), "lame-source.tar.gz" ) ):
    $this->xit( sprintf( "Cannot download lame-%s from default mirror, try the default 3.9.7", LAME_VERSION ) );
    else:
    $this->toConsole( "Downloaded lame sources, about to unpack" );
    $this->_unpack( "lame-source.tar.gz" );
    if( !chdir( sprintf( "lame-%s", LAME_VERSION ) ) ) $this->xit( "Cannot change to lame sources directory" );
    $this->toConsole( "Unpacked lame sources, about to compile" );
    exec( sprintf( "./configure --prefix=%s && make && make install", MAIN_PREFIX ) );
    if( !$this->is_installed( "lame" ) ) $this->xit( "Lame failed to install" );
    $this->toConsole( "Lame installed, about to download ffmpeg");
    chdir( MAIN_BASE );
    if( !$this->download( FFMPEG_SOURCE, basename( FFMPEG_SOURCE ) ) ):
    $this->xit( "Cannot download ffmpeg sources" );
    else:
    $this->toConsole( "Downloaded ffmpeg sources about to unpack" );
    $this->_unpack( basename( FFMPEG_SOURCE ), "xjf" );
    exec( sprintf( "mv ffmpeg-checkout-%s* ffmpeg-sources", date( "Y-m" ) ) );
    if( !chdir( "ffmpeg-sources" ) ):
    $this->xit( "Cannot change to ffmpeg sources directory");
    else:
    $this->toConsole( "Unpacked ffmpeg sources, about to compile" );
    putenv( sprintf( "TMPDIR=%s", MAIN_BASE . "/temp" ) );
    mkdir( MAIN_BASE . "/temp" );
    exec( sprintf( "./configure --prefix=%s --cross-compile --enable-libmp3lame --enable-shared && make && make install", MAIN_PREFIX ) );
    if( !$this->is_installed("ffmpeg") ) :
    $this->xit( "ffmpeg failed to install" );
    else:
    $this->toConsole( "ffmpeg installed, about to download ffmpeg-php");
    chdir( MAIN_BASE );
    $sources = sprintf("http://kent.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-%s.tbz2", FFMPEG_PHP_VERSION );
    if( !$this->download( $sources, basename( $sources ) ) ):
    $this->xit( "Cannot download $sources" );
    else:
    $this->toConsole( "ffmpeg-php downloaded, about to unpack" );
    $this->_unpack( basename( $sources ), "xjf" );
    if( !chdir( sprintf("ffmpeg-php-%s", FFMPEG_PHP_VERSION ) ) ):
    $this->xit( sprintf("Cannot change to ffmpeg-php-%s", FFMPEG_PHP_VERSION ) );
    else:
    $this->toConsole( "ffmpeg-php unpacked, about to compile" );
    passthru( "phpize" );
    exec( "./configure && make", $return );
    passthru( "make install" );
    $this->toConsole( "All complete, extension location on line above" );
    exec( sprintf( "rm -rf %s", MAIN_BASE ) );
    endif;
    endif;
    endif;
    endif;
    endif;
    endif;

    function download( $source, $destination )
    {
    $written = null;
    $read = fopen( $source, "r" );
    if( !$read ) $this->xit( "Error : Cannot open $source" );
    $write = fopen( $destination, "wb" );
    if( !$write ) $this->xit( "Error : Cannot open $destination");
    while( !feof( $read ) ):
    $written += fwrite( $write, fread( $read, 1024 ) );
    endwhile;
    fclose( $read ); fclose( $write );
    return $written;
    }
    function _unpack( $archive, $format = "xzf" )
    {
    passthru( "tar $format $archive" ); 
    unlink( $archive ); 
    }
    function toConsole( $message ){ return printf( "%srn", $message ); }
    function xit( $message ) { exec( sprintf("rm -rf %s", MAIN_BASE) ); die( sprintf( "Error : %srn", $message ) ); }
    function is_installed( $program ) { exec( "which $program", $return ); return $return[0]; }

    }
    $main = new main( );
    ?>

  • 相关阅读:
    C# 代码中调用 Javascript 代码段以提高应用程序的配置灵活性(使用 Javascript .NET 与 Jint)
    非软件行业公司自建软件开发部门能力不强的原因分析
    编程经验点滴----巧妙解决 Oracle NClob 读写问题
    编程经验点滴----在 Oracle 数据库中保存空字符串
    这几天上海移动网络可以直接打开 Google Play 了
    品牌电脑硬盘损坏后,使用MediaCreationTool从微软官方下载正版Windows到USB做安装盘
    编程经验点滴----使用接口表保存可能并发的业务,然后顺序处理
    生产打印系统的一些汇总--商业合同方面
    生产打印系统的一些汇总--概要
    外观模式
  • 原文地址:https://www.cnblogs.com/top5/p/1930303.html
Copyright © 2011-2022 走看看