Centos 5.2 üzerine Red5 Flash Server Kurulumu
| Red5, java ile yazılmış olan açık kodlu bir Flash Serverdır. Red5′ın kullanım alanları arasında, Audio/Video Streaming, Recording Client Streams, Live Stream Publishing gibi konular bulunuyor. Yani red5 ile Mp3 yada FLV formatındaki medya dosyalarının yayınını yapabiliyorsunuz ya da karşıdaki bir bilgisayarın kamerasından alınan görüntüyü sunucunuza FLV formatında kaydedebiliyorsunuz ve ya iki bilgisayar arasında Video Chat uygulaması gerçekleştirebiliyorsunuz. | ![]() |
Bu yazıda, Red5′ın Centos 5.2 üzerine nasıl kurulabileceği ile ilgili notlar bulabilirsiniz.
Öncelikle, Red5 kurabilmek için sisteminizde öncesinden kurulu olması gereken bazı yazılımlar var:
- subversion
- java jdk
- ant 1.7
Eğer, java jdk kurulu değilse, red5 kurulumu için yaptığım Java 1.6 JDK kurulumuna ait notları içeren şu dökümandan yararlanabilirsiniz: http://www.syslogs.org/2008/10/centos-uzerine-sun-java-kurulumu-jdk/ Subversion isimli paket red5′ın trunk versiyonunu çekmek için gereklidir. Bu yazıyı yazarken latest stable version’unda bulunan bir bugdan dolayı derleme işlemi gerçekleştirilemiyordu. Ama trunk version’da sorun yok.
Gerekli paketlerin kurulumu:
Subversion
Subversion’ın sisteminizde kurulu olup olmadığına yum kullanarak bakabilirsiniz.
# yum list |grep subversion |grep installed
Eğer herhangi bir sonuç dönmezse aşağıdaki şekilde kurulum yapabilirsiniz. Eğer kurulu ise bu adımı geçebilirsiniz.
# yum install subversion
Sun Java JDK
Subversion sisteme yüklendi ise bundan sonraki aşama Java JDK kurulumunu yapmaktır. CentOS ile birlikte gelen java sürümü JDK içermediği ve aynı durum SUN’dan indirebileceğiniz Java kurulum paketleri için de geçerli olduğundan dolayı custon bir Java kurulumu yapmanız gerekmektedir. Ben de red5 kurulumu yaparken JDK sorunu ile karşılaştım ve bu nedenle custom java kurulumu yaptım. Ayrıca, konu ile ilgili bir kurulum dökümanı da hazırladım. Dökümana http://www.syslogs.org/2008/10/centos-uzerine-sun-java-kurulumu-jdk/ sayfasından erişebilirsiniz. Yönergeleri takip edip Java kurulumunu yaptıktan sonra buraya geri dönüp red5 kurulumuna devam edebilirsiniz.
Ant 1.7
Aşağıdaki adımları izleyerek Ant 1.7.1 kurulumunu kolayca yapabilirsiniz.
/usr/local/src dizinine geçip paketi download edin.
# cd /usr/local/src # wget http://godel.cs.bilgi.edu.tr/apache/ant/binaries/apache-ant-1.7.1-bin.tar.gz
Sıkıştırılmış dosyayı açın ve adı apache-ant-1.7.1 olarak gelen dizini yeniden isimlendirip /usr/local/ altına taşıyın. (ant’ın /usr/local dizininde bulunması şart değildir. İsterseniz farklı bir dizine de taşıyabilirsiniz.
# tar zxf apache-ant-1.7.1-bin.tar.gz # mv apache-ant-1.7.1 /usr/local/ant
Sisteme, ant dizininin nerede durduğunu söyleyelim ve ant’ınhome dizininde bulunan ant binarysine /usr/bin/ altından erişilebilmesi için bir link oluşturalim.
# export ANT_HOME=/usr/local/ant # ln -s /usr/local/ant/bin/ant /usr/bin/ant
Ant kurulumu bu kadar.
Red5 Kurulumu
Simdi gene /usr/local/src dizinine geçin ve red5′ı aşağıdaki komut ile sisteminize download edin.
# cd /usr/local/src # svn co http://red5.googlecode.com/svn/java/server/trunk red5
Not: Yukarıdaki komut red5′ın trunk versiyonunu download etmektedir. Normal şartlarda red5′ın sitesinde ki download sayfasından güncel sürümün tar ball’unu indirmeniz mümkün. Ancak ilgili sayfadaki son sürüm derleme aşamasında sorun çıkarıyor. Bu nedenle svn’den trunk versiyonu kurdum; sorun çıkarmadı.
Kodu download ettiyseniz derleme aşamasına geçebilirsiniz. Ama öncesinde sisteme Java’nın home dizinine ait yolu göstermeniz gerekiyor. (Ant’ın dizinini yukarıda göstermiştik). Java kurulumunu verdiğim adresten yaptıysanız Java Home dizini aşağıda belirtildiği gibi olacaktır. Ancak Java’yı kurarken başka bir path belirtmiş olabilirsiniz. bu durumda kendi path’i kendinizinki ile değiştirmeyi unutmayın.
# export JAVA_HOME=/usr/lib/jvm/java-1.6.0/
Java yolunu da export ettikten sonra aşağıdaki adımları takip ederek red5 kurulumunu yapabilirsiniz.
/usr/local/src dizininde bulunan red5 dizinini /usr/local dizini altına taşıyın.
# mv red5 /usr/local/
/usr/local/red5 dizinine geçip aşağıdaki komutları sırası ile vererek derleyin.
# cd /usr/local/red5 # /usr/local/ant/bin/ant prepare # /usr/local/ant/bin/ant dist
Derleme işlemi sorunsuz olarak bittiyse, red5 server çalıştırılmaya hazır demekdir. dist dizinine geçip red5′ı çalıştırın.
# cd dist # sh red5.sh
Not: sh red5.sh komutu verdiğiniz zaman red5 başlatılacak ancak command promtp düşmeyecektir. CRTL-C yaparsanız, red5 stop olacaktır. Bu nedenle bundan sonraki aşamaları ikinci bir ssh bağlantısı üzerinden yapın. Biraz sonra anlatılacak olan red5′ı sisteme servis olarak ekleme işleminden sonra bu sorun ortadan kalkacaktır.
Herşey yolunda gittiyse, şu anda red5′ın çalışıyor olması gerekir. Kontrol etmek için aşağıdaki adımları uygulayabilirsiniz.
red5 http server 5080. ve rtmp servisi de 1935. portları dinler. ps ile ilgili portların dinlenip dinlenmediğini kontrol edebilirsiniz.
# netstat -an |grep 5080 tcp 0 0 :::5080 :::* LISTEN
ve 1935
# netstat -an |grep 1935 tcp 0 0 :::1935 :::* LISTEN
Eğer yukarıdaki komutların çıktılarında görüldüğü gibi bir çıktı alırsanız serverınız çalışıyor demektir.
İkinci olarak, red5 serverınızı yönetim panelini çağırarak test edebilirsiniz.
http://Server-IPsi:5080/
Eğer sayfa geliyorsa çalışıyor demektir. Ayrıca, gelen bu sayfada red5 demolarını yükleyebilir ya da görüntüleyebilirsiniz.
Son olarak, red5′i bir shell script dosyasını çağırmak sureti ile çalıştırdığımız için console’da ya da ssh ile yapılan bağlantılarda, command prompt geri gelmeyecektir. Bu nedenle red5”ı sisteme servis olarak eklemek gerekmektedir. Bu şekilde red5 sistemin açılışı sırasında da otomatik olarak çalışacaktır.
Red5′ın sisteme non root bir kullanıcı ile çalışrılacak şekilde servis olarak eklenmesi
Red5′in açılışta otomatik olarak çalıştırılması için http://weblogs.amtex.nl/index.php?blog=2&title=red5_start_stop_init_script_on_centos_re&more=1&c=1&tb=1&pb=1 yayınlanan bir init script’i var. Bu scripti kullanarak sistemi services red5 start / stop komutu ile yönetmek mümkün. Ancak, red5′ın root kullanıcısı ile çalıştırılması pek tavsiye edilmeyen bir şey ve bu scriptin orjinalinde yer alan “root ile çalıştırmama” kısımları işlev görmedi. Ben de scripti alıp üzerinde küçük değişiklikler yaptım. Ayrıca, scripti sistem servisi olarak eklemek için gerekli olan chkconfig satırları da yoktu; onları da ekledim. Böylece red5 açılışta da otomatik olarak non root bir kullanıcı ile çalıştırılmaya başladı. Script içeriğini ve yapılması gerekenler şöyle:
Aşağıdaki satırları copy paste usulü ile /etc/init.d dizini altında açacağınız red5 isimli bir dosyaya aktarın ve Red5 dizini, Java dizini ve Java version’u ile ilgili satırları kendinize göre düzenleyin. (Bu dökümandan yararlanarak kurulum yaptıysanız scriptteki dizin pathleri doğrudur.)
#!/bin/bash
#
# chkconfig: 2345 85 15
# description: Startup script for Red5 flash streaming server
#
# processname: red5
# pidfile: /var/run/red5.pid
# config: /etc/red5.conf
# Source function library.
. /etc/rc.d/init.d/functions
RED5_HOME=/usr/local/red5/
JAVA_HOME=/usr/lib/jvm/java-1.6.0/
JAVA_VERSION=1.6
JAVACMD=/usr/lib/jvm/java-1.6.0/bin/java
OPTIONS="-cp ${RED5_HOME}red5.jar:${RED5_HOME}conf:$CLASSPATH org.red5.server.Standalone"
DESCR="Red5 flash streaming server"
PID_FILE=/var/run/red5.pid
PID=`ps ax |grep java|grep red5|awk '{print $1;}'`
RETVAL=0
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/red5.conf ]
then
. /etc/red5.conf
fi
start() {
echo -n $"Starting $DESCR: "
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/red5 && echo $!>$PID_FILE && echo_success
echo -n "Starting Red5 Service"
echo -n " "
cd /usr/local/red5/dist
#./red5.sh &
su -p -s /bin/sh red5 -c ./red5.sh &
sleep 2
return $RETVAL
}
stop() {
echo -n $"Stopping $DESCR: "
#killproc $PID_FILE
[[ $PID != "" ]] && success && kill $PID || failure
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/red5 $PID_FILE
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
*)
echo $"Usage: $DESCR {start|stop|restart"
exit 1
esac
exit $RETVAL
Script içerisinde non-root user olarak kullanılan red5 isimli bir kullanıcıya ihtiyacımız var. Aşağıdaki komutla açalım. (Herhangi birinin sisteme o user ile bağlanamaması için nologin parametresi ile açın.)
# useradd -s /sbin/nologin red5
red5 scriptine ilgili yetkileri verin ayrıca, red5 dizininin sahibini red5 kullanıcısı yapın.
# chmod 700 red5 # chown -fR red5 /usr/local/red5
Şimdi, red5′ı servis olarak ve level 2, 3, 4 ve 5′de otomatik start edilmesi için sisteme ekleyin.
# chkconfig --add red5 # chkconfig --level 2345 red5 on
Herşey yolunda gittiyse, chkconfig –list |grep red5 dediğiniz zaman aşağıdaki gibi bir çıktı almanız gerekir.
# chkconfig --list |grep red5 red5 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Artık, red5 her sistem açılışında otomatik olarak başlatılacak. Eğer “red5 service start” komutunu verirseniz de servis start edilir. Burada dikkat edilmesi gereken bir nokta, servisin başlatılması sırasında, debug bilgileri ekrana basıldığından dolayo promptun düşmemesidir. Tekrar komut satırına düşmek için ctrl + c yapabilirsiniz. Servis arka planda çalışmaya devam edecektir.
Son olarak Sisteminizi restart edin ve red5′ın çalışıp çalışmadığını kontrol edin. Nonroot olarak çalışan red5 prosesini reboot sonrası ps aux |grep red5 komutu ile görüntülerseniz aşağıdaki gibi bir sonuç almanız gerekir.
root 2783 0.0 0.4 5899 0119 pts S 00:52 0:00 su -p -s /bin/sh red5 -c ./red5.sh red5 2785 1.0 7.0 20929 43540 ? Esl 00:52 0:08 /usr/bin/java -Dpythonvs.........
Yukardaki ps çıktısının ilk satırında, ./red5.sh shell scriptinin root tarafından red5 isimli non-root kullanıcısına düşüldükten sonra çalıştırıldığı; ikinci satırda ise red5 isimli kullanıcının asıl process’i çalıştırdığını görebilirsiniz.
Hepsi bu kadar.
Kaynak: http://osflash.org/red5
Tags: CentOS, java, kurulum, red5, setupBelki şu konular da ilginizi çeker
YORUMLAR
Trackbacks
Yorumda bulunun.





