posts - 9, comments - 1, trackbacks - 0, articles - 8
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

手把手教你配Liunx流媒体服务器

Posted on 2006-04-19 14:38 地下清泉 阅读(199) 评论(0)  编辑 收藏 引用 所属分类: IT-LINUX技术
 
  流媒体(Stream Media)指在互联网或者局域网中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。流媒体指在网络中使用流式传输技术传送音频、视频和多媒体文件等。Linux作为网络应用的先锋,自然作为流媒体的最佳平台。LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近几年来发展迅速,已经成为Web 服务器的事实标准。下面手把手教您配置Liunx流媒体服务器。

    目前有三种主流的流媒体系统: 分别是RealNetworks公司的RealMedia、Microsoft的Windows Media和Apple公司的QuickTime。

    Real Media包括三类文件:Real Audio、Real Video及Real Flash。Real Audio用来传输近乎CD音质的音频数据,RealVideo用来传输连续视频数据,而Real Flash则是Real Networks公司与Macromedia公司新近推出的一种高压缩比的动画格式。作为最早的因特网流式技术,在视音频方面RealMedia已成为网络视音频播放事实上的标准。

    微软公司的Windows Media的核心是ASF(Advanced Stream Format)。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式以网络数据包的形式传输,实现流式多媒体内容发布。其中,在网络上传输的内容就称为ASF Stream。

    QuickTime是苹果公司推出的能在计算机上播放高品质视频图像的技术,是面向专业视频编辑、Web 网站创建和CD-ROM 内容制作开发的多媒体技术平台,是数字媒体领域事实上的工业标准,它可以通过Internet提供实时的数字化信息流、工作流与文件回放功能。

Linux网络环境流媒体工作传输原理我们看一下图1。
 

图1


    一般来说,流式传输的过程包括三个步骤:

    (1)用户选定一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,得到需要传输的实时数据。然后客户机上的Web浏览器启动A/V Helper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。

    (2)A/V Helper程序及A/V服务器运行实时流协议(RTSP),以交换A/V传输所需的控制信息。RTSP提供了操纵播放、快进、快退、暂停及录制等命令的方法。

    (3)A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),一旦A/V数据抵达客户端,A/V客户程序即可播放输出。在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址。

    Helix Universal Server最新是11.0,和以前版本来讲加入了冗余服务器支持以及对内容的CACHE支持,这让用户能够最快可能连接到服务器,并且保证在任何可能的情况下都可以自动修复,就多义性扩展方面,首先我们看到Helix真的成了一个超级服务器,它兼容一切常见的媒体格式,甚至包括其竞争对手的WM格式。本文就以Helix Universal Server 11为例介绍如何在Linux下构建流媒体服务器。
 
一、 软件下载

    使用Helix Server之前,首先要在http://licensekey.realnetworks.com/rnforms/页面中填写自己使用的操作系统、用户姓名、电子邮件地址、公司名称、网址等相应信息,接着你就可以下载到Helix Server的30天试用版。此时需要提醒大家注意的是,这里的电子邮件地址一定要填写可以正常使用的,否则将无法收取到RealNetworks公司发送的试用授权文件。注册结束后,RealNetworks公司会向你的电子邮件发送一个授权码(License Key),让你在服务器使用Helix,授权码的格式是Zip包请把它解压后保存,在安装软件时要使用。接着就可以选择下载Helix Server了。最新版本号是:1101。

二、系统要求

    首先配置一个基于Apache的LAMP服务器,另外在软件方面它要求内核(Kenerl)至少在2.4以上,桌面分辨率至少为800×600 ,桌面颜色至少16位增强色。硬件方面中央处理器:奔腾III667 以上 ,内存 128 兆 ,硬盘空间 600兆、OSS/Linux兼容声卡、16兆显示内存 。

三、安装软件

    1、 以根权限登陆Linux X-Windows,建立一个Helix的目录将授权码拷贝到目录中。
    #mkdir Helix
    #cp RNKey-Helix_Server-90-1479442709717329.lic /Helix

    2、改变下载的文件名称和组属性和组使它成为可执行文件。
    #chmod +x helix-server-retail-11.01-rhel4-setup.bin

    3、安装详细步骤
    ./ helix-server-retail-11.01-rhel4-setup.bin

    (1)Linux操作系统首先让你列出授权码的存放目录:参考笔者的写法:/root/Helix/ RNKey-Helix_Server-90-1479442709717329.lic
    (2)  接着系统会显示很长的一份授权协议,在协议末尾处按回车键接受该协议。
    (3) Linux操作系统接着询问安装目录,填写root/Helix 后按回车键继续。
    (4) Linux操作系统要求你填写Helix Universal Server 的系统管理员(Adminstrator)的用户名和密码。一定不要忘记。
    (5) Linux操作系统接着系统询问你用那个端口来连接RTSP (Progressive Networks Audio)。 实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。这里我们使用缺省端口554。见图2。
         
          

