#!/bin/bash
# FFMPEG FRESH INSTALLER PORN CMS

yum -y update

# remove old ffmpeg
yum -y remove libogg libvorbis libtheora faac faad

yum -y install subversion

# old installer
#cd /usr/src
#wget http://mirror.ffmpeginstaller.com/old/scripts/ffmpeg3/ffmpeginstall.3.2.1.tar.gz
#tar -xzvf ffmpeginstall.3.2.1.tar.gz
#cd ffmpeginstall.3.2.1
#./install.sh
#echo "ffmpeg 0.5.2.1 (old version) installed"
#sleep 2

# install ogg library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/libogg-1.2.0.tar.gz
tar zxfv libogg-1.2.0.tar.gz
cd libogg-1.2.0
./configure --prefix=/usr/local --libdir=/usr/local/lib
make clean
make
make install
echo "ogg library installed"
sleep 2

# install vorbis library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/libvorbis-1.3.1.tar.gz
tar zxfv libvorbis-1.3.1.tar.gz
cd libvorbis-1.3.1
./configure --prefix=/usr/local --libdir=/usr/local/lib
make clean
make
make install
echo "vorbis library installed"
sleep 2

# install theora library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/libtheora-1.1.1.tar.gz
tar zxfv libtheora-1.1.1.tar.gz
cd libtheora-1.1.1
./configure --prefix=/usr/local --libdir=/usr/local/lib
make
make install
echo "theora library installed"
sleep 2

# install yasm
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/yasm-1.1.0.tar.gz
tar zxfv yasm-1.1.0.tar.gz
cd yasm-1.1.0
./configure --prefix=/usr/local --libdir=/usr/local/lib
make clean
make
make install
echo "yasm installed"
sleep 2

# install x264 library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/x264-2245.tar.bz2
bzip2 -cd x264-2245.tar.bz2 | tar xvf -
cd /usr/src/x264-snapshot-20100908-2245
make distclean

# vps notice
# for vps cpu.c might need to be edited if ffmpeg fails
# run: cat /proc/cpuinfo
# edit /usr/src/x264*/common/cpu.c
# and edit line 172+ for family and model from cpuinfo
# to something like this:
#        if( family == 6 && (model == 9 || model == 14) )
#        {
#            cpu &= ~(X264_CPU_SSE2|X264_CPU_SSE3);
#            assert(!(cpu&(X264_CPU_SSSE3|X264_CPU_SSE4)));
#        }
#        /* Detect Atom CPU */
#        if( family == 6 && model == 28 )
#        {
#            cpu |= X264_CPU_SLOW_ATOM;
#            cpu |= X264_CPU_SLOW_CTZ;
#        }
#		/* Detect Virtual (PornCMS FIX) */
#		if( family == 6 && model == 13 )
#        {
#            cpu |= X264_CPU_SSE2;
#        }

./configure --prefix=/usr/local --libdir=/usr/local/lib --enable-shared --enable-pic --enable-visualize
make clean
make
make install
echo "x264 library installed"
sleep 2

# install mp4v2
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/mp4v2-1.9.1.tar.bz2
tar -jxvf mp4v2-1.9.1.tar.bz2
cd mp4v2-1.9.1
./configure --prefix=/usr/local --libdir=/usr/local/lib
make
make install
echo "mp4v2 library installed"
sleep 2

# install faac library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/faac-1.28.tar.gz
tar zxfv faac-1.28.tar.gz
cd /usr/src/faac-1.28/common/mp4v2
rm -rvf mpeg4ip.h
wget 'http://install.porncms.com/sources/ffmpeg/mpeg4ip.h'
cd /usr/src/faac-1.28
./configure --prefix=/usr/local --libdir=/usr/local/lib --with-mp4v2
make clean
make
make install
echo "faac library installed"
sleep 2

# install faad library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/faad2-2.7.tar.gz
tar zxfv faad2-2.7.tar.gz
cd faad2-2.7
./configure --prefix=/usr/local --libdir=/usr/local/lib --with-mp4v2
make clean
make
make install
echo "faad library installed"
sleep 2

# install vpx library
cd /usr/src
wget http://install.porncms.com/sources/ffmpeg/libvpx-v0.9.2.tar.bz2
tar xvfj libvpx-v0.9.2.tar.bz2
cd libvpx-0.9.2
./configure --prefix=/usr/local --libdir=/usr/local/lib
make clean
make
make install
echo "vpx library installed"
sleep 2

# ffmpeg 0.6 upgrade
cd /usr/src
rm -rvf ffmpeg-0.6
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg-0.6
cd ffmpeg-0.6
mkdir -m 755 /usr/src/tmp

# 6ch patch
wget http://install.porncms.com/sources/ffmpeg/6to2channel-resample.patch
patch /usr/src/ffmpeg-0.6/libavcodec/resample.c /usr/src/ffmpeg-0.6/6to2channel-resample.patch

#install
export TMPDIR=/usr/src/tmp
./configure --prefix=/usr/local --libdir=/usr/local/lib --enable-gpl --enable-postproc --enable-swscale --enable-shared --enable-gpl --enable-nonfree --enable-libvpx --enable-libvorbis --enable-pthreads --enable-libx264 --enable-libfaac --enable-libtheora --enable-avfilter 
make clean
make
make install
echo "ffmpeg upgraded to 0.6"
sleep 2

# copy h264 hq file
cd /usr/local/share/ffmpeg
wget 'http://install.porncms.com/sources/ffmpeg/libx264-hq.ffpreset'
chmod 0777 libx264-hq.ffpreset


# ffmpeg-php 0.6 upgrade
cd /usr/src
rm -rvf ffmpeg-php*
wget http://garr.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
tar -xjf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize
./configure --prefix=/usr/local --libdir=/usr/local/lib --with-ffmpeg --with-pic
rm -rvf ffmpeg_frame.c
wget 'http://install.porncms.com/sources/ffmpeg-php-0.6.0/ffmpeg_frame.c'
make clean
make
make install
echo "ffmpeg-php upgraded to 0.6"
sleep 2


# fix ffmpeg 0.6 ld.so.conf bug
cd /etc
rm -rvf /etc/ld.so.conf
wget 'http://install.porncms.com/sources/vps/etc/ld.so.conf'
ldconfig
echo "ffmpeg installed!"
sleep 5

# fix ffmpeg 0.6 ffmpeg.so bug  > php 5.1x only
#cd /usr/lib/php/modules
#rm -rvf /usr/lib/php/modules/ffmpeg.so
#wget 'http://install.porncms.com/sources/ffmpeg/ffmpeg.so'

# fix php.ini
cd /etc
rm -rvf php.ini
wget 'http://install.porncms.com/sources/vps/etc/php.ini'
chmod 0644 php.ini
echo "php.ini reverted"
sleep 2


service httpd restart

# end
echo "_______________________"
echo "                  done!"
echo "_______________________"
ffmpeg -version
