FFMPEG을 가장쉽게 설치하는 방법(ffmpeg-php)


========================================================================================================

rpmforge로 yum repogetory 추가하면 yum으로 설치 가능하다.

rpm -Uhv http://rpmforge.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm


yum install -y ffmpeg.i386 ffmpeg-devel.i386 ffmpeg-libpostproc.i386 gstreamer-ffmpeg.i386
설치 후 php.ini에 모듈을 추가한다.
extension=ffmpeg.so
========================================================================================================

 

yum install gcc gcc-c++ libgcc gd gd-devel gettext freetype \
        freetype-devel ImageMagick ImageMagick-devel libjpeg* libjpeg-devel* \
        libpng* libpng-devel* libstdc++* libstdc++-devel* libtiff* \
        libtiff-devel* libtool* libungif* libungif-deve* libxml* libxml2* \
        libxml2-devel* zlib* zlib-devel* automake* autoconf* samba-common* \
        ncurses-devel ncurses patch make

 

gifsicle.i386 요거는 GIF,PNG 그림파일 애니메이션 라이브러리  rpm포지에서 yum설치

Apache, Mysql, Php 가 정상적으로 설치되어 있으며 정 안되면 그냥 Full옵션으로 깔려있다는
전제 하에 아래를 작업하시면 됩니다.

1.  우선 디렉토리 생성.. /home/ 방이 있다면...암튼 아무곳에나 방 만듬

mkdir /home/ffmpeg
cd /home/ffmpeg

2.소스 가져오기..
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 .

wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2
wget http://downloads.xiph.org/releases/theora/libtheora-1.0

3. 소스 압축풀기

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.  코덱디렉토리 만들고 가져오기.

mkdir /usr/local/lib/codecs/
mv ./essential-20061022/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/

5.  최신버젼으로 가져오기위해.. SVN 설치...

yum install subversion
yum install ruby
yum install ncurses-devel
more..

6. SVN을 이용해 최신버젼가져오기

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

7.  LAME 컴파일
cd ~/ffmpeg/lame-3.97
./configure
make
make install

 

-----------------------------------
8. libOGG 컴파일
cd ~/ffmpeg/libogg-1.1.3
./configure
make
make install

9. libVorbis 컴파일
cd ~/ffmpeg/libvorbis-1.1.2
./configure
make
make install
-----------------------------------

=> 그냥  yum install libvorbis -y  하면됨.


10.  flvtool2 컴파일(flv파일의 인덱스를 재생성해주는 유틸리티입니다.)
cd ~/ffmpeg/flvtool2_1.0.5_rc6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

11. MPlayer 컴파일
cd ~/ffmpeg/mplayer
./configure
make
make install
more..

 


12. 코덱 셋업해주기..
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

 

 

13. FFMPEG 컴파일..
cd ~/ffmpeg/ffmpeg
./configure --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared

[ --enable-libogg    버전 업으로 인하여 옵션 빠짐 ]

--------------------------------------------------------------------------------

컴파일 시 svn 에러나 libvorbis 을 찾을수 없다고 나어면
svn최신 update 및 libvorbis도 업데이트 하고 libvorbis- dev도 설치한다.
yum update

--------------------------------------------------------------------------------


echo '#define HAVE_LRINTF 1' >> config.h
make
make install


*** ffmpeg rpm ************

wget http://dag.wieers.com/rpm/packages/ffmpeg/ffmpeg-devel-0.4.9-0.9.20070530.el5.rf.i386.rpm

wget http://dag.wieers.com/rpm/packages/ffmpeg/ffmpeg-libpostproc-0.4.9-0.9.20070530.el5.rf.i386.rpm

wget http://dag.wieers.com/rpm/packages/ffmpeg/ffmpeg-0.4.9-0.9.20070530.el5.rf.i386.rpm

****************************


14. FFMPEG-PHP 컴파일 ..
cd ~/ffmpeg/ffmpeg-php-0.5.0
phpize
./configure --enable-shared --with-php-config=/usr/bin/php-config
 
make
make install  하고나면

[root@fmpg ffmpeg-php-0.5.0]# make install
Installing shared extensions:    /usr/local/php/lib/php/extensions/no-debug-zts-20060613/  <-- 또는
Installing shared extensions:    /usr/local/php4/  <-- 뭐 이런식으로 표시됨 (php가 설치된 환경에 따라 다름)

15. FFMPEG-PHP  확장모듈..(php.ini 경로 정확하게)
echo 'extension=ffmpeg.so' >> /usr/local/Zend/etc/php.ini

