《基于 Linux 的流媒体服务器配置和应用》
第 1 页 共 22 页
基于 Linux 的流媒体服务器配置和应用
学生姓名:宁丹 指导老师:王艳华
摘要 流媒体(Stream Media)指在 Internet/Intranet 中使用流式传输技
术的连续时基媒体,如音频、视频或多媒体文件。Linux 在网络应用中是先锋,
作为流媒体平台的表现也不错。本课程设计主要是完成在 Linux 操作系统下流媒
体服务器的配置和应用,在课程设计中,系统的开发平台是 Redhat Linux 11.0。
本文详细介绍了在 Linux 操作系统下实现流媒体服务器的配置过程。
关键字: 流媒体;Linux ;服务器;配置
Abstract Stream Media is time-base media that using streaming tech-
nology in Internet / Intranet,such as audio, video or multimedia files.
Linux is’not only a pioneer on network application but also as a good
performance in streaming media. This course is designed for completing
application and configuration of Stream Media in the Linux operating
system.In this curriculum design, System development platform is Redhat
Linux 11.0. This paper introduces the process of configuration of Stream
Media server under the Linux operating system in detail.
Key Words: Stream Media ;Linux; serve; configuration
《基于 Linux 的流媒体服务器配置和应用》
1 引言
第 2 页 共 22 页
1.1 课程设计的目的
随着 Internet 的日益普及,在网络上传输的数据已经不再局限于文字和图
形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音 频/视频
(Audio/Video,简称 A/V)等多媒体文件时,基本上只有下载和流式传输两种
选择。通常说来,A/V 文件占据的存储空间都比较大,在带宽受限的网络环境中
下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流
式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负责向用
户连续、实时地发送,这样用户可以不必等到整个文件全部下载完毕,而只需要
经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件的
剩余部分将继续从流媒体服务器下载。由于受网络带宽、计算机处理能力和协议
规范等方面的限制,要想从 Internet 上下载大量的音频和视频数据,无论从下载
时间和存储空间上来讲都是不太现实的,而流媒体技术的出现则很好地解决了这
一难题。要在 Linux 操作系统中使用音频、视频、数字图像和其他多媒体工具,
必须先配置好流媒体服务器。因此学会配置流媒体服务器,有着非常重要的意义。
1.2 课程设计的内容
本次课程设计主要是研究 Linux 下流媒体服务器的配置和应用,所以此次
课程设计要完成的内容如下:
(1) 安装 Helix Server;
(2) 配置 Helix Server;
(3) 测试 Helix Server。
《基于 Linux 的流媒体服务器配置和应用》
第 3 页 共 22 页
2 Linux 和流媒体基本知识简介
2.1 Linux 简介
简单地说,Linux 是一套免费使用和自由传播的类 Unix 操作系统,它主要
用于基于 Intel x86 系列 CPU 的计算机上。这个系统是由世界各地的成千上万的
程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界
都能自由使用的 Unix 兼容产品。
Linux 最早由一位名叫 Linus Torvalds 的计算机爱好者开发,当时他是芬
兰赫尔辛基大学的学生。他的目的是设计一个代替 Minix(由一位名叫 Andrew
Tannebaum 的计算机教授编写的一个操作系统示范教学程序)的操作系统,这个
操作系统可用于 386、486 或奔腾处理器的个人计算机上,并且具有 Unix 操作系
统的全部功能。Linux 以它的高效性和灵活性著称。它能够在个人计算机上实现
全部的 Unix 特性,具有多任务、多用户的能力。Linux 可在 GNU(“不是 UNIX”
工程的缩写)公共许可权限下免费获得,是一个符合 POSIX 标准的操作系统。
Linux 操作系统软件包不仅包括完整的 Linux 操作系统,而且还包括了文本编辑
器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的 X-Windows
图形用户界面,如同我们使用 Windows NT 一样,允许我们使用窗口、图标和菜
单对系统进行操作。
Linux 之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于
自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自
己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有 Unix
的全部功能,任何使用 Unix 操作系统或想要学习 Unix 操作系统的人都可以从
Linux 中获益。
由于 Linux 是一套自由软件,用户可以无偿地得到它及其源代码,可以无
偿地获得大量的应用程序,而且可以任意地修改和补充它们。这对用户学习、
了解 Unix 操作系统的内核非常有益。 学习和使用 Linux,能为用户节省一笔可
观的资金。Linux 是目前惟一可免费获得的、为 PC 机平台上的多个用户提供多
任务、多进程功能的操作系统,这是人们要使用它的主要原因。就 PC 机平台而
言,Linux 提供了比其他任何操作系统都要强大的功能,Linux 还可以使用户远
《基于 Linux 的流媒体服务器配置和应用》
第 4 页 共 22 页
离各种商品化软件提供者促销广告的诱惑,再也不用承受每过一段时间就升级的
痛苦,因此,可以节省大量用于购买或升级应用程序的资金。
Linux 不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用
软件。用户不但可以从 Internet 上下载 Linux 及其源代码,而且还可以从
Internet 上下载许多 Linux 的应用程序。可以说,Linux 本身包含的应用程序以
及移植到 Linux 上的应用程序包罗万象,任何一位用户都能从有关 Linux 的网站
上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的
需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对 Windows NT、
Windows98、MS-DOS 或 OS/2 等商品化操作系统来说是无法做到的[1]。
2.2 流媒体基本知识简介
流媒体将成为未来互联网应用的主流之一,并将推动互联网整体架构的革
新。
在网络上传输音频、视频等多媒体信息,目前主要有下载和流式传输两种
方案。A/V 文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的
限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。近年来,
为解决文件下载时间过长的问题,适应网络多媒体化的发展趋势,一种新兴技术
应运而生,这就是遵守特定网络协议的流媒体技术。
流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机
的连续、实时传送。用户不必等到整个文件全部下载完毕,而只需经过几秒或十
几秒的启动延时即可进行观看。当声音等实时媒体在客户机上播放时,文件的剩
余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,
而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从
Internet 上下载才能观看的缺点。以宽带为基础,流媒体不仅可以进行单向的
视频点播,还能够提供真正互动的视频节目,如互动游戏、三维动画等。
目前,流媒体技术在国内应用最多的行业是教育,其次是广电、政府和电
信,而企业中应用得较少。目前,流媒体技术在企业里的主要应用包括职工培训、
信息发布、产品介绍、远程监控、视频会议和客户服务等。美国“9·11”事件
后,为了减少乘机风险,视频会议的应用越来越多。视频会议系统适用于那些有
《基于 Linux 的流媒体服务器配置和应用》
第 5 页 共 22 页
分支机构的企业,或者需要经常和合作伙伴交流的企业。视频会议系统可以明显
地提高工作效率。
由于受网络带宽、计算机处理能力和协议规范等方面的限制,要想从
Internet 上下载大量的音频和视频数据,无论从下载时间和存储空间上来讲都
是不太现实的,而流媒体技术的出现则很好地解决了这一难题。目前实现流媒体
传输主要有两种方法:顺序流(progressive streaming)传输和实时流(realtime
streaming)传输,它们分别适合于不同的应用场合[2]。
(1)顺序流传输
顺序流传输采用顺序下载的方式进行传输,在下载的同时用户可以在线回放多
媒体数据,但给定时刻只能观看已经下载的部分,不能跳到尚未下载的部分,也
不能在传输期间根据网络状况对下载速度进行调整。由于标准的 HTTP 服务器就
可以发送这种形式的流媒体,而不需要其他特殊协议的支持,因此也常常被称作
HTTP 流式传输。顺序流式传输比较适合于高质量的多媒体片段,如片头、片尾
或者广告等。
(2)实时流传输
实时流式传输保证媒体信号带宽能够与当前网络状况相匹配,从而使得流媒体数
据总是被实时地传送,因此特别适合于现场事件。实时流传输支持随机访问,即
用户可以通过快进或者后退操作来观看前面或者后面的内容。从理论上讲,实时
流媒体一经播放就不会停顿,但事实上仍有可能发生周期性的暂停现象,尤其是
在网络状况恶化时更是如此。与顺序流传输不同的是,实时流传输需要用到特定
的流媒体服务器,而且还需要特定网络协议的支持[3]。
2.3 流媒体协议
目前,支持流媒体传输的协议主要有:
(1)实时传输协议 RTP(Real-time Transport Protocol)
用于 Internet 上针对多媒体数据流的一种传输协议。RTP 通常工作在点对
点或点对多点的传输情况下,其目的是提供时间信息和实现流同步。RTP 通常
使用 UDP 传送数据,但也可工作在 ATM 或 TCP 等协议之上。
(2) 实时传输控制协议 RTCP(Real-time Transport Control Protocol)
《基于 Linux 的流媒体服务器配置和应用》
第 6 页 共 22 页
RTCP 和 RTP 一起提供流量控制和拥塞控制服务。通常 RTP 和 RTCP 配合
使用,RTP 依靠 RTCP 为传送的数据包提供可靠的传送机制、流量控制和拥塞
控制,因而特别适合传送网上的实时数据。
(3)实时流协议 RTSP(Real-time Streaming Protocol)
它是由 RealNetworks 和 Netscape 共同提出的,该协议定义了点对多点
应用程序如何有效地通过 IP 网络传送多媒体数据。
(4)资源预留协议 RSVP(Resource Reservation Protocol)
它是网络控制协议,运行在传输层。由于音视频流对网络的时延比传统数据
更敏感,因此在网络中除带宽要求外还需满足其它的条件。在 Internet 上开发
的资源预留协议可以为流媒体的传输预留一部分网络资源,从而保证服务质量
(QoS)。
2.4 流媒体技术
目前市场上主流的流媒体技术有三种,分别是 RealNetworks 公司的
RealMedia、Microsoft 的 Windows Media 和 Apple 公司的 QuickTime。这三家的
技术都有自己的专利算法、专利文件格式甚至专利传输控制协议这三个关键要素
在里面。图 2-1 是流媒体服务器构架。
图 2-1 流媒体服务器构架
2.5 网络流媒体工作传输原理
Linux 网络环境流媒体工作传输原理如图 2-2 所示。
《基于 Linux 的流媒体服务器配置和应用》
第 7 页 共 22 页
图 2-2 流媒体文件传输原理
一般来说,流式传输的过程包括三个步骤:
(1) 用户选定一流媒体服务后,Web 浏览器与 Web 服务器之间使用
(2)
(3)
HTTP/TCP 交换控制信息,得到需要传输的实时数据。然后客户机上的
Web 浏览器启动 A/V Helper 程序,使用 HTTP 从 Web 服务器检索相关
参数对 Helper 程序初始化。这些参数可能包括目录信息、A/V 数据的编
码类型或与 A/V 检索相关的服务器地址。
A/V Helper 程序及 A/V 服务器运行实时流协议(RTSP),以交换 A/V 传
输所需的控制信息。RTSP 提供了操纵播放、快进、快退、暂停及录制等
命令的方法。
A/V 服务器使用 RTP/UDP 协议将 A/V 数据传输给 A/V 客户程序(一般
可认为客户程序等同于 Helper 程序),一旦 A/V 数据抵达客户端,A/V 客
户程序即可播放输出。在流式传输中,使用 RTP/UDP 和 RTSP/TCP 两种
不同的通信协议与 A/V 服务器建立联系,是为了能够把服务器的输出重定
向到一个不同于运行 A/V Helper 程序所在客户机的目的地址[4]。
《基于 Linux 的流媒体服务器配置和应用》
第 8 页 共 22 页
3 软件的安装
3.1 软件下载
用 Helix Server 之前,首先要在 http://licensekey.realnetworks.com
/rnforms/页面中填写自己使用的操作系统、用户姓名、电子邮件地址、公司名
称、网址等相应信息,接着可以下载到 Helix Server 的 30 天试用版。此时需要
注意的是,这里的电子邮件地址一定要填写可以正常使用的,否则将无法收取到
RealNetworks 公司发送的试用授权文件。注册结束后,RealNetw- orks 公司会
向你的电子邮件发送一个授权码(License Key),让你在服务器使用 Helix,
授权码的格式是 Zip 包请把它解压后保存,在安装软件时要使用。接着就可以选
择下载 Helix Server 了。最新版本号是:1101。
3.2 系统要求
首先配置一个基于 Apache 的 LAMP 服务器,另外在软件方面它要求内核
(Kenerl)至少在 2.4 以上,桌面分辨率至少为 800×600 ,桌面颜色至少 16
位增强色。硬件方面中央处理器:奔腾 III667 以上 ,内存 128 兆 ,硬盘空
间 600 兆、OSS/Linux 兼容声卡、16 兆显示内存 。
3.3 安装详细步骤
以根权限登陆 Linux X-Windows,建立一个 Helix 的目录将授权码拷贝到目
录中。
#mkdir Helix
#cp RNKey-Helix_Server-90-1479442709717329.lic /Helix
改变下载的文件名称和组属性和组使它成为可执行文件。
#chmod +x helix-server-retail-11.01-rhel4-setup.bin
详细步骤如下:
./ helix-server-retail-11.01-rhel4-setup.bin
(1) Linux 操作系统首先列出授权码的存放目录:参考写法:
/root/Helix/ RNKey-Helix_Server-90-1479442709717329.lic
(2) 接着系统会显示很长的一份授权协议,在协议末尾处按回车键接受
该协议。