Linux流媒体服务器安装配置图解

  一、Helix流媒体简介
  随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负责向用户连续、实时地发送,这样用户可以不必等到整个文件全部下载完毕,而只需要经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件的剩余部分将继续从流媒体服务器下载。
  由于受网络带宽、计算机处理能力和协议规范等方面的限制,要想从Internet上下载大量的音频和视频数据,无论从下载时间和存储空间上来讲都是不太现实的,而流媒体技术的出现则很好地解决了这一难题。目前实现流媒体传输主要有两种方法:顺序流(progressive streaming)传输和实时流(realtime streaming)传输,它们分别适合于不同的应用场合。
l         顺序流传输
顺序流传输采用顺序下载的方式进行传输,在下载的同时用户可以在线回放多媒体数据,但给定时刻只能观看已经下载的部分,不能跳到尚未下载的部分,也不能在传输期间根据网络状况对下载速度进行调整。由于标准的HTTP服务器就可以发送这种形式的流媒体,而不需要其他特殊协议的支持,因此也常常被称作HTTP流式传输。顺序流式传输比较适合于高质量的多媒体片段,如片头、片尾或者广告等。
l         实时流传输
实时流式传输保证媒体信号带宽能够与当前网络状况相匹配,从而使得流媒体数据总是被实时地传送,因此特别适合于现场事件。实时流传输支持随机访问,即用户可以通过快进或者后退操作来观看前面或者后面的内容。从理论上讲,实时流媒体一经播放就不会停顿,但事实上仍有可能发生周期性的暂停现象,尤其是在网络状况恶化时更是如此。与顺序流传输不同的是,实时流传输需要用到特定的流媒体服务器,而且还需要特定网络协议的支持。
l         流媒体协议
实时传输协议(Real-time Transport Protocol,PRT)是在Internet上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。RTP通常使用UDP来进行多媒体数据的传输,但如果需要的话可以使用TCP或者ATM等其它协议,整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTP控制协议。实时流协议(Real Time Streaming Protocol,RTSP)最早由Real Networks和Netscape公司共同提出,它位于RTP和RTCP之上,其目的是希望通过IP网络有效地传输多媒体数据。
 
  目前市场上主流的流媒体技术有三种,分别是RealNetworks公司的RealMedia、Microsoft的Windows Media和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议这三个关键要素在里面。本文就以Helix Universal Server 11为例介绍如何在Linux下构建流媒体服务器。图-1 是流媒体服务器构架。
 图-1 流媒体服务器构架
二、理解单播和多播
 1 单播
  单播是客户端与服务器之间的点到点连接。“点到点”指每个客户端都从服务器接收远程流。只有当客户端发出请求时,才发送单播流。可通过点播或广播向客户端发布单播流。图2是单播示意图。
图2 单播示意图
 
2多播
  多播是通过“启用多播网络”传递的内容流;网络中的所有客户端共享同一流。以这种方式将流媒体内容转化为流的最大好处是可以节省网络带宽。通过将流媒体服务器安装到网络的每一部分,将多播扩展到网络中没有启动多播的区域,这称为服务器分发。作为来自服务器的多播的一部分,可以分发该多播的单一的流给网络上其他部分上别的流媒体服务器。服务器随即通过单播或多播提供流给那些网络部分,这称为“再分发”。通过将服务器连接起来,可以克服路由器不允许使用多播的问题。图3是多播示意图
图3多播示意图
三、安装、启动和停止Helix服务器
 1 软件的获取
Helix Server是RealNetworks公司最新的流媒体服务平台,这个系统和微软的Window Media System不同,它并不是免费的,但在RealNetworks的网站(http://www.real.com ),还是提供有免费使用的Helix,不过有功能或时间上的限制。 这里笔者选用的是Helix Server Unlimited v11.0.1.1884 For Linux 。
2 软件安装
chmod +x helix-server-retail-11.01-rhel4-setup.bin
./ helix-server-retail-11.01-rhel4-setup.bin
Extracting files for Helix installation........................
Welcome to the Helix Server 11.0 (11.0.1.1884) Setup for UNIX
Setup will help you get Helix Server running on your computer.
[ Press [Enter] to continue... ]
#这里按回车继续#
If a Helix Server license key file has been sent to you,
please enter its directory path below. If you have not
received a Helix Server license key file, then this server
WILL NOT OPERATE until a license key file is placed in
the server's License directory. Please obtain a free
Basic Helix Server license or purchase a commercial license
from our website at http://www.real.com/. If you need
further assistance, please visit our on-line support area
at http://service.real.com/.
License Key File: []: 这是要许可证,可以先放下,等安装完再将许可证文件放入
Installation and use of Helix Server requires
acceptance of the following terms and conditions:
Press [Enter] to display the license text...
按回车继续显示协议文本,此处略过……
Choose "Accept" to accept the terms of this
license agreement and continue with Helix Server setup.
If you do not accept these terms, enter "No"
and installation of Helix Server will be cancelled.
I accept the above license: [Accept]:
#此处回车默认即可
Enter the complete path to the directory where you want
Helix Server to be installed. You must specify the full
pathname of the directory and have write privileges to
the chosen directory.
Directory: [/root/helixserver]: /usr/helixserver
# 更改安装路径
Please enter a username and password that you will use
to access the web-based Helix Server Administrator and monitor.
Username []:
# 设置远程管理用户名
Username []:Password []:
# 设置密码
Confirm Password []:
#重新确认密码
Please enter a port on which Helix Server will listen for
RTSP connections. These connections have URLs that begin
with "rtsp://"
Port [554]:
#此处回车默认即可
 
Please enter a port on which Helix Server will listen for
HTTP connections. These connections have URLs that begin
with "http://"
Port [80]:8080
#设置http传输端口,为避免和apache冲突,建议更改
 
Please enter a port on which Helix Server will listen for
MMS connections. These connections have URLs that begin
with "mms://"
Port [1755]:
# 此处回车默认即可
Helix Server will listen for Administrator requests on the
port shown. This port has been initialized to a random value
for security. Please verify now that this pre-assigned port
will not interfere with ports already in use on your system;
you can change it if necessary.
Port [11012]:11111
#更改远程管理访问的端口,系统默认的
 
You have selected the following Helix Server configuration:
Admin User/Password: traveller2/****
Encoder User/Password: traveller2/****
Monitor Password: ****
RTSP Port: 554
HTTP Port: 8080
MMS Port: 1755
Admin Port: 11111
Destination: /usr/helixserver
Enter [F]inish to begin copying files, or [P]revious to go
back to the previous prompts: [F]:
#如果以上设置你没意见,此处回车默认即可,否则按P重新设置
 
Copying Helix Server files....
Helix Server installation is complete.
If at any time you should require technical
assistance, please visit our on-line support area
at http://service.real.com/.
Cleaning up installation files...
Done.
# 安装完成
3 启动Helix流媒体服务器
(1)启动服务器
首先进入安装目录。使用命令在后台启动:
Bin/rmserver rmserver.cfg &
启动过程可以看到服务器版本和系统平台的信息,如下:
./Bin/rmserver rmserver.cfg
Helix Server (c) 1995-2005 RealNetworks, Inc. All rights reserved.
Version:   Helix Server 11.0 (11.0.1.1884) (Build 74277/5688)
Platform:  linux-rhel4-i686
Using Config File: rmserver.cfg
Linux kernel version 2.6.18-8.el5 detected [glibc 2.5/NPTL 2.5]
Starting PID 2727 TID 3086657232/2727, procnum 0 (controller)
Creating Server Space...
Server has allocated 256 megabytes of memory
Starting TID 3084909440/2729, procnum 1 (timer)
Calibrating timers...
Interval timer enabled (10ms resolution).
Starting TID 3082812288/2730, procnum 2 (core)
Starting Helix Server 11.0 Core...
1 CPU Detected...
Testing File Descriptors...
Setting per-process descriptor capacity to 672(1003), 21...
Testing Mutex...(401.61 ops/usec)
Testing AtomicOps...(33.81 ops/usec)
I: Loading Plugins from /root/vw/Plugins...
I: slicensepln.so   0xcb1ec0  RealNetworks Licensing Plugin
……
 
(2)监控服务器的进程
可以使用ps命令监控流媒体服务器的运行进程
#ps -ef|grep rmserver
root      3765  3655  0 15:13 pts/3    00:00:00 ./Bin/rmserver rmserver.cfg
root      3766  3765  1 15:13 ?        00:00:02 ./Bin/rmserver rmserver.cfg
root      3767  3765  0 15:13 ?        00:00:00 ./Bin/rmserver rmserver.cfg
root      3859  3818  0 15:15 pts/4    00:00:00 grep rmserver
说明:说明其中PID为3765是主进程,其他两个3766和3767是子进程。
(3)监控端口
可以使用命令监控流媒体服务器端口运行情况:
#  netstat -ntulp | grep rmserver
tcp0  0 :::9090 :::*LISTEN  3766/rmserver
tcp0  0 :::7077 :::*LISTEN  3766/rmserver
tcp0  0 :::7878 :::*LISTEN  3766/rmserver
tcp0  0 :::4040 :::*LISTEN  3766/rmserver
tcp0  0 :::554  :::*LISTEN  3766/rmserver
tcp0  0 :::14170:::*LISTEN  3766/rmserver
tcp0  0 :::82   :::*LISTEN  3766/rmserver
tcp0  0 :::1755 :::*LISTEN  3766/rmserver
udp0  0 0.0.0.0:98750.0.0.0:*   3766/rmserver
udp0  0 0.0.0.0:32820   0.0.0.0:*   3766/rmserver
udp0  0 0.0.0.0:17550.0.0.0:*
说明:14170 即远程服务器管理端口。
(4)测试Helix服务器
  推荐使用realone for Linux,实际上是RealPlayer在Linux上的克隆,甚至从性能上超过了RealPlayer。它支持相当多的视频、音频和图象格式,例如:SMIL 2.0, Ogg Vorbis, H.263 video, JPEG, GIF, PNG, MP3, AMR narrow band, AMR wide band, RA8, sipro, RV7, RV8, RV9, RV10, H263+, 3GPP rel5 SMIL 2.0等等。使用起来和熟悉的RealPlayer没有什么不同。官方主页:http://www.real.com/  ,用RealOne Player可欣赏网上在线音频和视频资料。主要功能包括:带有目标按纽,只需单击鼠标就可收听新闻和娱乐资讯;近乎CD一样的音频效果(只在28.8kbps或更快的连接速度情况下)全屏播放图象功能(只适用于高带宽连接情况)。其他功能包括:内容频道,自动升级功能,SmartStream技术消除了再次缓冲,查找媒介链接,支持MP3格式等。RealPlayer 8.0能精确地指向你所要的A/V程序,而且功能有所更新,包括内置Real.com媒体向导,新加入了“调台器”,能从2500个互联网在线电台中轻松找到你最喜欢的节目,给你全新的3D音效和视觉感受等。
  安装后在播放器的地址栏输入Helix服务器的URL例如:rtsp://192.168.1.2/real9vedio.rm 。其中rtsp表示连接Helix服务器使用RTSP应用级协议,192.168.1.2是Helix服务器IP地址,当然也可以使用主机名称。如图-4 。
图-4 打开位置
图-6 测试文件在播放
  使用方法:RealONE for Linux有一个主播放窗口,在文件选单中,分别有Open Location...和Open File...项,用这两项可打开要欣赏的文件。工具选单是RealONE最为庞大的选单,包含有很多功能如图-7。
图-7 Realone 工具选项
  注意事项:使用Realone全屏播放不过效果要差一些。建议传输率小于200Kbps的RM视频文件,就不要使用全屏模式播放。使用快捷键“Ctrl+B”可以快速在原始大小和全屏之间自如切换。如果配合其他Linux流媒体工具使用,可将视频文件或VCD转换为RM格式文件保存。这样不但可以减小文件的容量,而且还可以自由编排、剪辑、制作DV。
(5)停止Helix服务器工作
  由于Helix服务器没有提供服务器停止命令,所以只能通过使用传统的“Kill”来“杀掉服务器的进程”,使用命令:
#kill ‘cat ./Logs/rmserver.pid’
(6)系统启动时自动加载Helix服务器
  如果想在启动Linux服务器时自动加载Helix服务。方法如下:开始菜单-首选项-更多首选项-会话-启动程序-增加-启动命令,右边的浏览指定确定。
 

你可能感兴趣的:(linux,安装,配置,流媒体服务器,图解)