图2 选择RTSP端口

 

   (6)  Linux操作系统接着询问你用那个端口来连接HTTP端口。流式传输的实现需要合适的传输协议。由于TCP需要较多的开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。一般HTTP监听端口设置为8080。

    (7)  Linux操作系统接着询问你用那个端口来连接MMS协议。Helix Universal Server从8.0 版本后开始支持MMS协议。MMS 协议用于访问 Windows Media 发布点上的单播内容。MMS 是连接 Windows Media 单播服务的默认方法。若观众在 Windows Media Player 中键入一个 URL 以连接内容,而不是通过超级链接访问内容,则他们必须使用 MMS 协议引用该流。当使用 MMS 协议连接到发布点时,使用协议翻转以获得最佳连接。“协议翻转”始于试图通过 MMSU 连接客户端。MMST 是 MMS 协议结合 UDP 数据传送。如果 MMSU 连接不成功,则服务器试图使用 MMST。MMST 是 MMS 协议结合 TCP 数据传送。一般设置为1755。

    (8) 下面要设置Helix 服务器的系统管理员控制端口。这个端口可以自己设定,不过一定注意不要和已经定义的端口重复。这里笔者设定为17965。

    (9)   接着系统给出所有选择的汇总列表,请仔细阅读。确认无误后按“F”键表示接受设定,开始安装。这里参考笔者的配置见图3。若有问题按Esc键回去从新选择。
 

图3系统设定的列表

    (10)   系统安装结束后自动退出回到根目录下。

(11)   启动服务器。执行以下操作进入安装目录。
    #cd Helix;#cp RNKey-Helix_Server-90-1479442709717329.lic /Licence;
    #cd Bin
    rmserver /root/Helix rmserver.cfg
    Helix Universal Server就可以正常启动。

    (12)查看运行情况,使用命令,结果见图4.:
    #ps -ef|grep rmserver
 

图4 Helix Universal Server服务器的进程


    说明其中PID为3773是主进程,其他两个3776和3779是子进程。

    (13)测试Helix服务器

    推荐使用RealPlayer10GOLD  for Linux,最新版本是: RealPlayer10GOLD.rpm ,安装后在播放器的地址栏输入Helix服务器的URL例如:rtsp://192.168.1.16/001.rm 。其中rtsp表示连接Helix服务器使用RTSP应用级协议,192.168.1.16是Helix服务器IP地址,当然也可以使用主机名称。注意事项:使用RealPlayer10GOLD 全屏播放,只需选择设置全屏显示就可以了,不过效果要差一些。建议传输率小于200Kbps的RM视频文件,就不要使用全屏模式播放。使用快捷键“Ctrl+B”可以快速在原始大小和全屏之间自如切换。如果配合Real Procedure使用,可将视频文件或VCD转换为RM格式文件保存。这样不但可以减小文件的容量,而且还可以自由编排、剪辑、制作DV。

    (14)停止Helix服务器工作

    由于Helix服务器没有提供服务器停止命令,所以只能通过使用传统的“Kill”来“杀掉服务器的进程”,使用命令:
    #kill ‘cat ./Logs/rmserver.pid’

    (15)系统启动时自动加载Helix服务器

    如果想在启动Linux服务器时自动加载Helix服务。方法如下:开始菜单-首选项-更多首选项-会话-启动程序-增加-启动命令,右边的浏览指定确定。

    Helix Universal Server服务器进阶配置

    (1)在Linux浏览器内输入: 服务器IP地址:管理员端口/admin/index.html 即:http://192.168.0.1:17965/admin/index.html 这时系统会弹出一个对话框,你分别输入管理员用户名和密码,然后按“OK”键。17965是Helix 服务器的系统管理员控制端口。

    (2)经过几分钟的系统验证最后进入Helix Universal Serve管理中心,见图5。
 
               

图5 Helix Universal Serve管理中心 点击看大图

 

(3)进入Helix服务器设置选单,Helix服务器需要设定的十二个选项项:Ports、 IPBinging 、MIME Type 、Connecting Control 、Mount Points 、URL Aliasing 、HTTP Delivery、Cache Directives、Share Lincesing、USER/GROUP Name、Media Sample。下面我们详细介绍它们的配置。
 
           