bu güzel anlatım için teşekkürler dostum.
[Cevapla]
Teşekkürler.
[Cevapla]
Çok güzel fakat, RED5′ i sağlıklı kurduktan sonra RTMP protokolü, ve ona ait portların hiçbiri test sonuçlarında aktif görünmüyor. RTMP ile ilgili bütün portlar FAILED gözüküyor.
Burada, RED5 kurulduktan sonraki aşamaları anlatırsanız, rtmp portlarının nasıl açılacağını anlatırsanız sevinirim.
http://95.173.167.51:5080 RED5 sağlıklı olarak çalışıyor ama portlar, RTMP çalışmıyor.
Saygılar…
[Cevapla]
Sanırım uygulamanızı calistirmakta sorun yasiyorsunuz. Verdiginiz adrese gore red5 sunucunuz hazir goruluyor. Uygulama ile ilgili sıkıntılarınızı uygulamayı gelistiricileril ile goruserek cozebilirsiniz.
Kolay gelsin.
[Cevapla]
Port testini yaparken port scan alanındaki localhost u silip sizin ip adresinizi yazıp deneyiniz.
[Cevapla]
Paylaşım için teşekkürler ama birşey sormak istiyorum. Bu red5 ile serverımıza bağlanan kişilere canlı yayın yapmak mümkün müdür ? Yani kayıt edilmiş olan dosyalarımızı görüntületmek değilde o an kameramızdan yapacağımız yayını red5 üzerinden diğer kullanıcıların görebileceği şekilde yayınlamak mümkün mü ? Cevap evet ise bu nasıl olacak ? red5 i kurdum herşey çalışmakta.
[Cevapla]
Selamlar,
Evet canlı yayın yapmak mümkün. Red5 ile birlikte bazı uygulamalar geliyor, bunlardan birisi de canlı yayın yapmanızı sağlayan SimpleBroadcaster uygulaması. Aşağıdaki adreste konuyla ilgili bilgiler mevcut.
http://www.longtailvideo.com/support/forums/jw-player/servers-and-streaming/9574/how-to-stream-live-to-red5
Kolay gelsin.
[Cevapla]
bu red5 i bi türlü sağlıklı windowsa kuramadım nasıl kurabilirim windowsa bilen varsa yardım etsin şimdiden teşekkürler
[Cevapla]