16. 아파치 재시작하기.
service httpd restart  (또는 소스컴파일작업자 등에 따라  apachectl restart ..)

17. 올라왔는지 확인은 phpinfo();에서 확인하심 됩니다.
php -r 'phpinfo();' | grep ffmpeg

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.

# 17번에서 Error:cannot restore segment prot after reloc: Permission denied 이런 메세지가 있으면..
vi /etc/sysconfig/selinux
SELINUX=enforcing

위와 같은 설정이 있다면 위부분을
SELINUX=disabled 로 변경
시스템 부팅 selinux가 커널쪽에 무슨 설정이 있다고 합니다 그래서 리붓

차후 확인 php -r 'phpinfo();' | grep ffmpeg 정상적으로 보임

[테스트]
ffmpeg -i video.wmv -ar 22050 -ab 32 -f flv -s 320x240 video.flv | flvtool2 -U stdin video.flv


요즘 스터디 덕분에 리눅스라는 OS를 다룬다.

먼가 남다른 느낌이다. 남들과 다르다는 그느낌?!ㅋㅋ

수많은 배포판 중에서 나는 우분투(ubuntu)리눅스를 사용한다.

왜냐면 형들이 하라고해서.....;;;

멋도 몰라서 시작한거다~ㅋㅋㅋㅋ ㅡㅡ;;

이제 리눅스를 공부해가며 점점 알아져 가는듯 하다!!ㅎ

이러한 시점에 리눅스에 대한 첫 포스트를 한번 해볼까한다...^^;;
(쑥스~;;)

리눅스는 유니스를 기반으로 개발되었다고 할수있는데 먼저 유니스에 대해 알아보았다~

유니스의 특징으로는

1. 여러 유저가 접속할수있는 Multi User System
2. 한가지만이 아닌 여러 작업을 할수있는 Multi Processing System
3. 최초 TCP/IP기반으로 이루어진 네트워크
4. 이기종간 컴퓨터의 이식성이있다.
5. C언어를 기반으로 개발되었는데 유닉스 개발자인 Dennis Ritchie은 C언어 개발자이다...;;

이런 유니스를 최고라하여 'The One'이라도 표한한다고 한다~

유니스는 많은 기업과 대학교에서 많은 종류의 유니스가 만들어졌다.

이런 많은 유니스들이 호환이 되지않아서 미국 국방성에서 통일된 표준으로 POSIX를 발표한다.

이 표준안에 만족하지 않은 많은 기업들이 보완하여 만든 표준안이 XPG3이다.


이제 리눅스의 탄생배경을 알아보자!!ㅋ

리눅스는 핀란드의 헬싱키 대학에서 리누스 토발즈 (Linus B.Tovals)라는 사람이 대학시절 혼자 개발한것이다.(1991년)

유니스를 PC에 적합하게 만든 미니스를 기반으로 하여 새로운 커널을 만든것이다.

리차드 스톨만이 창안한 FSF(Free Software Foundation)의 GUN(Gun's Not Unix)프로젝트에서 지원을 하게되고

전세계 프로그래머들이 인터넷을 통하요 개발에 참여하여 현재의 리눅스가 개발되었다.
(오픈소스의 대표적 성공사례라 들수있다.)

리눅스의 특징으로는

1. 유니스와 유사한 체제로 유니스의 모든 기능을 포함하고있다.
2. 오픈소스로 인터넷을 매개로 발전해 왔다.
3. Open Project형식을 갖는다.
4. 자유로우며 독립적이다. (GPL)
5. 소스가 공개되어있다.
6. 결정적으로 가장 중요한거!! 무료배포인다!!ㅋㅋㅋ

리눅스를 지원하는 플랫폼으로는 인텔/ 알파/ 스팍 3대 플랫폼으로 인텔을 벗어나지 못할것이라는 걱정을
덜어주세 되었다!!

리눅스 배포판으로는 Radhat,  알짜, 데미안, 터보리눅스 등등이 있는데

그중에 나는 Ubuntu를 쓴다는거~ㅋㅋ

리눅스의 커널로서는 그림으로 보겠다!!



그림을 설명하고 싶지만 잘몰라서 일단 넘어가겠다...ㅡㅡ;;

커널에 대해서는 더 공부를 해야겠다...아직 커널 자체가 무엇인지 개념이 안잡힌다...

글을 읽어도 이해가 안된다는....ㅠㅠ

진짜 공대로 수업을 들으러 가야겠다!!ㅋㅋㅋ

그럼 오늘은 이만!!

+ Recent posts