标题：流媒体服务器
简介
流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。
相对于下载后观看的网络播放形式而言，流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上，用户边下载边观看，而不必等待整个文件下载完毕。由于  流媒体服务器流媒体技术的优越性，该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。 
作为新一代互联网应用的标志，流媒体技术在近几年得到了飞速的发展。而流媒体服务器又是流媒体应用的核心系统，是运营商向用户提供视频服务的关键平台。其主要功能是对媒体内容进行采集、缓存、调度和传输播放，流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。因此，流媒体服务器是流媒体应用系统的基础，也是最主要的组成部分。
主要产品流媒体服务器：大并发视频服务器、直播时移服务器、P2P直播服务器、视频交互应用服务器视频应用管理：媒体内容管理系统、H.264/MPEG-4编码工具、机顶盒终端管理系统、节目导航与发布系统。
流媒体服务器的主要功能是以流式协议（RTP/RTSP、MMS、RTMP等）将视频文件传输到客户端，供用户在线观看；也可从视频采集、压缩软件接收实时视频流，再以流式协议直播给客户端。典型的流媒体服务器有微软的Windows Media Service（WMS），它采用MMS协议接收、传输视频，采用Windows Media Player（WMP）作为前端播放器；RealNetworks公司的Helix Server，采用RTP/RTSP协议接收、传输视频，采用Real Player作为播放前端；Adobe公司的Flash Media Server,采用RTMP(RTMPT/RTMPE/RTMPS)协议接收、传输视频，采用Flash Player作为播放前端。值得注意的是，随着Adobe公司的Flash播放器的普及（根据Adobe官方数据，Flash播放器装机量已高达99%以上），越来越多的网络视频开始采用Flash播放器作为播放前端，因此，越来越多的企业开始采用兼容Flash播放器的流媒体服务器，而开始淘汰其他类型的流媒体服务器。支持Flash播放器的流媒体服务器，除了Adobe Flash Media Server，还有Ultrant Flash Media Server流媒体服务器软件，以及基于Java语言的开源软件Red5。 
UMS
Ultrant Media Server(简称UMS)是一款可免费使用的支持Adobe Flash RTMP协议的高性能流媒体服务器软件系统。下面介绍如何使用免费版的Ultrant Media Server 1.8.9架设Flash直播、点播服务系统。一、 安装UMS1.8.9详见程序安装指南。二、 使用UMS点播/直播功能UMS通过使用RTMP协议向Flash Player传输或接收多种比特率的直播/点播媒体流、数据以及远程调用信息.UMS服务器支持基于Adobe Flash/AIR技术平台的流媒体点播/直播及其他功能.
2.1. 使用UMSMonitor配置UMS服务
UMSMonitor是一款专门用于管理Ultrant MediaServer服务器软件的工具软件，使用它可以方便地启动、停止、重启Ultrant Media Server服务，并可以设置各种运行参数。您可以通过鼠标右键点击Windows托盘右下角的蚂蚁图标来弹出系统菜单，见下图：
  弹出上图菜单后，用鼠标左键选取“打开Ultrant Media Server Monitor”选项，即可弹出UMSMonitor的主控界面，如下图：
  UMSMonitor主控界面[1]在UMSMonitor软件主控界面上，您可以通过左边的“服务状态”列表查看已经安装的UMS相关服务及其工作状态，要管理其中某一项服务，您需要先选中左边的列表项，然后找到右边的三个服务控制按钮，分别是“启动服务”、“停止服务”、“重启服务”，这三个按钮分别对应的功能是：启动UMS相关服务、停止UMS相关服务、重启UMS相关服务。
在UMSMonitor软件主控界面上，您需要先选中“Ultrant Media Server(UMS)”项，然后通过鼠标左键点击右边的“配置服务”按钮来进入Ultrant Media Server服务器软件配置界面。配置界面如下图：
  UMS配置选项
