<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_antoniozhou的Blog</title><subtitle type="text">流媒体技术，服务器技术，多媒体网络应用</subtitle><id>http://feed.cnblogs.com/blog/u/20663/rss</id><updated>2011-12-18T08:59:17Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/20663/rss"/><entry><id>http://www.cnblogs.com/antoniozhou/archive/2011/12/18/2291710.html</id><title type="text">架设流媒体服务器</title><summary type="text">随着Adobe公司的Flash播放器的普及（根据Adobe官方数据，Flash播放器装机量已高达99%以上），越来越多的网络视频开始采用Flash播放器作为播放前端，因此，越来越多的企业开始采用兼容Flash播放器的流媒体服务器，而开始淘汰其他类型的流媒体服务器。Ultrant Media Server(简称UMS)是一款可免费使用的支持Adobe Flash RTMP协议的高性能流媒体服务器软件系统。下面介绍如何使用免费版的Ultrant Media Server 1.8.8架设Flash直播、点播服务系统。</summary><published>2011-12-18T04:26:00Z</published><updated>2011-12-18T04:26:00Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><link rel="alternate" href="http://www.cnblogs.com/antoniozhou/archive/2011/12/18/2291710.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/archive/2011/12/18/2291710.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div style="font-family: Arial, Verdana, sans-serif; font-size: 12px; background-color: #ffffff; word-break: break-word; word-wrap: break-word; margin-top: 5px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; overflow-y: auto; "&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;使用免费UMS架设Flash流媒体服务&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;随着Adobe公司的Flash播放器的普及（根据Adobe官方数据，Flash播放器装机量已高达99%以上），越来越多的网络视频开始采用Flash播放器作为播放前端，因此，越来越多的企业开始采用兼容Flash播放器的流媒体服务器，而开始淘汰其他类型的流媒体服务器。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;Ultrant Media Server(简称UMS)是一款可免费使用的支持AdobeFlash RTMP协议的高性能流媒体服务器软件系统。下面介绍如何使用免费版的Ultrant Media Server 1.8.8架设Flash直播、点播服务系统。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;a name="2_1" xhe-anchor"&gt;&lt;/a&gt;&lt;span style="font-weight: bold; "&gt;一、 安装Ultrant Media Server 1.8.8&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;详见程序安装指南。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;a name="2_2" xhe-anchor"&gt;&lt;/a&gt;&lt;span style="font-weight: bold; "&gt;二、 使用UMS点播/直播功能&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;UMS通过使用RTMP协议向FlashPlayer传输或接收多种比特率的直播/点播媒体流、数据以及远程调用信息.UMS服务器支持基于Adobe Flash/AIR技术平台的流媒体点播/直播及其他功能.&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;span style="font-weight: bold; "&gt;2.1.使用UMSMonitor配置UMS服务&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;UMSMonitor是一款专门用于管理Ultrant Media Server服务器软件的工具软件，使用它可以方便地启动、停止、重启Ultrant Media Server服务，并可以设置各种运行参数。您可以通过鼠标右键点击Windows托盘右下角的蚂蚁图标来弹出系统菜单，见下图：&lt;/p&gt;&lt;p style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/menu.jpg" width="246" height="82" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;弹出上图菜单后，用鼠标左键选取&amp;#8220;打开Ultrant Media Server Monitor&amp;#8221;选项，即可弹出UMSMonitor的主控界面，如下图：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/mainconf.jpg" width="532" height="357" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;在UMSMonitor软件主控界面上，您可以找到右边的三个服务控制按钮，分别是&amp;#8220;启动服务&amp;#8221;、&amp;#8220;停止服务&amp;#8221;、&amp;#8220;重启服务&amp;#8221;，这三个按钮分别对应的功能是：启动UMS服务、停止UMS服务、重启UMS服务。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;在UMSMonitor软件主控界面上，您可以通过鼠标左键点击右边的&amp;#8220;配置服务&amp;#8221;按钮来进入Ultrant Media Server服务器软件配置界面。配置界面如下图：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/basicconf.jpg" width="506" height="410" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;配置完成后，您需要点击&amp;#8220;应用&amp;#8221;以确认修改，然后点击&amp;#8220;确定&amp;#8221;使修改立刻生效，此时软件会提示您是否重启Ultrant Media Server服务以使修改生效，选择&amp;#8220;确定&amp;#8221;是配置生效。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;span style="font-weight: bold; "&gt;2.2.测试点播功能&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;要使用点播功能，您需要自己准备一个FLV格式的视频文件，并将其拷贝至任一媒体库路径下（媒体库路径可以通过UMSMonitor来添加），或将该FLV格式视频文件所在路径添加至媒体库路径。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;视频文件及媒体库路径准备好后，请确保修改的设置已经生效，以及文件名没有冲突。如果您使用的是安装程序自带的NginxWeb服务器，请将nginx安装目录下html子文件夹中的vod.html文件用记事本打开；如果您使用已有的Web服务器，请将Web服务器根目录下的UMS\vod.html用记事本打开，找到下述代码：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;so.addVariable('file','6rooms.flv');&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;so.addVariable('start','0');&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;so.addVariable('streamer','rtmp://127.0.0.1:1935/vod');&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;将127.0.0.1改为您当前服务器的IP地址；如果您使用自己准备的FLV格式视频文件，请将vod.html文件中上述代码中的&amp;#8220;6rooms.flv&amp;#8221;改为您自己准备的视频文件名称。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;如果您使用安装程序自带的NginxWeb服务器，您可以通过浏览器访问http://{服务器IP地址}/vod.html来访问点播页面；如果您使用您的计算机原有的Web服务器，您可以通过浏览器访问http://{服务器IP地址}/UMS/vod.html来访问点播页面。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;播放页面正常出现后，点击播放器即可播放。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;span style="font-weight: bold; "&gt;2.3.测试直播功能&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;您可以使用Adobe公司提供的免费软件Adobe Flash Media Live Encoder3.1来测试Ultrant Media Server软件的直播功能。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;2.3.1安装Adobe Flash Media LiveEncoder3.1&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;安装过程及帮助详见Adobe官方网站。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;2.3.2准备摄像设备&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;您可以使用USB网络摄像头或专业的视频采集卡（需要Adobe Flash Media LiveEncoder3.1程序能够识别）来作为视频源。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;2.3.3使用Adobe Flash Media Live Encoder3.1发布直播流&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;打开Adobe Flash Media Live Encoder3.1软件，确保视频采集设备和音频采集设备能正常工作，正常工作的硬件设备看似应该如下图所示：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/fmle1.jpg" width="525" height="394" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;请正确设置好坐图红色矩形框所标注的位置，其中，FMS URL位置处的URL地址应该为&amp;#8221;rtmp://{UltrantMediaServer所在服务器IP地址}/live&amp;#8221;,Stream位置处应该为&amp;#8221;livestream&amp;#8221;。设置完成后，要首先按下&amp;#8221;Connect&amp;#8221;按钮，如果&amp;#8220;Connect&amp;#8221;按钮上的文字变成&amp;#8220;Disconnect&amp;#8221;，则表明连接成功；然后按最下边红色矩形框标注的&amp;#8220;Start&amp;#8221;按钮，以启动直播发布。正常工作的Adobe Flash Media LiveEncoder3.1看似应该如下图所示：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/fmle2.jpg" width="510" height="384" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;2.3.4 查看直播视频&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;如果您使用的是安装程序自带的NginxWeb服务器，请将nginx安装目录下html子文件夹中的live.html文件用记事本打开；如果您使用已有的Web服务器，请将Web服务器根目录下的UMS\live.html文件用记事本打开，找到下述代码：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;so.addVariable('file','livestream');&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;span style="font-family: arial, 宋体, sans-serif; font-size: 14px; line-height: 24px; "&gt;　　&lt;/span&gt;so.addVariable('streamer','rtmp://127.0.0.1:1935/live');&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;将127.0.0.1改为您当前服务器的IP地址；如果您重新命名了发布的视频流的名称，请将live.html文件中上述代码中的&amp;#8220;livestream&amp;#8221;改为您自己命名的视频流的名称。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;如果您使用安装程序自带的NginxWeb服务器，您可以通过浏览器访问http://{服务器IP地址}/live.html来访问直播页面；如果您使用您的计算机原有的Web服务器，您可以通过浏览器访问http://{服务器IP地址}/UMS/live.html来访问直播页面。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;a name="2_3" xhe-anchor"&gt;&lt;/a&gt;&lt;span style="font-weight: bold; "&gt;三、 使用直播集群组网功能&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;UMS支持可伸缩的无限级连直播集群组网功能，通过简单的可视化配置，您就可以将多台装有UMS服务器软件的服务器组成一个统一的直播网络群，其中的每一个节点都可以对外提供一致的直播服务。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&lt;span style="font-weight: bold; "&gt;3.1&amp;nbsp;使用UMSMonitor管理工具配置直播集群组网功能&lt;/span&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;打开UMSMonitor的服务配置界面，找到其中的&amp;#8221;CDN配置&amp;#8221;选项页，如下图：&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/cdnconf.jpg" width="505" height="408" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;如果您选择&amp;#8220;使用直播流转发服务器功能&amp;#8221;，则UMS可以作为直播流转发服务器使用。当您选择&amp;#8220;应用&amp;#8221;配置，选择&amp;#8220;确定&amp;#8221;并重启服务使配置生效后，您当前配置的UMS服务器软件将自动连接到上级UMS直播源服务器的同步地址和端口，以获取直播同步信息。注意：您必须启用上级UMS服务器的&amp;#8220;使用直播流服务器功能&amp;#8221;，也就是启用上级UMS服务器同等的上述配置页面的下半部分选项。只有在与上级UMS服务器的同步端口和同步口令一致的情况下，当前配置的UMS服务器才能连接到上级直播源服务器的同步端口，才能进行直播信息同步。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;&amp;#8220;上级直播源服务器服务地址&amp;#8221;理论上与&amp;#8220;上级直播源服务器同步地址&amp;#8221;是一致的，都是上级服务器的地址（当设置UMS的对外视频直播服务IP与UMS对外直播同步服务IP不一致的情况除外），&amp;#8220;上级直播源服务器服务端口&amp;#8221;就是上级UMS服务器在UMSMonitor配置工具服务配置页面中的&amp;#8220;基本配置&amp;#8221;页面上的&amp;#8220;IP地址和端口&amp;#8221;栏中设置的监听端口，上级UMS通过这个端口对外提供视频数据直播服务。当前配置的UMS服务器也是从上级服务器的对外视频数据直播服务端口获取实时视频直播数据，并经由本地转发的。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;启用本地的&amp;#8220;使用直播流源服务器功能&amp;#8221;后，当前配置的UMS服务器即可作为直播源服务器，为下级UMS服务器提供直播信息同步服务和直播视频流传输服务。&lt;/p&gt;&lt;p align="left" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; "&gt;UMS服务器在进行上下级组网同步直播信息和直播数据流的同时，还能对用户提供视音频数据的点播和直播功能。下图描绘的是使用UMS进行直播组网后的效果图：&lt;/p&gt;&lt;div style="text-align: center; "&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/antoniozhou/Grid.jpg" width="495" height="414" alt="" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/antoniozhou/aggbug/2291710.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/antoniozhou/archive/2011/12/18/2291710.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/antoniozhou/archive/2008/10/23/1318287.html</id><title type="text">NASM、MASM浅谈</title><summary type="text">本文讲述了NASM和MASM在导入导出外部库函数上的不同用法，并通过代码演示了如何合并目标程序段以达到缩小程序大小的目的，以及如何通过伪指令给连接器传参数等相关知识。要读懂该文章，需要具备读懂汇编语言的能力，并且已经了解PE文件格式、COFF文件格式、OMF文件格式相关信息，以及具备相关汇编器支持的语法特性，相关连接器的使用方法等知识。</summary><published>2008-10-23T14:49:00Z</published><updated>2008-10-23T14:49:00Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><link rel="alternate" href="http://www.cnblogs.com/antoniozhou/archive/2008/10/23/1318287.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/archive/2008/10/23/1318287.html"/></entry><entry><id>http://www.cnblogs.com/antoniozhou/archive/2008/10/22/1317284.html</id><title type="text">Inside Windows:An In-Depth Look into the Win32 Portable Executable File Format</title><summary type="text">SUMMARY A good understanding of the Portable Executable (PE) file format leads to a good understanding of the operating system. If you know what's in your DLLs and EXEs, you'll be a more knowledgeable programmer. This article, the first of a two-part series, looks at the changes to the PE format that have occurred over the last few years, along with an overview of the format itself.      After this update, the author discusses how the PE format fits into applications written for .NET, PE file </summary><published>2008-10-22T15:46:00Z</published><updated>2008-10-22T15:46:00Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><link rel="alternate" href="http://www.cnblogs.com/antoniozhou/archive/2008/10/22/1317284.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/archive/2008/10/22/1317284.html"/></entry><entry><id>http://www.cnblogs.com/antoniozhou/archive/2008/10/22/1317274.html</id><title type="text">Peering Inside the PE: A Tour of the Win32 Portable Executable File Format</title><summary type="text">Matt Pietrek March 1994 Matt Pietrek is the author of Windows Internals (Addison-Wesley, 1993). He works at Nu-Mega Technologies Inc., and can be reached via CompuServe: 71774,362 This article is reproduced from the March 1994 issue of Microsoft Systems Journal. Copyright © 1994 by Miller Freeman, Inc. All rights are reserved. No part of this article may be reproduced in any fashion (except in brief quotations used in critical articles and reviews) without the prior consent of Miller</summary><published>2008-10-22T15:36:00Z</published><updated>2008-10-22T15:36:00Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><link rel="alternate" href="http://www.cnblogs.com/antoniozhou/archive/2008/10/22/1317274.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/archive/2008/10/22/1317274.html"/></entry><entry><id>http://www.cnblogs.com/antoniozhou/archive/2006/08/17/478840.html</id><title type="text">多线程编程之使用工作线程实现文档自动保存(II)</title><summary type="text">通常情况下，辅助工作线程被用来进行后台打印、运算及操作。这里，我们将用辅助工作线程实现文档的自动保存。如何使用辅助工作线程呢？使用过程中要注意哪些问题呢？而定时保存中要用到的Timer计时器是怎样使用的呢？本文将努力给初学者一个清晰明确的答案。</summary><published>2006-08-17T12:51:00Z</published><updated>2006-08-17T12:51:00Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><link rel="alternate" href="http://www.cnblogs.com/antoniozhou/archive/2006/08/17/478840.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/archive/2006/08/17/478840.html"/></entry><entry><id>http://www.cnblogs.com/antoniozhou/archive/2006/08/15/477200.html</id><title type="text">多线程编程之使用工作线程实现文档自动保存(I)</title><summary type="text">在文档处理类型的软件的开发过程中，通常要添加文档自动保存功能。如何给这样的软件添加一个高效而合理的文档自动保存功能，是程序员所要关心的事情。一般情况下，通过在主线程中调用CDocument::OnSaveDocument()函数来添加自动保存功能是一个比较简单的方法，然而这种方法却存在很多弊端；使用辅助工作线程实现文档自动保存与操作分离的方法，确实比较高效，但也面临很多实现上的问题，这其中究竟会遇到哪些意想不到的问题呢？</summary><published>2006-08-15T03:32:00Z</published><updated>2006-08-15T03:32:00Z</updated><author><name>antoniozhou</name><uri>http://www.cnblogs.com/antoniozhou/</uri></author><link rel="alternate" href="http://www.cnblogs.com/antoniozhou/archive/2006/08/15/477200.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/antoniozhou/archive/2006/08/15/477200.html"/></entry></feed>
