How To: Install Current FFmpeg and FFmpeg-PHP in CentOS/RHEL with x264, Xvid, MP3, AAC and more!
First of all, I’m going to assume you already have httpd and php installed. If you don’t have them already you should install them now. I recommend Jason Litka’s Yum Repository.
This guide is written with bash comments, so the whole text block below can be copied and pasted into an install.sh file if you’d rather not go through step by step. I wouldn’t recommend it though, as something could always go wrong, and it could be challenging hunting down the problem in that massive wall of output lines!
#!/bin/bash
# Mplayer Codecs
# Switch to working directory
cd /usr/local/src
# Download the codec files needed
wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-amd64-20071007.tar.bz2
# Extract the codec files
bunzip2 essential-amd64-20071007.tar.bz2; tar xvf essential-amd64-20071007.tar
# Create a directory for the codecs & import them
mkdir /usr/local/lib/codecs/
mv essential-amd64-20071007/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs
# FLVTool2
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
# Extract the Source files
tar zxvf flvtool2-1.0.6.tgz
# Compile
cd /usr/local/src/flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
# LAME MP3 Encoder
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.sourceforge.net/lame/lame-398-2.tar.gz
# Extract the Source files
tar zxvf lame-398-2.tar.gz
# Compile
cd /usr/local/src/lame-398-2
./configure
make && make install
# libOGG
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.xiph.org/releases/ogg/libogg-1.1.4rc1.tar.gz
# Extract the Source files
tar zxvf libogg-1.1.4rc1.tar.gz
# Compile
cd /usr/local/src/libogg-1.1.4rc1
./configure
make && make install
# libVorbis
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.3.tar.gz
# Extract the Source files
tar zxvf libvorbis-1.2.3.tar.gz
# Compile
cd /usr/local/src/libvorbis-1.2.3
./configure
make && make install
# liba52
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
# Extract the Source files
tar zxvf a52dec-0.7.4.tar.gz
# Compile
cd /usr/local/src/a52dec-0.7.4
./configure --enable-shared=PKGS
make && make install
# libFAAD2
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz
# Extract the Source files
tar zxvf faad2-2.7.tar.gz
# Compile
cd /usr/local/src/faad2-2.7
autoreconf -vif
./configure --disable-drm --disable-mpeg4ip
make && make install
# libFAAC
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
# Extract the Source files
tar zxvf faac-1.28.tar.gz
# Compile
cd /usr/local/src/faac-1.28
./bootstrap
./configure --disable-mp4v2
make && make install
# YASM (required by x264)
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.0.tar.gz
# Extract the Source files
tar zxvf yasm-0.7.0.tar.gz
# Compile
cd /usr/local/src/yasm-0.7.0
./configure
make && make install
# x264 daily snapshot
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090901-2245.tar.bz2
# Extract the Source files
bzip2 -d x264-snapshot-20090901-2245.tar.bz2; tar xvf x264-snapshot-20090901-2245.tar
# Compile
cd /usr/local/src/x264-snapshot-20090901-2245
./configure --enable-mp4-output --enable-shared --enable-pthread
make && make install
# XVID
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.gz
# Extract the Source files
tar zxvf xvidcore-1.2.2.tar.gz
# Compile
cd /usr/local/src/xvidcore/build/generic
./configure
make && make install
# Install SVN/Ruby
yum install -y subversion ruby ncurses-devel
# Fix few Lib issues for next steps
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig -v
# MPlayer Core
# Switch to working directory
cd /usr/local/src
# Get the latest version from the subversion
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
# Compile
cd /usr/local/src/mplayer
./configure
make && make install
# FFMPEG
# Switch to working directory
cd /usr/local/src
# Get the latest version from the subversion
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
# Compile
cd /usr/local/src/ffmpeg
./configure --enable-gpl --enable-postproc --enable-nonfree --enable-postproc --enable-libfaad --enable-avfilter --enable-pthreads --enable-libxvid --enable-libx264 --enable-libmp3lame --enable-libfaac --disable-ffserver --disable-ffplay --enable-shared
echo '#define HAVE_LRINTF 1' >> config.h
make && make install
# 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
# Few tasks before compiling FFMPEG-PHP
yum install -y automake autoconf libtool
# FFmpeg-php
# Switch to working directory
cd /usr/local/src
# Download the source files needed
wget http://downloads.sourceforge.net/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
# Extract the Source files
bunzip2 ffmpeg-php-0.6.0.tbz2; tar xvf ffmpeg-php-0.6.0.tar
# Compile
cd /usr/local/src/ffmpeg-php-0.6.0
phpize
./configure
make
make install
# Add FFMPEG-PHP as an extension of PHP
# Add this line to your php.ini file (Check the correct path of php.ini)
echo "extension=ffmpeg.so" >> /etc/php.ini
# Restart Apache to load FFMPEG-PHP
service httpd restart
# Cleanup
cd ..
rm -f -r ./ffmpeg-php
Wow! That was long…glad that’s over. Anyway, you should check and make sure it worked by running phpinfo() in php and searching for a block called ‘ffmpeg’. If anyone has any suggestions for improvements to the script or other encoders I should add let me know.
Akikan – A Soda Can Harem.

Ever wondered what it would be like if you were about to drink a can of melon soda when suddenly it transformed into a cute, young girl? Yeah, me neither–but this bizarre concept turned out to be a win, in my opinion. It sprinkles a fresh twist on the harem genre with a main character that is…well…not some wussy, girl-fearing loner. Instead he is a mountain of sarcasm, topped with a thick layer of innuendo and narcissism.

Kakeru Daichi is a 16-year-old high school student and collector of aluminum soda cans–he has also been, for all 16 years, single. While on his way home he stops at a vending machine to purchase a melon soda, but he does not anticipate the coming disaster that would unfold. He gets home, has a quick shower and then takes a refreshing sip of his newly purchased lemon soda…only he finishes that sip with a cute blond girl locking lips with him. The girl, known as an Akikan, is glad to have finally transformed into her human form, however; she’s not so glad to find Kakeru lacking any form of clothing short of a towel over his shoulders. Needless to say she freaks and sends him flying with her strange carbonated beverage powers.

As it turns out, this is not an entirely unusual happening. Soda cans turning into girls have been relatively prevalent lately and are under investigation by the Department of Economy. Leading the investigation is Hidehiko Otoya, a government official who also happens to be flaming gay. He appears at Kakeru’s doorstep with his assistant and starts feeling him up before he even introduces himself. Kakeru is somewhere between panic and shock at this point, so the assistant steps in and tames the overly foward Hidehiko and drags him out the door. Kakeru leaps from disaster to disaster, each more disasterous than the last and all the while still pantsless.

The premise is certainly an odd one, but the writers did an excellent job of shaping it into something hilarious. The comedy in the show is very blunt and always tries to push the boundary just a bit further. I’m really looking forward to more episodes of this show and is definitely at the top of my watch list so far from this season.

The music provided a perfect accent to the quirky hilarity that had me laughing all throughout the show and at the same time was quite catchy. Many people underestimate the importance of audio in video medias–try playing a Tales game on mute and you’ll understand what I mean. Audio is a very important aspect in the creation of a good show and this one handled it brilliantly. Not only was the music great, the voices matched perfectly–it’s hard to capture so much sarcasm as Kakeru’s character, but they pulled it off flawlessly.

I highly recommend anyone that likes a good laugh have a look at this show because it is absolutely brillient. Just don’t watch it too late at night or you might get some angry phone calls from your neighbors.
Gallery