CentOS7下安裝配置流媒體服務器Red5

背景:因工作需要,要研究一些流媒體服務器相關的技術,主要是爲了搭建直播所用的服務器,本文是基於CentOS7搭建Red5流媒體服務器,利用OBS推流工具可實現簡單的直播、觀看功能。

本文主要介紹流媒體服務器red5的搭建,主要就是修改配置和添加到服務。

  • 下載

我們可以直接從github官網下載最新版本的Red5-server,因爲我們是在Linux系統搭建的環境,這裏選擇red5-server-1.0.9-RELEASE.tar.gz。點擊跳轉下載頁面

wKioL1lvMj6Th2uEAAD5wIcoLy4335.png-wh_50

下載完成之後,上傳至/use/local路徑下,然後就可以開始解壓安裝了。

[root@bogon ~]# cd /usr/local/
[root@bogon local]# ls
bin  etc  games  include  lib  lib64  libexec  red5-server-1.0.9-RELEASE.tar.gz
sbin  share  src
  • 安裝

首先red5是基於java,所以安裝之前請先安裝jdk,我這裏已經安裝了jdk1.8

[root@bogon ~]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

我們繼續,把剛纔上傳的red5-server-1.0.9-RELEASE.tar.gz先解壓

tar -zxvf red5-server-1.0.9-RELEASE.tar.gz

解壓成功後進入目錄

[root@bogon local]# cd red5-server/
[root@bogon red5-server]# ls
commons-daemon-1.0.15.jar  license.txt  red5.bat         red5.service       red5-shutdown.sh       work
conf                       log          red5-debug.bat   red5-service.jar   shutdown.token
install-service.bat        plugins      red5-debug.sh    red5.sh            uninstall-service.bat
lib                        red5         red5-server.jar  red5-shutdown.bat  webapps

進入目錄之後我們可以看到red5的目錄結構,顧名思義conf爲配置文件存放地址,red5.sh爲red5的啓動文件,我們進入conf文件夾,修改red5的配置文件。

vi conf/red5.properties

會打開配置文件:

# Socket policy
policy.host=0.0.0.0
policy.port=843
# HTTP
http.host=0.0.0.0
http.port=5080
https.port=5443
http.URIEncoding=UTF-8
http.max_headers_size=8192
http.max_keep_alive_requests=-1
http.max_threads=20
http.acceptor_thread_count=10
http.processor_cache=20
# RTMP
rtmp.host=0.0.0.0
rtmp.port=1935
rtmp.io_threads=16
rtmp.send_buffer_size=65536
rtmp.receive_buffer_size=65536
......(後面還有很多,這裏就不貼出來了)

我們需要修改http.host和rtmp.host爲電腦實際的IP地址,修改完成之後保存退出。

修改完成之後我們可以直接通過命令啓動red5服務。

./red5.sh

好的。我們可以看到控制檯已經開始飆起了日誌,幾秒之後看到日誌停了,就像這樣:

......(前面還有很多,這裏就不貼出來了)
[INFO] [Loader:/oflaDemo] org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/red5-web.xml]
[INFO] [Loader:/oflaDemo] org.red5.server.Context - Setting parent bean factory as core
[INFO] [Loader:/oflaDemo] org.red5.server.scope.WebScope - Set server [Server@42441ae2map['/chat' -> 'default', '/live' -> 'default', '/vod' -> 'default', '/' -> 'default', 'localhost:5080/installer' -> 'default', 'localhost/installer' -> 'default']]
[INFO] [Loader:/oflaDemo] org.red5.server.Server - Add mapping global: default host:  context: oflaDemo
oflaDemo appStart
[INFO] [pool-4-thread-1] org.red5.server.tomcat.WarDeployer - Deploy wars with app start

此時我們開啓端口,測試一下。

firewall-cmd --permanent --zone=public --add-port=1935/tcp
firewall-cmd --permanent --zone=public --add-port=5080/tcp
firewall-cmd --reload
  • 測試

端口開啓完畢,試一下能否進入red5的管理界面。地址爲你的IP加上端口號:5080

wKiom1lwJiKBqiLyAADsoZchx0g474.png-wh_50

進入成功,說明red5的http服務是沒有問題的.

  • 推流測試

我們來測試一下直播吧,利用開源推流工具OBS。

wKiom1lwJ-eScN-nAABO7M79vFI943.png-wh_50

wKioL1lwKAHwG4udAATDbvc6WCA858.png-wh_50

圖1設置推流地址爲RED5服務器地址,看圖2的右下角,綠色燈亮起表示推流成功。

  • 拉流測試

拉流測試這次我使用的是VLC,打開網絡串流中輸入我們的拉流地址:rtmp://IP:1935/oflaDemo/串流碼。

wKiom1lwOKjBSyiQABGg_EOzk6Y314.png-wh_50

好的,沒有問題,拉流成功。

  • 添加red5到系統啓動項

但是,僅僅啓動成功還沒有達到我的目的,我可不想每次啓動服務都那麼麻煩,所以,我們要把red5的服務添加到啓動項中。

vi /etc/init.d/red5

在/etc/init.d/目錄中新建red文件,並添加以下內容:

#!/bin/bash
# For RedHat and cousins:
# chkconfig: 2345 85 85
# description: Red5 flash streaming server
# processname: red5
# Created By: BoTao Zhao ([email protected])

PROG=red5
RED5_HOME=/usr/local/red5-server
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

添加到服務

chmod +x /etc/rc.d/init.d/red5    
chkconfig --add red5    
chkconfig red5 on

添加到服務之後可以通過service red5 start來啓動red5服務,service red5 stop關閉服務,是不是非常方便了。

  • 測試直播延遲

爲了測試直播延遲,我在obs中開啓了顯示器獲取,左側是拉流的畫面,右側是電腦本地的時間。

wKiom1lwTi3BPoDuAAvEjEcM2Wo074.png-wh_50

可見,延遲在2-3S之間。注:該測試在局域網中,非外網。

好了,在CentOS7環境下安裝配置流媒體服務器Red5到此結束了。當然測試推流和拉流還可以用red5自帶的demo去測試,這裏就不再囉嗦了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章