Install ffmpeg mplayer flvtool2 yamdi x264 theora mp3lame vorbis ogg faac

 

 

This is a tutorial to enable video sharing support on Centos servers.

This should install ffmpeg, mplayer, mencoder, flvtool2, yamdi, x264, theora, mp3lame, vorbis, ogg, faac, faad2, xvid, mediainfo, mp4box, neroaacenc . These tools will enable on your server:

  • video and audio conversion
  • thumbnail generation
  • FLV meta injection (flvtool2, yamdi)
  • extra codecs (x264, theora, mp3lame, vorbis, ogg, faac, faad2, xvid)

This is functional and we update it each time we configure a new server.
Installation is done using the “root” account.

 

Attention: If you copy and paste commands below, make sure “-” are not converted to “.”.  If these get converted, edit “.” back to “-“. Some options use 2 * “-“.

Some prerequisites:

 

rpm -ivh  http://rpm.livna.org/livna-release.rpm

yum install libogg libogg-devel libvorbis libvorbis-devel
yum install x264 lame vorbis faac faad2 yamdi

The quick way to setup ffmpeg, mplayer, mencoder:

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

or if you have 64bit server

rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

yum install gcc gcc-c++ automake autoconf libtool yasm git subversion
yum install libogg zlib-devel libtool


yum install libogg-devel libvorbis libvorbis-devel
yum -y install ffmpeg ffmpeg-devel mplayer mencoder ffmpeg-libpostproc

 

 

Edit the /etc/ld.so.conf file and add the following lines:

/usr/local/lib
/usr/lib

GIT
(required to get X264)

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

cd /usr/local/src
wget http://www.kernel.org/pub/software/scm/git/git-1.8.4.2.tar.gz
tar -zxvf git-1.8.4.2.tar.gz
cd git-1.8.4.2
make prefix=/usr/local all
make prefix=/usr/local/ install
git –version
Or :
yum –disableexcludes=main install git
And git manpages:
cd /usr/local/src
wget http://www.kernel.org/pub/software/scm/git/git-manpages-1.6.0.4.tar.gz
cd /usr/local/share/man
tar -zxvf /usr/local/src/git-manpages-1.6.0.4.tar.gz

YASM

YASM is a modular assembler, it is required by the x264 package.

 

cd /usr/local/src/
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar zfvx yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make && make install
cd ..

X264

cd /usr/local/src/
git clone git://git.videolan.org/x264.git
cd /usr/local/src/x264
./configure – -enable-shared – -prefix=/usr
make &&  make install
ls -s /usr/local/lib/libx264.so /usr/lib/libx264.so
Essential Codecs
cd /usr/local/src/
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
tar xjvf essential-20071007.tar.bz2
mkdir /usr/local/lib/codecs/
mv essential-20071007/ /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/

Or all codecs:

cd /usr/local/src/

wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20110131.tar.bz2
tar xjvf all-20110131.tar.bz2

mkdir /usr/local/lib/codecs/

mv  all-20110131 /usr/local/lib/codecs/

LAME

cd /usr/local/src/

wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2F&ts=1285175656&use_mirror=switch
tar zxvf lame-3.98.4.tar.gz
cd /usr/local/src/lame-3.98.4
./configure
make && make install

OGG

cd /usr/local/src/
wget downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
tar zxvf libogg-1.1.3.tar.gz
cd /usr/local/src/libogg-1.1.3
./configure –enable-shared && make && make install
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

VORBIS

cd /usr/local/src/
wget downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz
tar zxvf libvorbis-1.1.2.tar.gz
cd /usr/local/src/libvorbis-1.1.2
./configure && make && make install

Theora
cd /usr/local/src/
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2
tar jxvf libtheora-1.1.1.tar.bz2
cd /usr/local/src/libtheora-1.1.1
./configure –prefix=/usr --enable-shared
make && make installls -s /usr/local/lib/libtheora.so /usr/lib/libtheora.so
FAAC
cd /usr/local/src/
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz
tar zxvf faac-1.28.tar.gz
cd /usr/local/src/faac-1.28
./configure –prefix=/usr
make && make install

