Red5 Media Server – это медиасервер написанный на Java который умеет транслировать потоковое видео по протоколу RTMP (Real Time Messaging Protocol), в основном используется для создания веб-кастов и онлайн-видеотрансляций.

Моя задача была, сделать внутренний корпоративный веб-сайт с обучающим видео, которое можно смотреть, но нельзя легким движением руки сохранить на флешку и унести домой, а на будущее сделать онлайн трансляцию обучений для регионов. Никто конечно не отменяет RTMP-грабберов, правда с установкой и использованием граббера в корпоративной среде справится отнюдь не каждый продвинутый менеджер, кроме того можно доработать ограничения на использование софта с помощью групповой политики.

Устанавливать Red5 Media Server будем на CentOS 6.3 i386.

1. Установка Red5

Сначала установим все необходимые пакеты

[root@rtmpsrv ~]# yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel subversion ant make

Забираем последнюю версию Red5 из репозитория SVN. Я пробовал ставить из архива на сайте, но сервер так и не завелся, а SVN-овская версия запустилась почти с первого раза.

[root@rtmpsrv ~]# svn export http://red5.googlecode.com/svn/java/server/trunk/ red5

Переходим в директорию с исходниками, собираем и устанавливаем.

[root@rtmpsrv ~]# cd red5
[root@rtmpsrv red5]# make
[root@rtmpsrv red5]# make install

Теперь нужно чуть-чуть доработать напильником, по каким-то причинам в Makefile пропущено копирование директории plugins, а без нее сервер не запускается.

[root@rtmpsrv red5]# cp -r dist/plugins /usr/lib/red5

Для запуска Red5 нужно чтобы имя хоста правильно разрешалось в IP-адрес, проверяем и в случае чего вносим изменения в /etc/hosts или на DNS-сервере.
Делаем пробный запуск в активном режиме, если все ок – Red5 выведет кучу логов и повиснет ожидая подключений, завершить его можно при помощи Ctrl+C.

[root@rtmpsrv red5]# cd /usr/lib/red5
[root@rtmpsrv red5]# ./red5.sh

2. Автозагрузка

У Red5 «из коробки» нет скрипта для запуска его в качестве службы, и этот скрипт нам придется сделать самостоятельно. Создаем в папке /etc/init.d файл red5 следующего содержания.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          red5
# Required-Start:    red5
# Required-Stop:     red5
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
### END INIT INFO
 
export RED5_HOME=/usr/lib/red5
 
. /etc/rc.d/init.d/functions
 
pidfile=/var/run/red5.pid
exec=/usr/lib/red5/red5.sh
 
start() {
    echo -n $"Starting red5: "
    [ -e $pidfile ] && { echo; exit 0; }
    $exec > /dev/null 2> /dev/null &
    [ $? -eq 0 ] && { success $"Starting red5"; echo $! > $pidfile; } || { failure "Starting red5"; }
    echo
    return 0
}
 
stop() {
    echo -n $"Stopping red5: "
    [ -e $pidfile ] || { echo; exit 0; }
    kill -KILL `cat $pidfile` > /dev/null 2> /dev/null
    [ $? -eq 0 ] && { success "Stopping red5"; } || { failure "Stopping red5"; }
    rm -f $pidfile;
    echo
    return 0
}
 
status() {
    [ -e $pidfile ] && { echo "Red5 server (pid `cat $pidfile`) is running"; } \
        || { echo "Red5 server is not running"; }
    return 0
}
 
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        status
        ;;
    *)
        echo $"Usage: red5 {start|stop|status|restart}"
        exit 2
esac
exit $?

Даем права на запуск этого файла.

[root@rtmpsrv ~]# chmod a+x /etc/init.d/red5

Добавляем в автозагрузку и запускаем сервис.

[root@rtmpsrv ~]# chkconfig --add red5
[root@rtmpsrv ~]# chkconfig red5 on
[root@rtmpsrv ~]# service red5 start
Starting red5:                                             [  OK  ]

3. Заключение

Установка – это всего лишь небольшая часть процесса, дальше идет более сложная часть настройки. Что бы заставить сервер отдавать mp4 в RTMP видеопоток достаточно взять идущую в комплекте демку oflaDemo и исправить ее под свои нужды, но что бы сделать что-то более сложное придется изрядно попотеть.
Red5 Media Server удивил меня полным отсутствием документации, при попытке открыть их Вики на wiki.red5.org браузер автоматом выбрасывает на пустую страницу Apache, а все остальное – обрывки мыслей и ничего полноценного. Если в этой области ничего не изменится – думаю есть смысл уходить на nginx-rtmp или еще какой-нибудь сервер.

5 Коммент. : “Установка Red5 Media Server”

  1. Спасибо, за ссылку ;)
    А я что-то рыскал-рыскал по сайту – Wiki не открывается, форум не открывается, в нете обрывки мыслей и тд.

  2. Александр пишет:

    Спасибо за инструкцию. Пробую установить. Также думаю насчет установки других медиа серверов http://itmultimedia.ru/media-servera-flash-media-server-wowza-erlyvideo-red5/

  3. Александр, привет.

    Я пробовал и Red5 и ErlyVideo – оба варианта рабочие, но на практике лучше всего себя показал nginx с модулем rtmp. Да и ставиться он на порядок проще ;)

  4. Александр пишет:

    Спасибо за ответ. Почитаю об этом решении тоже.

Оставить комментарий