ffmpeg new install Print

  • 86

his post will provide you with the instructions to download and install ffmpeg, ffmpeg-php, flvtool, lame, mplayer, libogg, libvorbis, mencoder, and other codecs used with ffmpeg.
1    # cd /usr/local/src
1    wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
2    wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz
3    wget http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
4    wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
5    wget http://downloads.xiph.org/releases/ogg/libogg-1.2.0.tar.gz
6    wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.1.tar.gz
7    wget http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
8    wget http://ffmpeg.org/releases/ffmpeg-1.0.tar.gz
1    tar xvzf flvtool2-1.0.6.tgz
2    tar xvzf lame-3.98.4.tar.gz
3    tar jxvf ffmpeg-php-0.6.0.tbz2
4    tar xvzf libogg-1.2.0.tar.gz
5    tar xvzf libvorbis-1.3.1.tar.gz
6    tar jxvf essential-20071007.tar.bz2
7    tar jxvf mplayer-export-snapshot.tar.bz2
8    tar xvzf ffmpeg-0.6.tar.gz

Make a directory to store all the codecs:
1    # mkdir /usr/local/lib/codecs/

Install any necessary packages:
1    yum install gcc gmake make libcpp libgcc libstdc++ gcc4 gcc4-c++  ncurses-devel

Copy codecs for mplayer:
1    mv /usr/local/src/essential-20071007/* /usr/local/lib/codecs/
2    chmod -R 755 /usr/local/lib/codecs/

Installing Lame:
1    cd /usr/local/src/lame-3.98.4
2    ./configure
3    make && make install

Installing Libogg:
1    cd /usr/local/src/libogg*
2    ./configure && make && make install
3    Installing libvorbis:
1    cd /usr/local/src/libvorbis*
2    ./configure && make && make install

Installing flvtool2:
1    cd /usr/local/src/flvtool*
2    ruby setup.rb config
3    ruby setup.rb setup
4    ruby setup.rb install
1    # cd /usr/local/src/mplayer*
2    ./configure && make && make install

Installing ffmpeg PHP module
1    cd /usr/local/src/ffmpeg-*
2    ./configure --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared

export TMPDIR=$HOME/tmp
mkdir -p $TMPDIR

(If you need to customize your install, run “./configure –help” to see a complete list of the available flags)
1    make && make install
1    ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50
2    ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
3    ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
4    ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
5    ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51

Installing ffmpeg-php:
1    # cd /usr/local/src/ffmpeg-php*
2    phpize
3    ./configure

There’s a small issue in this version of ffmpeg-php which, when “make” is run, will cause the following error:
1    gcc -I. -I/usr/local/src/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/usr/local/src/ffmpeg-php-0.6.0/include -I/usr/local/src/ffmpeg-php-0.6.0/main -I/usr/local/src/ffmpeg-php-0.6.0 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/ -I/usr/include/php -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c  -fPIC -DPIC -o .libs/ffmpeg_frame.o
2    /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function 'zim_ffmpeg_frame_toGDImage':
3    /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: 'PIX_FMT_RGBA32' undeclared (first use in this function)
4    /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: (Each undeclared identifier is reported only once
5    /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:336: error: for each function it appears in.)
6    /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c: In function 'zim_ffmpeg_frame_ffmpeg_frame':
7    /usr/local/src/ffmpeg-php-0.6.0/ffmpeg_frame.c:421: error: 'PIX_FMT_RGBA32' undeclared (first use in this function)
8    make: *** [ffmpeg_frame.lo] Error 1

To correct this issue, we’ll update ffmpeg_frame.c and replace every instance of PIX_FMT_RGBA32 with PIX_FMT_RGB32
1    vi ffmpeg_frame.c
1    :%s/PIX_FMT_RGBA32/PIX_FMT_RGB32
2     
3    :w :q!

Now we can proceed with compiling:
1    make
2    make install

Now that we’ve compiled, let’s make sure that ffmpeg.so is in the proper extensions directory:
1    php -i | grep extensions
2    /usr/local/lib/php/extensions/no-debug-non-zts-20060613

Now we’ll tell PHP that it needs to load our module:
1    echo 'extension=ffmpeg.so' >> /usr/local/lib/php.ini

Restart apache:
1    service httpd restart

Now we’ll do a quick list of the modules to ensure that ffmpeg-php is loaded:
1    php -m | grep ffmpeg
2    ffmpeg

All done!

if you get
[root@server ~]# ffmpeg
ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

echo "/usr/local/lib" >> /etc/ld.so.conf
echo "/usr/lib" >> /etc/ld.so.conf
ldconfig

Ha estat útil la resposta?
Back

Cookies & Privacy Policy?

There are no cookies used on this site, but if there were this message could be customised to provide more details. Click the accept button below to see the optional callback in action...

More information
Select cookies to accept