FAAD2

cd /usr/local/src/
wget http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz
tar zxf faad2-2.6.1.tar.gz
cd faad2
autoreconf -vif
./configure –disable-drm –disable-mpeg4ip
make && make install

OpenJPEG
cd /usr/local/src/
wget http://openjpeg.googlecode.com/files/openjpeg_v1_3.tar.gz
tar zxvf openjpeg_v1_3.tar.gz
cd OpenJPEG_v1_3

make && make install
ldconfig
VPX

cd /usr/local/src/
wget http://webm.googlecode.com/files/libvpx-v1.1.0.tar.bz2
tar -xjf libvpx-v1.1.0.tar.bz2
cd libvpx-v1.1.0
./configure –prefix=/usr –enable-shared –disable-static
make && make install
Speex
wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz
tar -xvzf speex-1.2rc1.tar.gz
cd speex-1.2rc1
./configure –prefix=/usr –enable-shared –disable-static
make && make install
Xvid
cd /usr/local/src/
wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz
tar zxfv xvidcore-1.3.2.tar.gz
cd /usr/local/src/xvidcore/build/generic
./configure --enable-shared
make && make install
ls -s /usr/local/lib/libxvidcore.so.4.3 /usr/lib/libxvidcore.so.4.3

Before installing ffmpeg, setup some linking for scripts that look in certain locations for codecs:

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
ln -s /usr/local/lib/libavdevice.so.52 /usr/lib/libavdevice.so.52

ln -s /usr/lib/libtheora.so.0.3.10 /usr/local/lib/libtheora.so.0.3.10
ln -s /usr/lib/libx264.so.80 /usr/local/lib/libx264.so.80
ln -s /usr/lib/libtheora.so.0.3.10 /usr/local/lib/libtheora.so
ln -s /usr/lib/libx264.so.80 /usr/local/lib/libx264.so

FFMPEG (download latest from SVN)

export TMPDIR=$HOME/tmp
export LD_LIBRARY_PATH=/usr/local/lib/
cd /usr/local/src/
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

cd /usr/local/src/ffmpeg
./configure –enable-gpl –enable-version3 –enable-shared –enable-nonfree –enable-postproc –enable-libfaac –enable-libmp3lame –enable-libspeex –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libtheora –enable-libvorbis –enable-libvpx –enable-libx264 –enable-libxvid –enable-x11grab –extra-cflags=”-I/usr/local/include” –extra-ldflags=”-L/usr/local/lib”

make && make install
ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg

FFMPEG configure options use 2 x “-“. Older version can be downloaded with git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

ERROR: Xfixes not found #
fix: yum install libX*

 

MPLAYER

 

cd /usr/local/src/
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
cd /usr/local/src/mplayer
svn update
cd /usr/local/src/mplayer
./configure && make && make install

ln -s /usr/local/bin/mencoder /usr/bin/mencoder
ln -s /usr/local/bin/mplayer /usr/bin/mplayer

FLVTOOL2
First install Ruby from WHM.

cd /usr/local/src/
wget rubyforge.org/frs/download.php/9225/flvtool2_1.0.5_rc6.tgz
tar zxvf flvtool2_1.0.5_rc6.tgz
cd /usr/local/src/flvtool2_1.0.5_rc6/
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

YAMDI

 

cd /usr/local/src/
wget http://downloads.sourceforge.net/project/yamdi/yamdi/1.4/yamdi-1.4.tar.gz?use_mirror=ufpr
tar zxf yamdi-1.4.tar.gz
cd yamdi-1.4
gcc yamdi.c -o yamdi -O2 -Wall
mv yamdi /usr/bin/
yamdi -h

INSTALLATION RESULTS

mencoder: /usr/local/bin/mencoder
mplayer: /usr/local/bin/mplayer
yamdi: /usr/bin/yamdi

Add these shortcuts to /usr/bin if you need these there by default:
mencoder to /usr/local/bin/mencoder
mplayer to /usr/local/bin/mplayer

SuPHP fix

With suphp  “env -i” is required when executing php scripts.

