php-ffmpeg установка на Centos 5
Запись создана 29 июля, 2008
Статья Установка FFMPEG и FFMPEG-PHP на CentOS вызвала много вопросов. Решил сделать упрошённую инструкцию для CentOS release 5.2 (Final) (2.6.18-92.el5 i386). Проверено на нескольких серверах.
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/mplayer-codecs-20061022-1.i386.rpm
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/mplayer-codecs-extra-20061022-1.i386.rpm
rpm -ivh mplayer-codecs-*
rpm -ivh /home/distr/CentOS/automake-1.9.6-2.1.noarch.rpm
rpm -ivh /home/distr/CentOS/libtool-1.5.22-6.1.i386.rpm
yum install -y flvtool2 lame lame-devel libogg libogg-devel libvorbis libvorbis-devel ffmpeg ffmpeg-devel mplayer mencoder
wget http://dfn.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.3.1.tbz2
bunzip2 ffmpeg-php-0.5.3.1.tbz2
tar xvf ffmpeg-php-0.5.3.1.tar
cd ffmpeg-php-0.5.3.1
phpize
./configure
make && make test && make install
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/mplayer-codecs-extra-20061022-1.i386.rpm
rpm -ivh mplayer-codecs-*
rpm -ivh /home/distr/CentOS/automake-1.9.6-2.1.noarch.rpm
rpm -ivh /home/distr/CentOS/libtool-1.5.22-6.1.i386.rpm
yum install -y flvtool2 lame lame-devel libogg libogg-devel libvorbis libvorbis-devel ffmpeg ffmpeg-devel mplayer mencoder
wget http://dfn.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.3.1.tbz2
bunzip2 ffmpeg-php-0.5.3.1.tbz2
tar xvf ffmpeg-php-0.5.3.1.tar
cd ffmpeg-php-0.5.3.1
phpize
./configure
make && make test && make install
make test может выдать failure, но это не всегда справедливо. Вставьте строчку extension=ffmpeg.so в php.ini и рестартните Apache.
ниже привожу php-шный скрипт для проверки php-ffmpeg
<?php
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
if(!extension_loaded($extension)) {
dl($extension_soname) or die("Can't load extension $extension_fullname\n");
}
$frame = 6;
$time = time ();
$movie = new ffmpeg_movie('/usr/local/apache2/htdocs/clock.avi', 1);
$duration = $movie->getDuration();
if ( $duration > 6 ){
$minutes = floor($movie -> getDuration ()/ 60);
$seconds = $movie -> getDuration ()% 60 ;
}
echo 'File: <font color="red">' . $_SERVER [ 'DOCUMENT_ROOT' ]. '/clock.avi</font> longs ' . $duration . ' seconds<br />' ;
$img = $_SERVER [ 'DOCUMENT_ROOT' ]. '/' . $time . '_' . $frame . '.jpg' ;
$ff_frame = $movie -> getFrame ( $frame );
if ( $ff_frame ){
$gd_image = $ff_frame -> toGDImage ();
if ( $gd_image ) {
imagepng ( $gd_image , $img );
imagedestroy ( $gd_image );
}
}
echo $minutes . ' min ' . $seconds . ' sec.<br />' ;
echo '<img src="' . $time . '_' . $frame . '.jpg" />' ;
$franecount = $movie->getFrameCount();
$framerate = $movie->getFrameRate();
$filename = $movie->getFilename();
$comment = $movie->getComment();
echo "<br /><br />number of frames in a movie or audio file.".$franecount."<br />";
echo "frame rate of a movie in fps".$framerate."<br />";
echo "path and name of the movie file or audio file.".$filename."<br />";
echo "comment field from the movie or audio file.".$comment."<br />";
?>
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
if(!extension_loaded($extension)) {
dl($extension_soname) or die("Can't load extension $extension_fullname\n");
}
$frame = 6;
$time = time ();
$movie = new ffmpeg_movie('/usr/local/apache2/htdocs/clock.avi', 1);
$duration = $movie->getDuration();
if ( $duration > 6 ){
$minutes = floor($movie -> getDuration ()/ 60);
$seconds = $movie -> getDuration ()% 60 ;
}
echo 'File: <font color="red">' . $_SERVER [ 'DOCUMENT_ROOT' ]. '/clock.avi</font> longs ' . $duration . ' seconds<br />' ;
$img = $_SERVER [ 'DOCUMENT_ROOT' ]. '/' . $time . '_' . $frame . '.jpg' ;
$ff_frame = $movie -> getFrame ( $frame );
if ( $ff_frame ){
$gd_image = $ff_frame -> toGDImage ();
if ( $gd_image ) {
imagepng ( $gd_image , $img );
imagedestroy ( $gd_image );
}
}
echo $minutes . ' min ' . $seconds . ' sec.<br />' ;
echo '<img src="' . $time . '_' . $frame . '.jpg" />' ;
$franecount = $movie->getFrameCount();
$framerate = $movie->getFrameRate();
$filename = $movie->getFilename();
$comment = $movie->getComment();
echo "<br /><br />number of frames in a movie or audio file.".$franecount."<br />";
echo "frame rate of a movie in fps".$framerate."<br />";
echo "path and name of the movie file or audio file.".$filename."<br />";
echo "comment field from the movie or audio file.".$comment."<br />";
?>
clock.avi есть в любой винде, в папке C:\WINDOWS\clock.avi
Схожие темы
» Запись из раздела CentOS Linux, PHP, web server | 5 комментариев
Комментарии
5 комментариев to “php-ffmpeg установка на Centos 5”
Ответить
такое вот выдает
make: *** [ffmpeg-php.lo] Error 1
смотрите configure.log
аналогичная проблема.
что там смотреть? у меня лог заканчивается на:
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || { (exit 1); exit 1; }
fi
И не заработает. Тут такая версия ffmpeg-php, что граблей в большинстве случаев не избежать.
Надо из svn грузит старую версию.
Олег, Вы ошибаетесь. я уже на несколько десятков сервреров ставил.