配置完成后，您需要点击“应用”以确认修改，然后点击“确定”使修改立刻生效，此时软件会提示您是否重启Ultrant Media Server服务以使修改生效，选择“确定”是配置生效。
2.2. 测试点播功能
要使用点播功能，您需要自己准备一个FLV格式的视频文件，并将其拷贝至任一媒体库路径下（媒体库路径可以通过UMSMonitor来添加），或将该FLV格式视频文件所在路径添加至媒体库路径。
视频文件及媒体库路径准备好后，请确保修改的设置已经生效，以及文件名没有冲突。如果您使用的是安装程序自带的Nginx Web服务器，请将nginx安装目录下html子文件夹中的vod.html文件用记事本打开；如果您使用已有的Web服务器，请将Web服务器根目录下的UMS\vod.html用记事本打开，找到下述代码：
so.addVariable('file','6rooms.flv');
so.addVariable('start','0');
so.addVariable('streamer','rtmp://127.0.0.1:1935/vod');
将127.0.0.1改为您当前服务器的IP地址；如果您使用自己准备的FLV格式视频文件，请将vod.html文件中上述代码中的“6rooms.flv”改为您自己准备的视频文件名称。
如果您使用安装程序自带的Nginx Web服务器，您可以通过浏览器访问http://{服务器IP地址}/vod.html来访问点播页面；如果您使用您的计算机原有的Web服务器，您可以通过浏览器访问http://{服务器IP地址}/UMS/vod.html来访问点播页面。
播放页面正常出现后，点击播放器即可播放。
2.3. 测试直播功能
您可以使用Adobe公司提供的免费软件Adobe Flash Media Live Encoder3.1来测试UltrantMedia Server软件的直播功能。
2.3.1 安装Adobe Flash Media Live Encoder3.1
安装过程及帮助详见Adobe官方网站。
2.3.2 准备摄像设备
您可以使用USB网络摄像头或专业的视频采集卡（需要Adobe Flash Media Live Encoder3.1程序能够识别）来作为视频源。
2.3.3 使用Adobe Flash Media Live Encoder3.1发布直播流
打开Adobe Flash MediaLive Encoder3.1软件，确保视频采集设备和音频采集设备能正常工作，正常工作的硬件设备看似应该如下图所示：
  [2]请正确设置好坐图红色矩形框所标注的位置，其中，FMS URL位置处的URL地址应该为”rtmp://{UltrantMedia Server所在服务器IP地址}/live”,Stream位置处应该为”livestream”。设置完成后，要首先按下”Connect”按钮，如果“Connect”按钮上的文字变成“Disconnect”，则表明连接成功；然后按最下边红色矩形框标注的“Start”按钮，以启动直播发布。正常工作的Adobe Flash Media LiveEncoder3.1看似应该如下图所示：
  [3]2.3.4 查看直播视频
如果您使用的是安装程序自带的NginxWeb服务器，请将nginx安装目录下html子文件夹中的live.html文件用记事本打开；如果您使用已有的Web服务器，请将Web服务器根目录下的UMS\live.html文件用记事本打开，找到下述代码：
so.addVariable('file','livestream');
so.addVariable('streamer','rtmp://127.0.0.1:1935/live');
将127.0.0.1改为您当前服务器的IP地址；如果您重新命名了发布的视频流的名称，请将live.html文件中上述代码中的“livestream”改为您自己命名的视频流的名称。
如果您使用安装程序自带的Nginx Web服务器，您可以通过浏览器访问http://{服务器IP地址}/live.html来访问直播页面；如果您使用您的计算机原有的Web服务器，您可以通过浏览器访问http://{服务器IP地址}/UMS/live.html来访问直播页面。三、 使用直播集群组网功能UMS支持可伸缩的无限级连直播集群组网功能，通过简单的可视化配置，您就可以将多台装有UMS服务器软件的服务器组成一个统一的直播网络群，其中的每一个节点都可以对外提供一致的直播服务。
3.1 使用UMSMonitor管理工具配置直播集群组网功能
打开UMSMonitor的服务配置界面，找到其中的”CDN配置”选项页，如下图：
  [4]如果您选择“使用直播流转发服务器功能”，则UMS可以作为直播流转发服务器使用。当您选择“应用”配置，选择“确定”并重启服务使配置生效后，您当前配置的UMS服务器软件将自动连接到上级UMS直播源服务器的同步地址和端口，以获取直播同步信息。注意：您必须启用上级UMS服务器的“使用直播流服务器功能”，也就是启用上级UMS服务器同等的上述配置页面的下半部分选项。只有在与上级UMS服务器的同步端口和同步口令一致的情况下，当前配置的UMS服务器才能连接到上级直播源服务器的同步端口，才能进行直播信息同步。