exec(“env -i /usr/bin/php ” . $cmd.  ‘>/dev/null &’);

MediaInfo
http://mediainfo.sourceforge.net/en/Download/CentOS

wget http://downloads.sourceforge.net/zenlib/libzen0-0.4.14-1.i386.CentOS_5.rpm
wget http://downloads.sourceforge.net/zenlib/libzen0-devel-0.4.14-1.i386.CentOS_5.rpm
wget http://downloads.sourceforge.net/mediainfo/libmediainfo0-0.7.32-1.i386.CentOS_5.rpm
wget http://downloads.sourceforge.net/mediainfo/libmediainfo0-devel-0.7.32-1.i386.CentOS_5.rpm
wget http://downloads.sourceforge.net/mediainfo/mediainfo-0.7.32-1.i386.CentOS_5.rpm
rpm -vi libzen0-0.4.14-1.i386.CentOS_5.rpm
rpm -vi libzen0-devel-0.4.14-1.i386.CentOS_5.rpm
rpm -vi libmediainfo0-0.7.32-1.i386.CentOS_5.rpm
rpm -vi libmediainfo0-devel-0.7.32-1.i386.CentOS_5.rpm
rpm -vi mediainfo-0.7.32-1.i386.CentOS_5.rpm

ln -s /usr/bin/mediainfo /usr/local/bin/mediainfo

MP4Box

yum -y install freetype-devel SDL-devel freeglut-devel

wget -c http://mirror.ffmpeginstaller.com/source/gpac/gpac-full-0.4.5.tar.gz

tar -xzf gpac-full-0.4.5.tar.gz
cd gpac

./configure –prefix=/usr/local/cpffmpeg/ –extra-cflags=-I/usr/local/cpffmpeg/include/ –extra-ldflags=-L/usr/local/cpffmpeg/lib –disable-wx –strip

make && make lib &&  make apps && make install lib && make install

cp bin/gcc/libgpac.so /usr/lib

ln -s /usr/local/cpffmpeg/bin/MP4Box /usr/local/bin/MP4Box
ln -s /usr/local/cpffmpeg/bin/MP4Box /usr/bin/MP4Box

install -m644 bin/gcc/libgpac.so /usr/local/lib/libgpac.so
chmod +x /usr/local/lib/libgpac.so
ldconfig

neroAacEnc

wget ftp://ftp6.nero.com/tools/NeroDigitalAudio.zip
unzip NeroDigitalAudio.zip -d nero
cd nero/linux
sudo install -D -m755 neroAacEnc /usr/local/bin

ln -s /usr/local/bin/neroAacEnc /usr/bin/neroAacEnc

uploadprogress

cd /usr/local/src
wget http://pecl.php.net/get/uploadprogress-1.0.3.1.tgz

 

t

ar -zxvf uploadprogress-1.0.3.1.tgz
cd uploadprogress-1.0.3.1
phpize
./configure && make && make install

Edit /usr/lib/php.ini and add:

extension = “uploadprogress.so”

 

 

FFMPEG2Theora

 

wget http://v2v.cc/~j/ffmpeg2theora/ffmpeg2theora-0.29.linux32.bin
chmod +x ffmpeg2theora-0.29.linux32.bin
install -m 755 ffmpeg2theora-0.29.linux32.bin  /usr/local/bin/ffmpeg2theora

 

wget http://v2v.cc/~j/ffmpeg2theora/ffmpeg2theora-0.29.linux64.bin
chmod +x ffmpeg2theora-0.29.linux64.bin
install -m 755 ffmpeg2theora-0.29.linux64.bin /usr/local/bin/ffmpeg2theora

 

Also see:

http://www.vimp.com/en/documentation-faq-article/items/howto-install-the-transcoding-tools-on-redhat-centos-etc.html

ASM is a modular assembler, it is required by the x264 package.

codec:$ wget \
http://www.tortall.net/projects/yasm/releases/yasm-0.7.0.tar.gz
codec:$ tar zfvx yasm-0.7.0.tar.gz
codec:$ cd yasm-0.7.0
codec:$ ./configure
codec:$ make && make install
codec:$ cd ..

 

