标题：ASF
认识ASF文件
  ASF文件ASF是一个开放标准，它能依靠多种协议在多种网络环境下支持数据的传送。同JPG、MPG文件一样，ASF文件也是一种文件类型，但它是专为在IP网上传送有同步关系的多媒体数据而设计的，所以ASF格式的信息特别适合在IP网上传输。ASF文件的内容既可以是我们熟悉的普通文件，也可以是一个由编码设备实时生成的连续的数据流，所以ASF既可以传送人们事先录制好的节目，也可以传送实时产生的节目。
ASF用于排列、组织、同步多媒体数据以利于通过网络传输。ASF是一种数据格式，它也可用于指定实况演示。ASF最适于通过网络发送多媒体流，也同样适于在本地播放。任何压缩/解压缩运算法则（编解码器）都可用来编码ASF流。
Windows Media Service的核心是ASF。ASF是一种数据格式，音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式，以网络数据包的形式传输，实现流式多媒体内容发布。其中，在网络上传输的内容就称为ASF Stream。ASF支持任意的压缩/解压缩编码方式，并可以使用任何一种底层网络传输协议，具有很大的灵活性。
Microsoft Media player是能播放几乎所有多媒体文件的播放器，支持ASF在Internet网上的流文件格式，可以一边下载一边实时播放，无需下载完再听。
补：微软的Windows Media Player SDK中将ASF解释为 Advanced Systems Format 。
创建ASF文件
如何生成ASF文件呢？在此提供软件和硬件的两种方式，供有兴趣的用户参考。
1．通过软件将MPEG-1格式的影像文件转换成微软最新的ASF视频流格式。使用软件工具为：Sonic Foundry Stream Anywhere和Windows Media Toolkit。具体实施步骤为：首先安装Windows Media Toolkit或把相应版本号的ASF压缩编码驱动库拷贝到Windows/System目录。  创建ASF文件接着运行软件——Sonic Foundry Stream Anywhere。打开mpg文件。选择“Save as”（另存为）→选择你要储存ASF文件的文件夹→选择“Encode Windows Media Format”项→设置你要生成的ASF文件的压缩比例。如果选250 Video的话就相当于2MB/分钟的压缩速度，图像的质量不太好。同理，如果是选512 Video相当于4MB/分钟的压缩速度。其实，质量好的ASF应该是在320×240和有30帧/秒的情况下，它的图像和声音仍然可以同步。最后，取消Encode Real Media format选项并确认完成。
2．利用专用的视频采集卡(Ospres-200)，借助“Netshow Ecorder 3.0”软件把录像机、影碟机、摄像机等视频、音频信号转换成ASF格式。对已是数字格式的dat、mpg文件，可以通过豪杰超级解霸2000中的工具——“vcd转avi”程序，先转换成avi格式，再使用采集卡附带的软件完成转换。具体过程在此不作介绍。
对以上两种形式来说，使用第二种效果比较好，画面信号损失少，图像质量更高。
利用ASF文件
ASF流文件的数据速率可以在28.8Kbps到3Mbps之间变化。用户可以根据自己应用环境和网络条件选择一个合适的速率，实现VOD点播和直播。
1. 点播功能（Video On Demand）
因为ASF技术支持任意的压缩/解压缩编码，可以使用任何一种底层网络传输协议，这使它既能在高速的局域网内使用，也可以在拨号方式连接的低带宽Internet环境下使用。点播服务方式下，用户之间互不干扰，可以对点播内容的播放进行控制。这种方式最为灵活，但是占用服务器、网络资源多。
ASF的点播内容均存放在VOD服务器上，建立VOD站点进行网页发布，在同一时间可多点同时点播相同或不同的节目，即多个计算机可在不同的地点、不同的时刻，实时、交互式地点播同一ASF流文件，用户可以通过上网查看和选择内容进行点播。播放过程中可实现播放、停止、暂停、快进、后退等功能，播放速率达到25帧/s,1小时的视频信息按照300Kb/s采集，只占108MB的空间，1张640MB的光盘可存放将近6小时的ASF文件。
2. 直播功能
直播服务下，用户只能观看播放的内容，无法进行控制。可以使用ASF文件作为媒体内容的来源，实时的多媒体内容最适合使用直播服务方式。通过视频捕捉卡把摄像机、麦克风记录的内容输入到计算机，进行编码生成ASF流，然后通过该机把信号传送到网络，用户通过网页收看直播内容。
计算机可同时接收相同或不同的节目频道，直播计算机可作为一个小电视台，连在网上的每一台计算机都可实时接收9个不同的节目频道（这项功能笔者在单位已经实现，一个教员讲课，同时有8个教室、800多人同时收看教学情况，效果良好）。
3. 远程教育

