Ubuntu 16.04 安装搭建Red5流媒体服务器

(一)安装JDK

1. 终端输入:apt-cache search openjdk

运行结果:

2.这里我们安装openjdk-8-jdk,因为我安装openjdk-9-jdk的时候有出错。

运行安装命令:

sudo apt-get install openjdk-8-jdk

3.测试是否安装成功:java -version

4.配置java_home变量:

运行:echo export JAVA_HOME=”/usr/lib/jvm/Java-8-openjdk-amd64/”>>~/.bashrc 添加变量

source .bashrc  使变量生效

 (二)安装red5

1.下载red5 Linux 安装包:https://github.com/Red5/red5-server/releases ,国外网站,下载很慢

red5-server-1.0.9-M6也可以到主机宝贝1号FTP服务器下载

在 2017年LinuxIDC.com/9月/Ubuntu 16.04 安装搭建Red5流媒体服务器/

2.创建目录:

mkdir -p /usr/share/red5

3.设置环境变量:

export RED5_HOME=/usr/share/red5

4.将安装包解压到目录

/usr/share/red5

5. 开始运行red5

cd /usr/share/red5

./red5.sh &

6.结束运行red5

cd /usr/share/red5

./red5-shutdown.sh

安装结束

测试red5是否安装成功:

(1)运行red5

(2)浏览器输入:本地IP:5080

比如我的IP地址为192.168.0.6,则输入:http://192.168.0.6:5080/  出现下面界面表示安装成功。

附启动脚本

Configure init script

#!/bin/sh
#
# /etc/init.d/red5 — startup script for the red5 server
#
# Based on the tomcat6 init script.
# Written by Miquel van Smoorenburg <[email protected]>.
# Modified for Ubuntu red5 by Fred Dixon <[email protected]>
# Modified for Debian GNU/Linux by Ian Murdock <[email protected]>.
# Modified for Tomcat by Stefan Gybas <[email protected]>.
# Modified for Tomcat6 by Thierry Carrez <[email protected]>.
#
### BEGIN INIT INFO
# Provides:          red5
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:    $local_fs $remote_fs $network
# Should-Start:      $named
# Should-Stop:      $named
# Default-Start:    2 3 4 5
# Default-Stop:      1
# Short-Description: Start red5.
# Description:      Start the red5 service.
### END INIT INFO

set -e

PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=red5
DESC=”Red5 Server”
RED5_HOME=/mnt/opt/$NAME
DEFAULT=/etc/default/$NAME
UMASK=0002

# These variables are needed by Xuggler
export XUGGLE_HOME=/usr/local
export PATH=$PATH:$XUGGLE_HOME/bin
export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH

if [ `id -u` -ne 0 ]; then
        echo “You need root privileges to run this script”
        exit 1
fi
 
# Make sure red5 is started with system locale
if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG
fi

. /lib/lsb/init-functions
. /etc/default/rcS

# The following variables can be overwritten in $DEFAULT

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS=”/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm”

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r “$jdir/bin/java” -a -z “${JAVA_HOME}” ]; then
        JAVA_HOME=”$jdir”
    fi
done
export JAVA_HOME

# Output file
if [ -z “$OUT_FILE” ]; then
        OUT_FILE=/var/log/red5.out
fi

# End of variables that can be overwritten in $DEFAULT

# overwrite settings from default file
if [ -f “$DEFAULT” ]; then
        . “$DEFAULT”
fi

if [ ! -f “$RED5_HOME/red5.jar” ]; then
        log_failure_msg “$NAME is not installed”
        exit 1
fi

#
# Function to wait if there are connections still open for 1935.  Some browsers hang on to a connection
# that prevents a ./red5 restart from binding to port 1935
#
wait_1935_close () {
        ACTIVE=$(netstat -ant | grep 1935 | wc | awk -F ‘ ‘ ‘{print $1}’)
        if [ $ACTIVE != 0 ]; then
                echo -n ”  Waiting for $ACTIVE connections on 1935 to close before starting Red5 “
                while [ $ACTIVE != 0 ]; do
                        echo -n “.”
                        sleep 5
                        ACTIVE=$(netstat -ant | grep 1935 | wc | awk -F ‘ ‘ ‘{print $1}’)
                done
        fi
        echo
}

# Define other required variables
RED5_PID=”/var/run/$NAME.pid”

RED5_MAINCLASS=org.red5.server.Bootstrap
RED5_CLASSPATH=”$RED5_HOME/boot.jar:$RED5_HOME/conf:$RED5_HOME/lib/ejb3-persistence.jar”
JAVA_OPTS=”-Dpython.home=lib -Xms128M -Xmx128M -Dred5.root=$RED5_HOME -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true -Djava.security.debug=failure -cp $RED5_CLASSPATH org.red5.server.Bootstrap”

case “$1” in
  start)
        if [ -z “$JAVA_HOME” ]; then
                log_failure_msg “no JDK found – please set JAVA_HOME”
                exit 1
        fi

        if [ ! -d “$RED5_HOME/conf” ]; then
                log_failure_msg “invalid RED5_HOME: $RED5_HOME”
                exit 1
        fi

        log_daemon_msg “Starting $DESC” “$NAME”
        if start-stop-daemon –start –test –pidfile $RED5_PID \
                –startas “$JAVA_HOME/bin/java” \
                >/dev/null; then

                wait_1935_close

                start-stop-daemon –start –background –make-pidfile –chuid red5  –umask $UMASK \
                        –chdir $RED5_HOME –pidfile $RED5_PID –startas “$JAVA_HOME/bin/java” — $JAVA_OPTS

                sleep 5

                # Because we pushed it into the background, we need to check it’s status
                if start-stop-daemon –test –start –pidfile $RED5_PID –startas “$JAVA_HOME/bin/java” >/dev/null; then
                        log_end_msg 1
                else
                        log_end_msg 0
                fi
        else
                log_progress_msg “(already running)”
                log_end_msg 0
        fi
        ;;
  stop)
        log_daemon_msg “Stopping $DESC” “$NAME”
        if start-stop-daemon –start –test –pidfile $RED5_PID \
                –startas “$JAVA_HOME/bin/java” \
                >/dev/null; then
                log_progress_msg “(not running)”
        else
                start-stop-daemon –stop –pidfile $RED5_PID \
                        –startas “$JAVA_HOME/bin/java”
                sleep 5
                rm -f $RED5_PID
        fi
        log_end_msg 0
        ;;
  status)
        if start-stop-daemon –start –test –pidfile $RED5_PID \
                –startas “$JAVA_HOME/bin/java” \
                >/dev/null; then

                if [ -f “$RED5_PID” ]; then
                    log_success_msg “$DESC is not running, but pid file exists.”
                        exit 1
                else
                    log_success_msg “$DESC is not running.”
                        exit 3
                fi
        else
                log_success_msg “$DESC is running with pid `cat $RED5_PID`”
        fi
        ;;
  restart|force-reload)
        if start-stop-daemon –test –stop –pidfile “$RED5_PID” \
                –startas “$JAVA_HOME/bin/java” \
                >/dev/null; then
                $0 stop
                sleep 1
        fi
        $0 start
        ;;
  *)
        log_success_msg “Usage: $0 {start|stop|restart|force-reload|status}”
        exit 1
        ;;
esac

exit 0 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/223902.html<

(0)
运维的头像运维
上一篇2025-04-16 04:32
下一篇 2025-04-16 04:33

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注