流媒体(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服务。方法如下:开始菜单-首选项-更多首选项-会话-启动程序-增加-启动命令,右边的浏览指定确定。(未完待续)