“上级直播源服务器服务地址”理论上与“上级直播源服务器同步地址”是一致的，都是上级服务器的地址（当设置UMS的对外视频直播服务IP与UMS对外直播同步服务IP不一致的情况除外），“上级直播源服务器服务端口”就是上级UMS服务器在UMSMonitor配置工具服务配置页面中的“基本配置”页面上的“IP地址和端口”栏中设置的监听端口，上级UMS通过这个端口对外提供视频数据直播服务。当前配置的UMS服务器也是从上级服务器的对外视频数据直播服务端口获取实时视频直播数据，并经由本地转发的。
启用本地的“使用直播流源服务器功能”后，当前配置的UMS服务器即可作为直播源服务器，为下级UMS服务器提供直播信息同步服务和直播视频流传输服务。
UMS服务器在进行上下级组网同步直播信息和直播数据流的同时，还能对用户提供视音频数据的点播和直播功能。下图描绘的是使用UMS进行直播组网后的效果图：
  [5]四、使用媒体访问控制服务（UMAS）从版本1.8.9开始，Ultrant Media Server引入了一种新的服务器程序，即媒体内容访问控制服务器（UMAS，即Ultrant Media Access Service）。UMAS为Ultrant Media Server服务器系统提供了强大而灵活的网络授权功能，可以有效地保护您的媒体内容。
4.1 UMAS服务模式介绍
UMAS是一个口令生成与管理服务器软件。UMAS提供访问口令的生成、管理与分发功能，并提供友好的开发集成接口。UMAS与UMS对外服务主程序的协作图如下：
  UMAS协作图
或见下图：
  UMAS流程图