图6 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(配置加载点)这里就是设置流媒体文件加载点。Helix Server 安装完成后,将自动生成三个载入点,即 Content、secure、fsforcache 。默认情况下,Content 指向安装目录下的“ content ”文件夹,该文件夹里的视频文件可以直接被访问。如果想将其他文件夹中的视频文件用于服务器播放,则需要设置新的加载点。单击“ + ”按钮添加新的载入点的描述(如 movie ),在“ Mount Point ”栏编辑加载点名称(如 /movie/),其将显示在链接地址中(如 rtsp://ip:554/movie/ 文件名)。接下去在“ Base Path ”输入加载点对应的绝对路径,也就是被点播的视频文件在本地(或网络)中的实际路径。比如 /home/share 。最后选择路径类型完成设置。见图5。
 

图7 设置加载点

    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的交流之间,都需要关闭缓存功能。

    10Share Licesing(许可证共享):容许访问Helix服务器的用户名称、IP地址的端口号。

    11、User/Group Name(用户管理) :添加Helix的用户名和组。

    12、Media Sample(媒体演示): 在这个页面,需要测试当前服务器的服务情况,通过这里的示例文件,你可以点播包括RM, FLASH, RP/RT, MPEG-1, MPEG-4, QT, ASF/WMV/WMA, 在内的多种文件,Helix Server 对于文件多样性上的支持有了很大的进步,见图9。
 

图9 Helix Server 支持的流媒体文件格式. 点击看大图


    不同类型媒体的访问方式

    配置服务器端口时使用了几个不同端口号,就是为了对应不同的流媒体格式:

    (1)rm或rmvb格式:

    rtsp://服务器ip:554/加载点名/目录名/文件名
    说明如果使用缺省配置那么其中:554可以省略。应用实例:rtsp://192.114.32.87/vod2/tall.rm
    当在客户端的realplayer播放器中输入此地址时,如看到"正在联接”和"正在缓冲”并且时间不断的跳动时,那么就成功了。

    (2)wmv、asf等Media格式

    mms://服务器ip:1755/加载点名/目录名/文件名
    说明如果使用缺省配置其中:1755也可以省略。应用实例:    mms://192.114.32.87/vod2/slzq/slzq.wmv
    注意事项:用Helix点播media媒体文件时,请不要使用中文的目录和文件名,否则很可能出现莫名其妙的错误,所以还是避开为妙。

Helix流媒体服务器的安全认证

    经过前面的设置,搭建的服务器已经可以很稳定地运行了。如果我们不想让任何人都能访问服务器,就需要进行用户认证设置,通常可以通过访问控制和用户认证来实现。 “ Access Control ”: Helix Server 可以建立基于 IP 地址和客户端链接的访问限制,通过建立访问规则,能允许或拒绝来自某一 IP 或某台机器对某个端口的访问请求。一旦用户访问被拒绝,其客户端上就会弹出出错提示。执行“ Security/Access Control ”操作,然后就可以添加新的规则来对用户的访问权限进行设定,比如能够设定允许或者禁止来自某个或者某段 IP 的访问请求,而且可以针对用户访问的端口进行特殊设置。 “用户认证”:当用户众多,设置的 IP 规则太多,或者用户有的是通过代理集中上网的, IP 限制往往不能满足要求,这时就需要进行用户帐号认证许可。这时基于数据库的用户验证,可以扩充进行计量收费,更具有灵活性、方便性,能与第三方配合扩充功能等效果。经过设置,用户认证设置基本就完成了,现在可以测试一下是否正常,如果提示出现输入帐号和密码,那就是成功。

    总结:到此为止Liunx平台下流媒体服务器Helix Server安装和基础配置就介绍到此。帮助中小企建立一个低成本的流媒体服务器。

    流媒体将成为新互联网应用(Web 2.0)的主流之一,并将推动互联网整体架构的革新。在网络上传输音频、视频等多媒体信息,目前主要有下载和流式传输两种方案。A/V文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。近年来,为解决文件下载时间过长的问题,适应网络多媒体化的发展趋势,一种新兴技术应运而生,这就是遵守特定网络协议的流媒体技术。流媒体技术在国内应用最多的行业是教育,其次是广电、政府和电信,而企业中应用得较少。目前,流媒体技术在企业里的主要应用包括职工培训、信息发布、产品介绍、远程监控、视频会议和客户服务等。

    流媒体小贴士:

    流媒体传输协议

    目前,支持流媒体传输的协议主要有:

    实时传输协议RTP(Real-time Transport Protocol)
    用于Internet上针对多媒体数据流的一种传输协议。RTP通常工作在点对点或点对多点的传输情况下,其目的是提供时间信息和实现流同步。RTP通常使用UDP传送数据,但也可工作在ATM或TCP等协议之上。

    实时传输控制协议RTCP(Real-time Transport Control Protocol)
    RTCP和RTP一起提供流量控制和拥塞控制服务。通常RTP和RTCP配合使用,RTP依靠RTCP为传送的数据包提供可靠的传送机制、流量控制和拥塞控制,因而特别适合传送网上的实时数据。

    实时流协议RTSP(Real-time Streaming Protocol)
    它是由RealNetworks和Netscape共同提出的,该协议定义了点对多点应用程序如何有效地通过IP网络传送多媒体数据。

    资源预留协议RSVP(Resource Reservation Protocol)
    它是网络控制协议,运行在传输层。由于音视频流对网络的时延比传统数据更敏感,因此在网络中除带宽要求外还需满足其它的条件。在Internet上开发的资源预留协议可以为流媒体的传输预留一部分网络资源,从而保证服务质量(QoS)。

只有注册用户登录后才能发表评论。