Install latest Red5 on Linux Server

Update: These instructions work for latest SVN red5 tags that build with ANT.

Updated for Red5 1.0 RC3 +
Updated for OpenJDK 1.6.0_24  (32bit/64bit).
Updated for ANT 1.9.4 .

Here is how we installed latest Red5 and JDK on a server with Linux CentOS . These hints can help you install on many linux VPS or Dedicated enviroments.
You will need root access to deploy new software on the server. On some dedicated/vps configuration providers only give a regular account that you can use to access root indirectly with su root. Process is more complicated as you have write access with first account only on your home: you need to exchange any files with a tool like WinSCP using that location.
We use WinSCP and PuTTy  on Windows and muCommander & Terminal on MacOS.

First, know your server (linux distribution and processor type ie. x86_64):

cat /etc/*release*
uname -a

Then, make sure there are all prerequisites to install the rpm:

yum install rpm-build redhat-rpm-config

Allow required ports (not necessary if already opened): 3690 (svn), 5080, 1935, 1936, 8088.  See more details at the end of this tutorial.


JAVA INSTALLATION

Easiest java to install is with:
yum install java-1.6.0-openjdk*

export JAVA_HOME=/usr/lib/jvm/jre

 

Or install latest JDK from http://www.oracle.com/technetwork/java/javase/downloads/index.html .
You can install latest Java6 JDK (scroll down) or latest (top) depending on applications you plan to use.

Use uname -a to see if you need to download a 64 bits version.

Went to root/tmp folder for downloads:
cd /root/tmp

We got Java SE Development Kit, JDK 6 Update 31. We selected linux multilanguage, right clicked > properties on the jdk-6u31-linux-i586-rpm.bin and downloaded it with wget urlon the server. It downloaded with a big name with parameters (ls to see after download). We use WinSCP so we right clicked, refreshed from there and then renamed the new file that showed up in the root home directory.
You can also rename it from shell. Make sure you use mv “old_long_name” new_name for the long name as it uses special characters.

Make sure you install JDK and not JRE.

wget http://download.oracle.com/otn-pub/java/jdk/6u31-b04/jdk-6u31-linux-x64-rpm.bin

Made it executable and executed it:

chmod a+x jdk-6u31-linux-i586-rpm.bin
./
jdk-6u31-linux-i586-rpm.bin

If it’s just .rpm install it with rpm -Uhv file :
rpm -Uhv jdk-7-linux-x64.rpm

Press space or enter to scroll terms and when it asks you type yes and hit enter.
If needed confirm Java DB update, yes ENTER.

We installed it on multiple servers and had to change some shortcuts on ones that already had an older java, so it runs the new one. Usually if preinstalled it’s located in a java or jdk folder in /usr or /usr/local .

Make sure  the shortcuts in /usr/local point to the new locations (/usr/local/jdk to /usr/java/jdk1.6.0_14 and /usr/local/jre to /usr/java/jdk1.6.0_14/jre) .
ln -s /usr/java/latest /usr/local/jdk
ln -s
/usr/java/latest/jre /usr/local/jre

Also /usr/bin/java shortcut should point to /usr/java/latest (not /etc/alternatives/java):
rm /usr/bin/java
ln -s /usr/java/latest/bin/java /usr/bin/java

export JAVA_HOME=/usr/java/latest/

Make sure this is the one used if you also have older versions installed:
java –version


ANT INSTALLATION

Downloaded ant (can be done from any mirror – see http://ant.apache.org/bindownload.cgi), unpacked it, moved it to a good location and added variable, shortcut.

Get ANT

wget http://www.eu.apache.org/dist//ant/binaries/apache-ant-1.9.4-bin.tar.gz
tar zxvf apache-ant-1.9.4-bin.tar.gz
mv apache-ant-1.9.4 /usr/local/ant

If older  ANT is preferred get one from http://archive.apache.org/dist/ant/binaries/ .
i.e. ANT 1.7.1
wget http://www.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz
tar zxvf apache-ant-1.7.1-bin.tar.gz
mv apache-ant-1.7.1 /usr/local/ant

Configure
export ANT_HOME=/usr/local/ant
ln -s /usr/local/ant/bin/ant /usr/local/bin/ant

Replace old ant
rm /usr/bin/ant
ln -s /usr/local/ant/bin/ant /usr/bin/ant

Checked ant version:
ant –version

If this can’t find java, make sure you run:
export JAVA_HOME=/usr/lib/jvm/jre 

Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/local/jdk/bin/java

SUBVERSION INSTALLATION

yum install subversion

If that doesn’t work because of something like Missing Dependency: perl(URI) >= 1.17 is needed by package subversion … maybe this can help:

Fix: Install perl uri:
wget http://mirror.centos.org/centos/5/os/i386/CentOS/perl-URI-1.35-3.noarch.rpm
rpm -Uvh perl-URI-1.35-3.noarch.rpm

Fix: This time got  “Error: Cannot retrieve repository metadata (repomd.xml) for repository: atrpms. Please verify its path and try again” .
Solution: yum –disablerepo=atrpms install subversion .

RED5 BUILD AND INSTALLATION

Then we downloaded Red5:
svn co http://red5.googlecode.com/svn/java/server/trunk red5

 If latest trunk has bugs or does not work fine with your required software you can download other versions from http://red5.googlecode.com/svn/java/server/tags/ .

Example:
svn co http://red5.googlecode.com/svn/java/server/tags/1_0_2_RC1/ red5

 

 

svn co http://red5.googlecode.com/svn/java/server/tags/1_0/ red5

 

 

 

svn co http://red5.googlecode.com/svn/java/server/tags/0_8_0/ red5
svn co http://red5.googlecode.com/svn/java/server/tags/0_9rc1/ red5

Built red5 :
cd red5
ant prepare
ant dist

You could also remove sample applications if you don’t plan to use these:
rm -rf /opt/red5/dist/webapps/live
rm -rf /opt/red5/dist/webapps/installer
rm -rf /opt/red5/dist/webapps/vod
rm -rf /opt/red5/dist/webapps/installer
rm -rf /opt/red5/dist/webapps/root/demos
rm -rf /opt/red5/dist/webapps/root/WEB-INF

 

 

When upgrading, copy webapps to new build:
cp -rf /opt/red5/dist/webapps/* /root/tmp/red5/dist/webapps/

Then rename old red5 (backup).

Move Red5 from home folder:
cd ..
mv red5 /opt/red5

Start Red5:

cd /opt/red5/dist
./red5.sh > start.log &

The > start.log is to have it output the logs in the file and & is to keep it running in the background.
Verified that Red5 is running:
ps aux | grep red5
This should report a long line with java and many options and this command. Check start.log if it failed to start.
Make sure these ports are active and red5 (java) is listening:

netstat -anp | grep 1935
netstat -anp | grep 5080

If 1935 shows up and 5080 doesn’t it probably means web server is not running. On latest versions Red5 no longer includes tomcat. See Red5 JEE Container Plugins for details.
You will need to overwrite conf/jee-container.xml with one extracted from plugin jar and create a plugins/ folder with multiple jars (get this from older red5 distributions).


START RED5 ON BOOT

The nice way would be to run Red5 as a service by adding a red5 file with execution permissions to /etc/rc.d/init.d :

#!/bin/bash
#
#
# chkconfig: 2345 85 85
# description: Red5 flash streaming server
# processname: red5
#

PROG=red5
RED5_HOME=/opt/red5/dist
DAEMON=$RED5_HOME/$PROG.sh
PIDFILE=/var/run/$PROG.pid

# Source function library
. /etc/rc.d/init.d/functions

[ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5

RETVAL=0

case “$1” in
start)
echo -n $”Starting $PROG: “
cd $RED5_HOME
$DAEMON >/dev/null 2>/dev/null &
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo $! > $PIDFILE
touch /var/lock/subsys/$PROG
fi
[ $RETVAL -eq 0 ] && success $”$PROG startup” || failure $”$PROG startup”
echo
;;
stop)
echo -n $”Shutting down $PROG: “
killproc -p $PIDFILE
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG
;;
restart)
$0 stop
$0 start
;;
status)
status $PROG -p $PIDFILE
RETVAL=$?
;;
*)
echo $”Usage: $0 {start|stop|restart|status}”
RETVAL=1
esac

exit $RETVAL

Then you can use service red5 start|stop|restart  .

Or add these lines to to /etc/rc.d/rc.local so it starts on each server start:
cd /opt/red5/dist
/opt/red5/dist/red5.sh > restart.log &

Make sure your run it from the right folder. The one in /opt/red5 will not work – you must run it from /opt/red5/dist/ .

When Red5 is running you should be able to access http://your-server-domain-or-ip:5080/ .

If it works first thing go to http://your-server:5080/installer/and install admin. Then to http://your-server:5080/admin/register.html and register an username and password. Then you can check application statistics anytime from http://your-server:5080/admin/ with server ip and the registered username, password.

RED 5 RESTART

Restart Red5 anytime you update files in the /opt/red5/dist/webapps folder – where all applications should be installed.

Usually these should work and should be used each time you add a new application.

1. Check if red5 is running:
ps aux | grep red5

2. Go to its folder and shut red5 down:

service red5 stop

or

cd /opt/red5/dist
./red5-shutdown.sh

3. See if it’s still running or not:
ps aux | grep red5

4. Restart it, and also make it output the logs into a file of your choice:
service red5 start

or

./red5.sh > start.log &

5. Make sure it’s back online:
ps aux | grep red5

We also noticed that red-shutdown.sh sometimes does not close it down to allow restart when webapps are added or updated. This usually occurs when red5 freezes becasue it encounters errors like running out of memory. So we run ps aux | grep red5 to see process id (first number: PID) and then run kill process id if it’s still alive.

ALLOWING PORTS

On some systems root cannot bind ports above the early 1000’s so red5 must be run from another account.

Verify that Red5 is listening on port 5080 if you can’t get http://yourserver:5080/:
netstat -anp | grep 5080

If using iptables enable these ports:
iptables -A INPUT -p tcp -m tcp -—dport 3690 -j ACCEPT
iptables -A INPUT -p tcp -m tcp —-dport 5080 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -—dport 1935 -j ACCEPT
iptables -A INPUT -p tcp -m tcp —-dport 1936 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -—dport 8088 -j ACCEPT

Sometimes ports need to be configured in a hardware firewall. Contact server provider / administrator for more details about enabling ports.

This info provided by a host could also be helpful.

Please be advised that custom iptables rules should be placed in the directory listed below.
/etc/sysconfig/iptables-custom

The software firewall rule is listed as follows:
# cat /etc/sysconfig/iptables-custom/99Red5 *filter

-A INPUT -p tcp -m tcp –dport 1935 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 1936 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 5080 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 8088 -j ACCEPT

COMMIT

RED5 & VIDEOWHISPER

This was done for the installation of VideoWhisper applications. To do that just download the latest videowhisper rtmp application, unzip it on your computer and copy the videowhisper folder and all its contents to/opt/red5/dist/webapps .  As verification, check that you have a /opt/red5/dist/webapps/videowhisper/WEB-INF/ folder on your server. After copying/updating this, restart the Red5 server (as explained above) and you can install the videowhisper video conferencing / live streaming scrips to use the new rtmp application.

The Red5 VideoWhisper RTMP Application has some cool settings, like enabling access with external players / archiving of all video streams as flv files / limiting access to certain domains / setting absolute paths for live streams and recordings to be able to share videos with other applications (i.e. video sharing). Edit all these in WEB-INF/red5-web.properties and restart the Red5 server.

If we forgot to mention something here, or you have any questions about this submit your inquiries on Video Whisper Contact Page or comment below.

An alternative to doing the red5 installation yourself would be to order red5 installation .

If you don’t have the time and experience to run your own server or vps, you should use managed red5 hosting .

cp -rf /opt/red5/dist/webapps/* /root/tmp/red5/dist/webapps/