4.2 配置UMAS及UMS以使用访问控制功能
您可以通过UMSMonitor程序来配置UMAS服务，以及配置UMS与UMAS的连接参数。
4.2.1配置UMAS服务
请首先确保UMAS服务已经安装。打开UMSMonitor配置工具（方法见2.2），您可以从已安装的服务列表中查看UMAS服务是否已经安装。要配置UMAS服务，先用鼠标选中Ulrant Media Access Service(UMAS)行，点击面板右边的“配置服务”按钮，即会弹出UMAS服务的配置页面，如下图。  UMAS配置选项其中，口令分发服务相关参数影响UMS主服务程序与UMAS服务的连接，包括口令分发服务配置栏目和口令分发服务连接设置栏目；口令获取服务相关参数影响通过HTTP连接接口创建并返回口令功能，该部分设置包括口令获取服务配置和口令获取服务连接设置栏目。要获取各个参数的使用方法，请将鼠标移动至相关文本框，您可以通过界面提示信息来修改参数。
注意：这里设置的IP地址是UMAS服务要绑定的IP地址，通常设置为0.0.0.0，即绑定任意地址；两个端口值分别是UMAS要监听的口令分发服务端口和口令获取服务端口，配置适当的UMS服务主程序将连接到口令分发服务端口与UMAS进行通信，Web系统集成则需要后端服务脚本通过口令获取服务端口创建和获取访问控制口令。与上述两个端口对应的口令则是服务的接入口令。
4.2.2配置UMS以连接UMAS
要配置UMS服务，请打开UMSMonitor配置工具（方法见2.2），先用鼠标选中Ulrant Media Server(UMS)行，点击面板右边的“配置服务”按钮，即会弹出UMS服务的配置页面，再选中“综合配置”页面，如下图所示。  UMS连接UMAS服务
上图中，右下角的“媒体访问控制配置”包含了需要配置的若干选项。其中，UMAS服务器地址是UMAS服务器软件对外提供服务的IP地址（注意：这个IP地址跟章节3.2.1配置的UMAS的绑定地址不是一回事）；UMAS服务器端口应与章节3.2.1中配置的分发服务器端口一致；UMAS服务器口令应与章节3.2.1中配置的分发服务器口令一致。
注意：一旦您选定连接访问控制服务器（UMAS）选项，对于所有访问该UMS服务的连接，均需提供正确的访问控制口令才能访问媒体内容，否则将无法继续访问媒体内容。该功能必须与UMAS一起使用，您需要参照章节3.2.1和章节3.3来设计您的内容管理系统。
4.3 UMAS内部集成接口
UMAS为方便与现有web系统集成，设计为通过标准HTTP请求创建并获取口令，在此同时，UMAS会自动将新生成的访问口令分发到连接至自身的UMS服务器。UMAS与web系统以及UMS主服务器程序可以分别部署在不同的硬件服务器上。
参数中文释义
参数项
说明
页面
gettoken
UMAS提供的获取访问口令的接口页面（内部虚拟页面）。
服务接入口令
token
外部应用访问口令获取接口必须提供的接入口令，该口令通过UMSMonitor程序设置，是为了防止不合法用户使用口令获取功能。
应用名称
app
设置要获取的口令所能访问的应用名称，如果不设置该参数，则获取的口令可以访问所有可用应用。
有效时间
duration
设置要获取的口令的有效时间，超过有效时间的访问口令将不再起作用。（数值类型：整数；单位：秒）
使用次数
limit
设置要获取的口令的使用次数，超过使用次数的访问口令将不再起作用。（数值类型：整数；单位：次）。
注意：如果一个访问口令在有效次数内超过有效时间，其仍会失去有效性。
返回格式
format
设置UMAS返回的口令的格式。（数值类型：枚举（xml和json），如果不设置则返回文本类型）。返回的xml格式举例：
<?xml version ="1.0" encoding="utf-8"?>
<Token>CiQY56Fy6X65ltXH</Token>
返回的json格式举例：
{"Token":"xDDcnR4V07Iqyn3n"}
返回的文本格式举例：
39VvZGpnrmVcsSiZ
4.4.接口使用示例
在使用之前请先确保UMAS服务器程序在正常运行，并开启相关的防火墙端口。您需要先向UMAS管理员获取UMAS对外提供服务的IP地址和端口值，以及服务访问口令，通过下述形式访问UMAS服务以获取媒体访问控制口令（protocol仅支持HTTP）：
{protocol}://{umas_ip}:{umas_port}/gettoken?token={umas_token}&app=vod&duration=100&limit=10&format=xml
4.5.媒体访问控制口令的使用
媒体访问控制口令是一个16位的字符串，在播放器与UMS主服务器程序建立RTMP连接的时候使用，使用方式如下(protocol仅支持rtmp、rtmpe)：
{protocol}://{ums_ip}:{ums_port}/{app_name}?token={从UMAS获取的媒体访问控制口令}
WMS
使用Windows Media Encoder这个软件即可实现网上广播服务，不过，借助于Windows Media Services，利用Windows Media Encoder制作的流媒体文件，我们的网络广播站功能将更为强大。下面，我们将利用Windows Media Encoder单独建立广播站，并将其纳入Windows Media Services，实现更强大的功能。 1. 安装Windows Media Services首先安装Windows 2000 Server或者Windows .Net Server，然后打开“开始－控制面板－管理工具－管理您的服务器”或“开始－控制面板－添加或删除程序－添加/删除Windows组件”（建议使用第二种），在其中勾取“Web应用程序服务器”，也就是2000 Server中的IIS服务器，单击“下一步”进行添加； 
添加IIS完毕后，再次启动添加/删除Windows组件程序，并勾取Windows Media Service项，单击详细信息，在其中选择“用于Web的Windows Media Services Administrator”以启动Windows Media Services的Web管理功能（2000中可能没有这些选项，只需要安装Windows Media Services即可）； 2. 安装Windows Media Encoder从微软网站下载Windows Media Encoder 7.1（由于Windows Media Encoder 9.0无法在.Net Server下工作）进行安装，至此，Windows Media服务的服务器和编码器都已经具备；3. 运行Windows Media Encoder（1）从“开始－程序－Windows Media” 启动Windows Media Encoder，在出现的向导界面中根据自己的需要选择合适的选项，建议新手“使用新建会话向导广播、捕获或转换文件”，选择后单击确定； 
（2）由于进行的是广播，所以在下一个弹出的画面中请选择“在附属设备或计算机屏幕广播实况事件”，这样的选择能够让Windows Media Encoder直接进行广播或者将其加入Windows Media Service服务； 
（3）在下一个画面中选择您进行视频或音频捕获的设备，笔者没有视频卡，所以只能选择“屏幕捕获”，有视频卡的朋友请选择您的视频卡； 
（4）广播信号必须通过一个有效的端口进行传输，因此必须对它进行设置。Windows Media Encoder默认的端口为8080，但由于这个端口经常被其它软件占用，所以建议朋友们单击“查找可用端口”以换成其它随机端口或者直接输入没有被占用的端口。我选择了“3170”端口； 
（5）然后就开始选择我们进行广播的流媒体质量，有一个公式您可以参考：流媒体配置文件带宽×最大连接用户数=您的上行带宽（不是下载，是上传）。您如果有2Mbps的上行带宽，选择了100Kbps的配置文件，则允许同时20个观众看到您的广播，由此可见，流媒体服务对带宽的需求是巨大的； 
（6） 在这个窗口您可以选择将进行广播的流媒体存档，以便于以后观看或者进行点播，若只是作为实况广播服务，并且硬盘空间不大，您可以不选取； 
（7） “下一步”后，您可以选择是不是添加微软内置的欢迎、休息和再见文件，我就没要这些东西，谁给微软免费作广告，呵呵； 
（8） 然后，我们可以给我们的广播节目添加上版权信息，这些信息在播放时，会出现在Windows Media Player中； 
（9） 弹出最后一个确认窗口后，我们最终的广播界面就出现了，若是有视频捕捉设备，只要单击“开始”，我们的广播站就运行起来，只要在客户机IE中输入“mms://服务器的：端口值”就会弹出media player播放电视。如我建立的广播站地址就是“mms://192.168.0.1:3170，这些信息您也可以直接在此界面的连接标签中查看； 
（10） 若是您和我一样没有视频捕捉设置，或者想向用户播放一段录制好的视频，请点击“会话－属性”（此面板能够对所有设置过的数据进行调整），单击“更改”按钮，在弹出窗口中选择视频右边的下拉框，单击“查找文件”，找到您预先录制好的视频文件（支持asf、wmv、avi、mpg等格式）； 
（11） 再回到广播界面，点击开始，您的文件就可以被网络上的兄弟姐妹看到了， 
若是想添加更多的文件或设备，请在以上窗口单击“更改”旁的“新建”进行添加即可； 
（12） 您可能觉得到这里我们就大功告成了，实际上远远没有，这只是最基本的直播广播，我们还需要将其加入Windows Media Services的广播服务中，以实现更强大的功能。请将你的鼠标指向“开始－控制面板－管理工具－Windows Media Services”，打开Windows Media管理器（2000 Server应该是一个Web界面）。选择左边的服务器后，单击操作菜单中的“添加发布点（向导）”，经历欢迎页面后，会出现发布点命名窗口，在其中输入您愿意使用的名字，我输入的是“SOFTICP._Broadcast”； 
（13） 在下一个窗口中，将让您选择所要发布的内容类型，如果只是单纯的进行流媒体直播，就选择“编码器（实况流）”，若是想在实况流中加入其它制作好的文件，请选择“播放列表”，若是想建立视频点播服务器，请选择“目录中的文件”。由于我有现成的制作好的文件，所以选择了“播放列表”； 
（14） 选择完了发布内容的类型，就要选择发布的方案，我们进行的是网络广播的服务，当然要选择“广播发布点”。在接下来的窗口中，我们要选择内容的传递方式，看到了吧，这次我们前面介绍的单播和组播的基本概念起了作用，我们的网络一般不支持组播，所以要选择“单播”； 
（15） 若是您以前有创建好的播放列表文件（wsx或htm文件），直接在下一个窗口中选择“现有播放列表”，若是没有，请跟我一样，“新建播放列表后进行添加”。在添加窗口中，可以添加文件、编码器的实况流、远程发布点的流媒体、ASP、CGI的动态源等多种媒体，并且还可以添加广告信息以及调整媒体的播放顺序； 
（16） 完成播放列表的编辑后，点击“下一步”将播放列表保存成文件，并且在下一个窗口中可以选择是否“循环播放”或“无序播放”这些流媒体。再经历几个确认框，您就完成了Windows Media流媒体广播服务器的建立，为了快捷，我们就将“完成此向导后启动其它向导”前面的对勾去掉吧！ 
（17） 服务器启动后，您就可以在Windows Media Player中输入“mms://服务器IP/发布点名称”观看网络广播了。而在Windows Media Services的管理器中，我们可以随时监视流媒体的播放情况、添加/删除与调整播放列表、插入广告、发布公告（可以直接生成htm页面）、调整该广播站的属性等操作，并可以随时通过下面的按钮启动与停止广播站以及测试当前流媒体是否正常； 
此图是使用公告向导建立的发布点公告网页，是不是非常方便？ 
（18） 我们还可以通过在浏览器中输入管理器的网址或者直接启动管理工具中的“Windows Media Services(Web)”来对整个流媒体服务器进行Web管理以及远程管理，其管理界面与本地管理除了少几个功能外，几乎没有差别。 
远程管理还可以对一个服务器组多台服务器进行管理。4.设置允许连接的客户端数量在WMS流媒体服务器中可以对流媒体进行播放授权，并限制某些IP地址连接到流媒体服务器：
第1步，打开Windows Media Services窗口，在左窗格中展开服务器和“发布点”目录，并选中发布点Movie。
第2步，切换到“属性”选项卡，在“类别”列表中选中“授权”选项，然后在“插件”列表中双击“WMS IP地址授权”选项。
第3步，在打开的“WMS IP地址授权 属性”对话框中选中“除允许列表中的地址外，全部拒绝”单选框，并单击“添加IP”按钮。
第4步，打开“添加IP地址”对话框，选中“计算机组”单选框。在“子网地址”编辑框中输入允许连接到流媒体发布点的IP地址段，并在“子网掩码”编辑框中输入子网掩码。设置完毕依次单击“确定”→“确定”按钮使设置生效。[6]
PPS
PPS是目前全球最大的P2P视频服务运营商，一直在为新浪网、新传体育、凤凰网、21CN等媒体和门户提供P2P视频服务技术解决方案。
经过半年的测试服务，PPS的点播服务已经有超过40万人同时在线，每天服务800万人次，技术趋于稳定成熟，现正式对外免费开放PPS点播服务器产品。
PPS流媒体服务器可以为点播运营商提供P2P加速、内容分发、点播网站建站解决方案等全套技术支持。