欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

centos red5 rtmp 搭建 流媒体服务器

对于文字聊天室,以及多屏互动,我们了解的比较多了,我知道的有二种,socket协议和xmpp协议。

如果我们用red5,基于flash的流媒体服务器,在开发视频直播,或者语音聊天室,我们就可以用rtmp,rtsp。

一,什么是red5

Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编 写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、 Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行。

二,red5安装

1,下载地址:http://www.red5.org/downloads/red5/1_0_1/

2,安装java 1.6

  1. # yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel  

3, 安装red5

  1. # tar zxvf red5-1.0.1.tar.gz  

  2. # mv red5-server-1.0 /usr/local/red5  

  3. # cd /usr/local/red5  

  4. # ./red5.sh  

用的系统是centos 6.5,安装没问题

4,创建red5启脚本

  1. [root@localhost red5-server-1.0]# cat /etc/init.d/red5  

  2. #!/bin/bash  

  3. # For RedHat and cousins:  

  4. # chkconfig: 2345 85 85  

  5. # description: Red5 flash streaming server  

  6. # processname: red5  

  7. # Created By: Sohail Riaz (sohaileo@gmail.com)  

  8.   

  9. PROG=red5  

  10. RED5_HOME=/usr/local/red5  

  11. DAEMON=$RED5_HOME/$PROG.sh  

  12. PIDFILE=/var/run/$PROG.pid  

  13.   

  14. # Source function library  

  15. . /etc/rc.d/init.d/functions  

  16.   

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

  18.   

  19. RETVAL=0  

  20.   

  21. case "$1" in  

  22.     start)  

  23.     echo -n $"Starting $PROG: "  

  24.     cd $RED5_HOME  

  25.     $DAEMON >/dev/null 2>/dev/null &  

  26.     RETVAL=$?  

  27.     if [ $RETVAL -eq 0 ]; then  

  28.         echo $! > $PIDFILE  

  29.         touch /var/lock/subsys/$PROG  

  30.     fi  

  31.     [ $RETVAL -eq 0 ] && success $"$PROG startup" || failure $"$PROG startup"  

  32.     echo  

  33.     ;;  

  34.     stop)  

  35.     echo -n $"Shutting down $PROG: "  

  36.     killproc -p $PIDFILE  

  37.     RETVAL=$?  

  38.     echo  

  39.     [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG  

  40.     ;;  

  41.     restart)  

  42.     $0 stop  

  43.     $0 start  

  44.     ;;  

  45.     status)  

  46.     status $PROG -p $PIDFILE  

  47.     RETVAL=$?  

  48.     ;;  

  49.     *)  

  50.     echo $"Usage: $0 {start|stop|restart|status}"  

  51.     RETVAL=1  

  52. esac  

  53.   

  54. exit $RETVAL  

三,测试red5流媒体服务器

1,发布一个流媒体

我们可以下一个Adobe flash media encoder,在FML里输入 rtmp://ip address/live, stream name自己起,比如111

我们也可以用red5自带的发布工具来发布一个流

a),打开http://localhost:5080/demos/publisher.html

b),连接red5流媒体服务器

连接red5流媒体服务器    

连接red5流媒体服务器

如果右边出现19:56:05:873 - NetConnection.Connect.Success,说明red5正常启动,并且可以连接

c),发布一个red5流

创建一个red5流    

创建一个red5流

在这里为什么要选audio,而不是video,是因为电脑没有摄像头。点start会出现以下内容

red5 flash授权    

red5 flash授权

选择允许后,在点击Publish,如果在右边出现20:04:23:836 - Publish - NetStream.Publish.Start,就说明发布流成功了。

2,用swfobject多点连接,测试

加入以下代码,so.addVariable('file','rtmp://localhost/live/111');

rtmp://localhost/live流媒体服务器,111是其中的一个流的名称

我说话,别人就都可以听见了

来自  http://blog.51yip.com/server/1651.html

普通分类: