构造Linux流媒体服务器收藏
转贴地址:http://blog.csdn.net/wtxidian/archive/2007/01/09/1478450.aspx
流媒体(Stream Media)指在Internet/Intranet中使用流式传输技术的连续时基媒体,如音频、视频或多媒体文件。Linux在网络应用中是先锋,作
为流媒体平台的表现也不错。
目前有三种主流的流媒体系统,分别是RealNetworks公司的RealMedia、Microsoft的Windows Media和Apple公司的QuickTime。RealNetworks公司发布了在Windows、Unix和Linux平台上都能够通过Web发送数字媒体的Helix Universal Server软件的源代码。Helix产品技术先进,用户数量多,支持单播、多播和多平台(包括Linux、Windows 2000/NT、AIX、Solaris和Mac OS)。
Helix Universal Server最新版本是9.0,和8.51版本相比,主要加入了对冗余服务器的支持及对内容CACHE
的支持。这让用户能够尽可能快速地连接到服务器,并且保证在任何可能的情况下都可以自动修复。Helix兼容一切常见的媒体格式,甚至包括其竞争对手的
WM格式。本文就以Helix Universal Server 9.0为例,介绍如何在Linux下构建流媒体服务器。
软件下载
用户在http://www.realnetworks.com/网站上注册,填写姓名、国家、邮政编码和电子邮件等信息,其中电子邮件是最重要的。注
册结束后,RealNetworks公司会向注册用户的电子邮箱发送一个授权码(License Key),允许在服务器上使用Helix。授权码的格式
是.Zip包。请把它解压后保存(文件名:RNKey-Helix_Server-90-1479442709717329.lic),在安装软件时要使
用。 完成后就可以选择Helix Server下载了,下载地址是http://get.real.com/RJP1/61.195.68.21
/28e23b8ac11fa0ce9001/serverg2/rs901-linux-22libc6-ia32.bin,版本号是
9.2.0.794。
系统要求
软件:要求内核至少在2.4以上、KDE 2.0、Window System XFree86 4.03、桌面分辨率至少为800×600、桌面颜色至少16位增强色。
硬件:CPUⅡ 450MHz以上、内存128MB、硬盘空间600MB、OSS/Linux兼容声卡、16MB显存。
安装软件
首先以超级用户权限登录X-Window,建立一个Helix目录,将授权码拷贝到目录中,执行过程如下:
#mkdir Helix
#cp RNKey-Helix_Server-90-1479442709717329.lic /Helix
接着改变下载的文件名称、组属性和组,使它成为可执行文件。命令如下:
#mv rs901-linux-22libc6-ia32.bin Helix.bin
#chmod +x Helix.bin
下面是安装命令和详细步骤。
#./Helix.bin
第一步,系统首先让用户列出授权码的存放目录。参考的写法是/root/Helix/ RNKey-Helix_Server-90-1479442709717329.lic。
第二步,会出现很长的一份授权协议,在协议末尾处按回车键接受该协议。
第三步,在系统询问安装目录时,用户填写root/Helix 后按回车键继续。
第四步,系统要求用户填写Helix Universal Server的系统管理员(Adminstrator)的用户名和密码(见图1)。
ientWidth-450)
{this.height=(document.body.clientWidth-450)*this.height/this.width;this.width=document.body.clientWidth-450}"
border=0>
图1 填写Helix Universal Server的用户名和密码
第五步,系统询问用哪个端口来连接PNA (Progressive Networks Audio)。PNA协议是用来传输由早期RealSystem工具创建的内容,以便兼容早期的版本。这里使用缺省端口7070。
第六步,系统询问用户用哪个端口来连接RTSP (实时流协议)。RTSP是应用级协议,控制实时数据的发送。它提供了一个可扩展框架,使实时数据(如
音频与视频)的受控和点播成为可能。数据源包括现场数据与存储在剪辑中的数据。该协议目的在于控制多个数据发送连接,为选择发送通道(如UDP、组播
UDP与TCP)提供途径,并为选择基于RTSP上的发送机制提供方法。这里使用缺省端口554(见图2)。
图2 设置RTSP 端口号码
第七步,系统询问用哪个端口来连接HTTP协议。流式传输的实现需要合适的传输协议。由于TCP需要较多的开销,故不太适合传输实时数据。在流式传输的
实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。关于流媒体工作传输原理见图3。一般HTTP监听端口设置
为8080。
图3 流媒体文件传输原理
第八步,系统询问用哪个端口来连接MMS协议。Helix Universal Server从8.0版本后开始支持MMS协议。MMS协议用于访问
Windows Media发布点上的单播内容,是连接Windows Media单播服务的默认方法。若观众想在
Windows Media Player中键入一个URL来连接内容,而不是通过超级链接访问内容,则他们必须使用MMS协议引用该流。当使用MMS协
议连接到发布点时,使用协议翻转以获得最佳连接。“协议翻转”始于试图通过MMSU连接的客户端。MMSU是MMS协议结合UDP数据传送。如果MMSU
连接不成功,则服务器试图使用MMST。MMST是MMS协议结合TCP数据传送。MMS端口一般设置为1755。
第九步,设置Helix服务器的系统管理员控制端口。这个端口可以自己设定,不过一定注意不要和已经定义的端口重复。这里设定为17965。
第十步,系统给出所有选择的汇总列表。请仔细阅读,确认无误后按“F”键表示接受设定,开始安装。我的配置见图4。若有问题,按Esc键返回去重新选择。
图4 系统设定的汇总
第十一步,系统安装结束后自动退出回到根目录下。
第十二步,启动服务器,执行以下操作进入安装目录。
$cd Helix
$cp RNKey-Helix_Server-90-1479442709717329.lic /Licence;
$cd ..
$Bin rmserver /root/Helix rmserver.cfg
Helix 启动界面见图5。
管理Helix Universal Server服务器
在Linux内输入服务器IP地址、管理员端口和index.html,格式即http://192.168.0.1:17460/index.html。这时系统会弹出一个对话框,分别输入管理员用户名和密码,然后按“OK”键。
经过几分钟的系统验证,最后进入Helix Universal Serve管理中心(见图6)。
浏览
器ientWidth-450)
{this.height=(document.body.clientWidth-450)*this.height/this.width;this.width=document.body.clientWidth-450}"
border=0>
图6 Helix Universal Serve管理中心
进入Helix服务器设置选单(见图7),Helix服务器需要设定的十二个选项是Ports、IPBinging、MIME Type、Connecting Control、Mount Points、URL Aliasing、HTTP Delivery、Cache Directives、Share Lincesing、USER/GROUP Name和Media Sample。下面详细介绍它们的配置。
图7 Helix Universal Serve服务器设置中心
1.Port(端口配置):在浏览器的图中,自上而下依次定义了各种不同类型的端口,包括RTSP、PNA、HTTP、MONITOR和ADMIN等。
有一个新选项“Enable HTTP Fail Over URL for ASXGen”和ASX文件播放相关,在Helix Server有WM媒
体文件内容的时候会用得到,可以设定为5087,其它部分可以跳过。
2.IP Binding(IP地址绑定):一台
Helix Server服务器上可能有不止一块网卡,或者在一块网卡上可能有不只一个IP地址。在某些情况下,就必须对Helix Server的IP
地址进行绑定。这个页面是用来对服务器进行IP地址绑定及对现有绑定进行编辑和删除的。
3.MIME Type(MIME类型):定义用于告诉服务器如何正确的识别文件,以保证其能完整有效地通过HTTP协议进行传输。对应于相应的扩展名,在这里都能找到相关的定义格式。
4.Connecting Control(连接控制):用来定义与Helix Server有关的连接选项,从中在这里可以定义服务器的最大连接数、
最大允许连接数(这个就是由授权所规定的)及对用户播放器的限制,比如仅限制Realplayer播放器使用,或者仅限制PLUS版本播放器使用等。当然
在这里还可以对服务的带宽进行限制,以保证同一台服务器上面的其它服务有足够的网络资源。
5.Redundant Server(冗余服务器): 冗余服务器的配置页面包括服务器列表、目录映射关系及例外目录设置。
6.Mount Points(配置加载点):这里就是设置流媒体文件加载点。
7.URL Aliasing(链接简化):一个别名指向,通过一个简单的别名,让用户更加方便地记忆。以后进入Helix服务器管理中心不用输入那一长串的地址,只要用rtsp://server:port/alising就能代替了。
8.HTTP Delivery(HTTP分发):Helix Server同样需要通过HTTP传输某些文件。下面的这些目录就是为通过HTTP协议传输定义的。通过HTTP协议传输文件对于处于防火墙后面的用户是非常必要的,见图8。
图8 Helix 服务器的HTTP 分发配置
9.Cache Directives(缓存管理):Helix Server默认状态下是对所有的点播文件和直播文件进行缓存的处理。这就会在采用Helix Proxy对多个Server进行管理的时候,缓存将会导致一些不必要的麻烦。在这里,就是设置对某些文件和目录关闭缓存功能的选项,比如一些实时性的新闻节目及前面所说的从Server到Proxy的交流,都需要关闭缓存功能。
10.Share Licesing(许可证共享):容许访问Helix服务器的用户名称和IP地址的端口号。
11.User/Group Name(用户管理):添加Helix的用户名和组。
12.Media Sample(媒体演示):在这个页面,需要测试当前服务器的服务情况。通过这里的示例文件,用户可以点播包括RealVideo、
Flash、RP/RT、MPEG-1、MPEG-4、QT、ASF/WMV/WMA和Quick Time等多种文件(见图9)。
Helix Server在文件多样性的支持上有了很大的进步。
图9 Helix Server支持的流媒体文件格式
总结
到此为止,Liunx平台下流媒体服务器Helix Server安装和基础配置就完成了。如何将Helix流媒体在Linux应用还有许多工作,例如
需要在Linux下制作流媒体文件等。希望我在安装配置过程中的体会能起到抛砖引玉的作用,让更好地流媒体在Linux平台上自由流转。
相关链接
流媒体
流媒体将成为未来互联网应用的主流之一,并将推动互联网整体架构的革新。
在网络上传输音频、视频等多媒体信息,目前主要有下载和流式传输两种方案。A/V文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,
下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。近年来,为解决文件下载时间过长的问题,适应网络多媒体化的发展趋势,一种新兴技术应运而
生,这就是遵守特定网络协议的流媒体技术。
流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传
送。用户不必等到整个文件全部下载完毕,而只需经过几秒或十几秒的启动延时即可进行观看。当声音等实时媒体在客户机上播放时,文件的剩余部分将在后台从服
务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才
能观看的缺点。以宽带为基础,流媒体不仅可以进行单向的视频点播,还能够提供真正互动的视频节目,如互动游戏、三维动画等。
目
前,流媒体技术在国内应用最多的行业是教育,其次是广电、政府和电信,而企业中应用得较少。目前,流媒体技术在企业里的主要应用包括职工培训、信息发布、
产品介绍、远程监控、视频会议和客户服务等。美国“9·11”事件后,为了减少乘机风险,视频会议的应用越来越多。视频会议系统适用于那些有分支机构的企
业,或者需要经常和合作伙伴交流的企业。视频会议系统可以明显地提高工作效率。