优点
本地或网络回放
可扩充的媒体类型 
部件下载、可伸缩的媒体类型
流的优先级化
多语言支持、环境独立性 
丰富的流间关系以及扩展性等。

发展历史
Apache软件基金会（ASF）正式创建于1999年，它的创建者是一个自称为“Apache 组织”的群体。这个“Apache 组织”在1999年以前就已经存在很长时间了，这个组织的开发爱好者聚集在一起，在美国伊利诺斯大学超级计算机应用程序国家中心（National Center for Supercomputing Applications，简称为NCSA）开发的 NCSA HTTPd 服务器的基础上开发与维护了一个叫 Apache 的 HTTP服务器。
最初 NCSA HTTPd 服务器是由 Rob McCool 开发出来的，但是它的最初开发者们逐渐对这个软件失去了兴趣，并转移到了其他地方，造成了没有人来对这个服务器软件提供更多的技术支持。因为这个服务器的功能又如此强大，而代码可以自由下载修改与发布，当时这个服务器软件的一些爱好者与用户开始自发起来，互相交流并分发自己修正后的软件版本，并不断改善其功能。为了更好进行沟通，Brian Behlendorf 自己建立了一个邮件列表，把它作为这个群体（或者社区）交流技术、维护软件的一个媒介，把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为“Apache 组织”，把这个经过不断修正并改善的服务器软件命名为 Apache 服务器（Apache Server）。
这个命名是根据北美当地的一支印第安部落而来，这支部落以高超的军事素养和超人的忍耐力著称，19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意，取该部落名称（Apache）作为服务器名。但一提到这个命名，这里还有流传着一段有意思的故事。因为这个服务器是在 NCSA HTTPd 服务器的基础之上，通过众人努力，不断地修正、打补丁（Patchy）的产物，被戏称为“A Patchy Server”（一个补丁服务器）。在这里，因为“A Patchy”与“Apache”是谐音，故最后正式命名为“Apache Server”。
后来由于商业需求的不断扩大，以 Apache HTTP 服务器为中心，启动了更多的与 Apache 项目并行的项目，比如mod_ perl、PHP、Java Apache等等。随着时间的推移、形势的变化，Apache软件基金会的项目列表也不断更新变化中——不断的有新项目启动，项目的中止以及项目的拆分与合并。比如一开始，Jakarta 就是为了发展 JAVA 容器而启动的 Java Apache 项目，后来由于升阳公司（SUN）的建议，项目名称变为 Jakarta 。但当时该项目的管理者也没有想到 Jakarta 项目因为 JAVA 的火爆而发展到如今一个囊括了众多基于 JAVA 语言开源软件子项目的项目。以至后来，不得不把个别项目从 Jakarta 中独立出来，成为 Apache软件基金会的顶级项目，Struts 项目就是其中之一。
最近，为了避免 SCO 与 UNIX 开源社区之间的发生纠纷降临在 Apache 软件基金会（ASF）身上。Apache软件基金会（ASF）里面开始采取一些措施，让众多的项目进行更多协调的、结构化管理，并保护自己的合法利益，避免一些潜在的合乎法律的侵犯（potential legal attacks）。
组织构成
理事会
理事会（Board of Directors）是管理与监督整个Apache软件基金会（ASF）的商务与日常事务，并让它们能符合章程的规定下正常地运作。
项目管理委员会
项目管理委员会（Project Management Committees，简称为PMC），主要负责保证一个或者多个开源社区的活动都能运转良好
项目
* HTTP Server： 可以在UNIX，MS-Windows，Macintosh和Netware操作系统下运行的HTTP服务器的项目
* Ant： 基于 Java 语言的构建工具，类似于 C语言 的Make工具。
* AXIS2： Web服务(SOAP, WSDL)的处理器, 基于AXIS1.X重新构建。
* APR：（也就是：Apache Portable Runtime）C语言实现的便携运行库的管理工具。
* Beehive：为了简单构建 J2EE 应用的对象模型。
* Cocoon：一个基于组件技术和 XML 和 Web 应用开发框架。
* DB：关于数据库管理系统的几个开源项目集合
* Derby：一个纯JAVA的数据库管理系统
* Directory：基于 JAVA 语言的目录服务器，支持 LDAP 等目录访问协议。
* Excalibur：Apache Avalon 项目的前身。
* Forrest：一个发布系统框架的项目。
* Geronimo：J2EE 服务器
* Gump：整合管理器
* Hadoop：并行运算编程工具和分布式文件系统。
* Harmony：一个兼容 JAVA 标准的 JAVA 语言的开源实现。
* HiveMind：一个服务（Services）与配置（configuration）的微内核
* iBATIS：一个基于 JAVA 语言的数据持久化框架
* Incubator：为了帮助那些希望获取Apache软件基金会支持的计划进入Apache软件基金会的审核项目
* Jackrabbit：内容仓库API标准（Content Repository for Java Technology API，即 JSR-170）的一个开源实现项目。
* Jakarta： 在ASF中，基于 Java 语言的一组开源子项目的集合，现在包含的子项目有：BCEL，BSF，Cactus，Commons，ECS，HttpComponents，JCS，JMeter，ORO，Regexp，Slide，Taglibs，Turbine，Velocity
* James：JAVA 语言实现的邮件新闻服务器
* Labs：为基金会成员提供最新变更的思维的计划
* Lenya：内容管理系统
* Logging： 一个开发可以在C++、Java、Perl、PHP、.NET 计算机语言下运行的通用日志工具项目集合。
* Lucene： 高性能的，基于 Java 语言的全文检索项目。
* Maven：项目集成构建工具
* MyFaces： 一个JavaServer Faces（JSF）的实现框架。
* mod_perl：为 Apache 服务器提供 Perl 语言整合的项目
* POI：提供API以供JAVA程式对Microsoft Office格式档案的读/写。
* Portals：与门户（Portal）技术相关的几个项目集合
* Santuario：发展 XML 安全性方面的项目
* Shale：在 Struts 之后，发展起来基于 JAVA 语言Web应用框架
* SpamAssassin：垃圾邮件过滤器
* Struts： 一个基于 J2EE 平台的 MVC 设计模式的Web应用框架
* Tapestry： 另一个 J2EE 平台的、能产生动态、高性能 Web 应用的框架。
* TCL：为 Apache 服务器提供 Tcl 语言整合的项目
* Tomcat： 一个运行 Java Servlet 与 JavaServer Pages（JSP）的容器。
* Web Services：与 Web Services 技术相关的项目集合
* Xalan：XML 转换处理器
* Xerces： 一组可以在Java，C++，Perl 计算机语言下使用的 XML 解析器项目。
* Apache XML：XML 解决方案
* XMLBeans：基于 JAVA 语言XML对象绑定工具
* XML Graphics：发展 XML 与图形进行转换的计划项目
* HADOOP 大型分布式云存储文件系统