网络流媒体应用速查手册
软件世界
流媒体技术是近来兴起的网络在线媒体播放技术,它使得人们利用宽带网络进行在线点播音/视频节目成为可能。本文将向你讲述流媒体基础知识、制作与编辑流媒体文件、建立与发布流媒体资源。让你全面掌握这一流行的新兴网络技术。
一、流媒体应用基础
1.什么是流媒体
流媒体是指采用流式传输的方式在网络上播放的媒体格式,如音频、视频等多媒体文件。流媒体在播放以前并不下载整个多媒体文件,它只是将开始的部分内容存储到系统缓冲区,计算机即可对接收到的数据进行播放。
流媒体的传输速率用bps表示,即位速率,也称为码率或比特率。网络带宽越大,可实时接收的流媒体的码率越高,质量也越好。流媒体文件的码率是在压缩编码时设定的。
2.常见的流媒体传输协议
(1)RTSP协议
RTSP(Real time Streaming Protocol,即时串流通讯协议)是由Real Networks和Netscape公司共同提出的。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP(Real time Transport Protocol)和RTCP(Real time Transport Control Protocol)之上。它使用TCP或RTP完成数据传输。HTTP与RTSP相比。HTTP主要用于传送HTML,而RTP用于传送多媒体数据。HTTP请求由客户机发出,服务器做出响应;RTSP请求由客户机和服务器同时发出,即RTSP可以是双向的。
(2)MMS协议
MMS(Microsoft Media Server Protocol,Microsoft多媒体服务协议)协议是微软定义的一种流媒体传输协议,用来访问并流式接收Windows Media服务器中ASF文件的一种协议。MMS协议用于访问Windows Media发布点上的单播内容,是连接Windows Media单播服务的默认方法。如果用户在Windows Media Player播放器中键入一个URL地址以连接内容,而不是通过超级链接访问内容,则它们必须使用MMS协议引用该流。
(3)RTP协议
RTP(Real time Transport Protocol,实时传输协议)协议是用于Internet针对多媒体数据流的一种传输协议。RTP被定义为在一对一,或一对多的传输情况下工作,其目的是提供时间信息和实现流同步,通俗地讲也就是网络上的Web服务器。
3.流媒体播放方式
(1)单播
在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余势必造成服务器沉重的负担,响应需要很长时间,甚至停止播放。
(2)组播
IP组播技术构建一种具有组播能力的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机,减少网络上传输的信息包的总量。网络利用效率大大提高,成本下降。
(3)点播与广播
点播连接是客户端与服务器之间的主动连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽。
广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。 使用单播发送时,需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会浪费网络带宽。组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的客户,保证了网络上多媒体应用占用网络的最小带宽。
二、流媒体的文件格式
流媒体目前分为3个阵营:微软的Windows Media、Real Networks的Real Media,以及Apple的QuickTime。3个阵营泾渭分明,各自有一套播放软件,互不买账。除了Real Networks的RealOne Player能支持其他两种格式外,微软和Apple则坚持死守自己的阵地。这就使得我们常常陷入了在一个系统中安装三个播放软件的尴尬境地。
1.微软高级流格式
微软公司的Windows Media的核心是ASF(Advanced Stream Format)。微软将ASF定义为同步媒体的统一容器文件格式。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。
ASF最大优点就是体积小,因此适合网络传输,使用微软公司的媒体播放器(Windows Media Player)可以直接播放该格式的文件。用户可以将图形、声音和动画数据组合成一个ASF格式的文件,当然也可以将其他格式的视频和音频转换为ASF格式,而且用户还可以通过声卡和视频捕获卡将诸如麦克风、录像机等外设的数据保存为ASF格式。另外,ASF格式的视频中可以带有命令代码,用户指定在到达视频或音频的某个时间后触发某个事件或操作。
该类文件的扩展名一般为ASF、WMA、WMV等,其播放工具为Windows Media Player。
2.RealSystem的RealMedia文件格式
Real Networks公司的RealMedia包括RealAudio、RealVideo和RealFlash文件,其中RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输不间断的视频数据,RealFlash则是Real Networks公司与Macromedia公司新近联合推出的一种高压缩比的动画格式。RealMedia文件格式的引入,使得RealSystem可以通过各种网络传送高质量的多媒体内容。第三方开发者可以通过Real Networks公司提供的SDK将它们的媒体格式转换成RealMedia文件格式。
该类文件的扩展名一般为RA、RM、RMVB等,其播放工具为RealPlayer或RealOne Player。
3.QuickTime电影(Movie)文件格式
Apple公司的QuickTime电影文件现已成为是数字媒体领域的工业标准。QuickTime电影文件格式定义了存储数字媒体内容的标准方法,使用这种文件格式不仅可以存储单个的媒体内容(如视频帧或音频采样),而且能保存对该媒体作品的完整描述;QuickTime文件格式被设计用来适应为与数字化媒体一同工作需要存储的各种数据。因为这种文件格式能用来描述几乎所有的媒体结构,所以它是应用程序间(不管运行平台如何)交换数据的理想格式。
该类文件的扩展名一般为MOV,其播放工具为QuickTime Player。
三、制作与编辑流媒体
流媒体文件可由其他格式的音视频文件转换得来,也可以直接从音视频设备(声卡、摄像头、电视卡、摄像机)中采集而来。对于要转换成流媒体格式的媒体文件,最好事先将文件编辑好,这样可节省在流媒体编码上所耗费的时间。
1.制作编辑Windows Media流媒体文件
Windows Media Encoder 9.0是微软官方的Windows Media编码软件,用于制作编辑Windows Media流媒体文件。
Windows Media Encoder 9.0能够导入进行转换的文件格式包括WMA、WMV、ASF、AVI、WAV、MPG、MP3、BMP及JPG等音频、视频、图像文件,其中MPG需要系统中有MPEG-2插件的支持。
(1)编码设置
运行Windows Media Encoder 9.0,会打开“新建会话”对话框,如果此时需要将其他媒体格式转换成Windows Media格式应选择“文件转换”选项,然后单击“确定”按钮,接着在“文件选择”对话框中选择源文件,并设置输出文件的路径和文件名。如果是采集音视频设备中的音视频则选择“捕获音频或视频”选项。单击“下一步”按钮。
在“内容分发”对话框中设置视频的分发方式。作为流媒体服务器发送使用的Windows Media文件请选择“Windows Media服务器(流式处理)”选项。单击“下一步”按钮。
在“编码选项”对话框中选择视频、音频均为“多比特率视/音频CBR(固定码率)”方式,并在“比特率”列表中根据目标用户的不同带宽选择几种不同的比特率,如同时选中764Kbps、548Kbps、340Kbps,这样客户端在接收时会根据本地的网络带宽自动选择合适的比特率。如果网络环境比较单纯,如局域网,可以只使用一种比特率。使用多比特率方式进行编码会耗时较长,最终的文件也会比较大,因为它实际上相当于几个不同比特率的WMV/WMA文件合在一起。单击“下一步”按钮。
在“显示信息”对话框中设置需要显示的作者信息。单击“下一步”按钮。
在“设置检查”对话框中选中“在完成后开始转换”选项,单击“完成”按钮即可进入主界面开始转换编码。如下图所示。
(2)属性设置
会话向导中的编辑设置选项比较简单,很多情况下并不符合应用的需要,你可在主界面中单击“属性”按钮,然后在打开的“会话属性”对话框中进一步完善设置。
单击“压缩”选项卡,单击“编辑”按钮,在打开的对话框中选择“常规”选项卡,在这里可以设置音频格式、视频大小、帧率、码率等参数。
此外,你还可以在“会话属性”对话框中单击“处理”选项卡,对隔行视频进行“取消隔行扫描”处理,以消除动态画面中可能产生的毛刺现象。
2.制作编辑Real流媒体文件
Helix Producer Plus 9.0是官方的Real Media 9.0编码软件,用于制作编辑RM流媒体文件。它支持VBR(Variable Bit Rate,可变码率)编码方式,编码速度要优于其他流媒体编码软件。
Helix Producer Pro 9.0可导入的文件种类非常丰富,包括MOV、MPEG-1、AVI、WAV、MP3等常用媒体文件。
(1)导入源文件
运行Helix Producer Pro 9.0,在主界面左边的“Input files”(导入文件)框中键入源文件的完整路径,你也可以单击“Browse”(浏览)按钮,在打开的对话框中浏览源文件所在的位置并将其导入。与Windows Media Encoder 9.0相同,Helix Producer Pro 9.0也可以对音/视频设备中的影像进行捕获。
(2)参数设置
在编码前你还需要进行必要的参数设置。单击主界面中的“Audiences”(观众设置)按钮,在打开的对话框中的“Audio Mode”(音频模式)下拉列表中通常选择“Music”(音乐);在“Video Mode” (视频模式)下拉列表中有5个选项,分别适用于不同场景的影片,如影片中有大量的运动场影(如体育片、动作片),可选择“Sharpest Image”(高清晰图像),一般情况下可使用默认的“Normal Motion Video”(标准运动视频)即可;“Video Codec(视频编码器)”下拉列表中可选择“RealVideo 9”或“RealVideo 8”选项。
在“Audio Mode”下拉列表的右侧的“2-pass Video Encoding”(2通视频编码),默认是选中的,它表示编码将分两个步骤进行,其中第一次是对视频进行分析,然后将分析的结果用于第二次的实际编码,2-Pass可以提高编码的精确度,改善画面的品质,同时也会增加编码的时间。“Resize Video to”(调整视频大小为)选项用来改变输出视频文件画面的尺寸,可在后面的宽、高框中进行具体设置。
在该对话框的下半部分成左右两栏,其中,左边是可供使用的预设模板,右边则是实际使用的模板,你可以同时使用多个模板,预设的模板都是根据不同速率的网络配置好的。Helix Producer 9.0支持多重码率。不过RMVB文件只支持单速率,因此如果要输出为RMVB,则在右边栏中只能使用一种模板,其他的应全部删除掉。然后到左边栏中选择需要的模板,并单击两栏之间的箭头按钮将其添加到右边栏中。
如果你对预设的模板不满意,你还可自定义模板,可单击“Edit Audiences in Job”(编辑观众设置)按钮,然后在出现的“Audiences Properties”(观众道具)对话框中修改码率、帧率(FPS)及音频Codec(编码器)等参数。
(3)视频过滤
上面的设置完成后回到主界面,单击“Video Filters”(视频过滤器)按钮,会打开相应的对话框。其中的“Cropping”(修剪)选项组用于对画面进行裁剪;“Black Level Correction”(黑级别修正)选项用于修正画面的亮度和对比度的,一般情况下可以选中;“Deinterlace/Inverse telecine”(取消交错/反转电视电影)选项组用于消除隔行扫描及处理电影电视反转,直接使用默认的“Automatic”(自动)选项;“Video noise reduction”(视频杂点减少)用于消除视频中的噪点,如果源文件质量不错可以不选择,如果选中级别为“High”(高),会降低画面的清晰度与锐利度。
全部设置完成后,单击主界面中的“Encode”(编码)按钮即可开始编码。
3.制作编辑QuickTime流媒体文件
QuickTime Player 6.3既是QuickTime流媒体的播放软件也是编码软件。其编码步骤如下:
(1)导入源文件
运行QuickTime Player 6.3,单击“File(文件)→Import(输入)”菜单命令,然后在出现的对话框中浏览至导入文件所在的位置,QuickTime Player可直接导入AVI、MOV、MPEG-1文件,如果想导入MPEG-2或VOB文件,需要安装MPEG-2播放插件。
(2)设置及输出
导入的视频文件会在一个新的播放器窗口中打开,在该窗口中单击“File(文件)→Export(输出)”菜单命令,会打开“Save exported file as”(输出文件另存为)对话框,在该对话框中的“Export”(输出)列表中选择“Movie to QuickTime Movie”(QuickTime影片)选项,当然,也可选择将它输出为MPEG-4(MP4)、AVI、FLC等格式的文件。
单击“Options”(选项)按钮,打开“Movie Settings”(影片设置)对话框,在对话框的“Video”(视频)选项组中单击“Settings”(设置)按钮,在打开的对话框中进行“Compression Settings(压缩设置)”,首先在最上方的下拉列表中选择压缩方式为“MPEG-4 Video”,“Quality(质量)”为“Best(最好)”,最后在设置好帧率、关键帧间隔、码率等参数,需要注意的是关键帧间隔最多为10秒钟时间,也就是如果帧率为24fps,关键帧间隔可为240帧。
视频部分可进行“Filter(滤镜)”设置,为MOV视频加入模糊、亮度、锐化等效果,单击“Size”(尺寸)按钮可设置视频文件的尺寸。
音频部分可使用默认的MPEG-4 Audio,它使用AAC作为其音频部分的编码。如果要进行修改可选定“Movie Settings”对话框中的“Sound”选项(声音),然后单击“Sound”栏中的“Setting”设置按钮,在打开的“Sound Settings”(声音设置)对话框中设置采样频率等参数。
设置完成后回到“Save exported file as”对话框中,将MOV文件命名后单击“保存”按钮,即可输出MOV视频。
另外QuickTime Player 还可使用其他第三方QuickTime Codec(编码解码器)来进行编码,如Sorenson Video Pro 3.1。
四、建立流媒体服务器
1.配置Windows Server 2003流媒体服务器
Windows Server 2003内置了Windows Media Services 9.0流媒体服务器组件,可轻松搭建基于Windows Server 2003的Windows Media 9.0流媒体服务器。新的流媒体服务器能支持MMS、HTTP、RTSP三种传输协议,并能使用MP3文件作为节目源。
(1)安装流媒体服务
Windows Media Services可在安装Windows Server 2003系统时选择安装,如果没有安装,也可以系统安装完成安装配置Windows Media Services 9.0。
在“控制面板”中选择“添加或删除程序”,在打开的“添加或删除程序”对话框中单击“添加/删除Windows组件”按钮,然后在“Windows组件向导”对话框中选定组件列表中的“Windows Media Services”选项,单击“详细信息”按钮,并在打开的对话框中选定全部组件:“Windows Media Services”、“Windows Media Services管理单元”、“多播和广告日志记录代理”、“用于Web的Windows Media Services管理”(如果选定了最后二项还需要同时安装IIS 6.0,并启动ASP服务)。单击“确定”按钮回到“Windows组件向导”对话框,单击“下一步”按钮即可开始安装流媒体服务组件。
(2)配置Windows Media Services
在开始传输内容之前,还必须对 Windows Media Services 服务器进行设置,添加并配置发布点,然后设置内容。
从“开始→程序→管理工具”中选择“Windows Media Services”菜单项,即可启动“Windows Media Services”配置程序,在左边栏中依次展开“11-DSW(服务器名)→发布点”选项,右键单击“发布点”,选择“添加发布点(高级)”命令,会打开“添加发布点”对话框。
在“发布点类型”选项组中有“广播”和“点播”两种。在点播方式下每个客户端都享有一个服务器连接,并能够对流媒体节目进行开始、停止、暂停、倒带和快进等控制;广播则类似于观看电视节目,客户端不能控制播放,广播也有两种方式,即单播广播和多播广播,前者每个客户端都与服务器建立一个连接,而多播下服务器会将内容交付到网络上的 D 类IP地址,网络上的任何客户端都能接收它,可大大降低网络带宽的消耗,但要实现多播广播,服务器和客户端之间的网络路由器和交换器必须配置为传输 D类IP地址并解释多播信息包。
在“添加发布点”对话框中为发布点命名,并单击“浏览”按钮指定内容(ASF、WMA、WMV、MP3、JPG文件)所在的位置,单击“确定”按钮回到“Windows Media Services”对话框,即可看到“发布点”下已经增加了一个新的发布点,最后右键单击新的发布点,选择“启动”命令,即可启动流媒体发送服务。
(3)接收播放流媒体
在客户端,你可以通过Windows Media Player来接收流媒体节目,在Windows Media Player中单击“文件→打开URL”菜单命令,并依据“mms://服务器地址/发布点名(或流媒体文件名)”的格式键入流媒体的地址即可,也可在IE浏览器的地址栏中键入地址,系统会自动调用Windows Media Player来播放。
如果使用向导方式来新建发布点还可创建ASX公告文件、WSX播放列表文件及带有内嵌播放器的网页。
2.安装与配置Real Media流媒体服务器
Real Media流媒体服务器软件是Helix Universal Server,它支持微软的MMS协议,并可发送WMV、MOV、MPEG-1/4节目流。Helix Universal Server在Real Networks的官方网站提供了功能完整的30天试用评估版,及可使用1年的功能受限制的Basic版下载。在下载软件时必须先在其网站进行注册,并提供正确的电子邮箱地址,因为软件试用的注册文件将以附件的形式通过电子邮件发送过来。
为了方便介绍,这里使用的是Helix Universal Server汉化版(汉化包下载地址:http://www.liumeiti.net/technology/Annie/helix_cn/3.htm)。
(1)软件安装
运行软件的安装文件,单击“Next”按钮,接下来的对话框中要求指定“License File(注册文件)”的位置,单击“Browse”按钮并浏览到注册文件所在的位置,并将其导入,接下来一路单击“Next”按钮即可完成。
其中,安装程序会要求你设置管理员用户账号及密码,后续步骤中还会要求设定PNA连接所使用的端口,可使用默认的7070,RTSP使用默认的554,HTTP在不与已有的服务发生冲突时可使用80,如果80端口已经占用则可改成8080,MMS协议及管理员监控端口均可使用默认值。最后选定“Install Helix Servers as an NT Service”选项,这样在系统启动时,Helix Servers会作为NT的服务而自动运行。
软件安装好后,将汉化包解压缩至“\Real\Helix Server”安装目录下,覆盖原来的Helix Administrator文件夹即可完成汉化。
(2)配置管理服务器
Helix Universal Server的配置使用的是Web方式,双击“Helix Server Administrator”图标,会启动IE浏览器,并弹出用户验证对话框,在输入用户名及密码后即可进行服务器配置页面。
在通常情况下,服务器大部分项目可使用默认设置,以下参数是需要关注的。
连接控制:选择“服务器设置”下的子菜单“连接控制”,在这里根据网络的带宽和服务器的性能设置“最大用户连接数”,如果将“仅提供RealPlayer Plus连接”设为“ON”,可以防止客户端用第三方软件进行下载,但客户端只能使用RealPlayer Plus版本收看而不能使用Basic版。“最大带宽”默认设置为“0”(对带宽没有任何限制),如果进行设置,可限制流媒体服务所使用的最大带宽,从而可为同一服务器的其他服务腾出足够的网络带宽。
配置加载点:加载点的含义与Windows Media Services 9.0中的发布点类似,不过位于加载点的所有Helix Servers能支持的媒体文件都可以被发送出去,并且无需另外启动激活。默认加载点为“\Real\Helix Server\Content”,可在“基本路径(Base Path)”框中修改加载点的位置,如“D:\VOD”,则将“VOD”文件夹作为加载点,只需将媒体文件复制到“D:\VOD”文件夹即可。
你也可以添加新加载点,单击“新增加载点”按钮以添加一个加载点,并在“加载点”处为加载点作标记,每一个加载点都由斜线“/”作为开始和结束的标志,如标记为“/1/”。在设置好基本路径后单击“应用”按钮,在服务器重启后新增加载点即可工作。
Helix Universal Server的其他设置参数还有很多,可实现广播、服务器监控、IP绑定、用户认证、IP限制等功能。以上各项用户均可以采用默认设置。限于篇幅这里就不作介绍。
(3)Real流媒体接收、播放
在客户端可使用RealOne Player 或RealPlayer来接收播放RM及RMVB流媒体,你只需单击“文件→打开”菜单命令,并在打开的对话框中按照“rtsp://服务器IP:554/加载点标记/流媒体文件名”格式键入流媒体的地址,其中端口部分“:554”可以省略,如键入地址“rtsp://218.76.217.217/1/炮制女朋友.rm”,单击“确定”按钮即可收看。
如果是接收WMV和ASF流媒体,播放器可换成Windows Media Player,协议换成MMS,端口换成1755(可省略),其他部分则完全相同。
3.安装与配置QuickTime流媒体服务器
Darwin Streaming Server是Apple的流媒体服务器平台,它有针对不同操作系统的多种版本,支持Windows NT/2000平台的版本可从Apple的网站(http://www.apple.com)免费下载。
(1)软件准备
安装Darwin Streaming Server服务器,除了服务器软件Darwin Streaming Server外,还需要Perl解释器的支持,你可以选择ActivePerl V5.8.0 For Windows(下载地址: http://www.skycn.com/soft/1211.html)。
(2)软件安装
首先,你应该安装Perl解释器。由于Darwin Streaming Sever是用Perl作为内部运行的解释器,所以在安装服务器之前应先安装Perl解释器,双击下载得来的ActivePerl安装文件,执行程序的安装,安装过程中只需要一路单击“Next”按钮即可。
接下来,安装Darwin Streaming Server 4.1.3。单击下载的自解压文件,将文件解压缩,其默认的路径是“C:\DarwinStreamingServer”文件夹。然后在“DarwinStreamingServer”文件夹中运行“Install.bat”文件,出现“Enter DSS Administrator Username:”(输入管理员姓名)提示,按要求输入用户名,并在“Enter DSS Administrator Password:”(输入管理员密码)后输入密码,最后出现“Setup Complete!”(安装成功)的提示即表明安装成功。
(3)配置
在配置QuickTime流服务器之前首先要启动Streaming Admin Server服务。在安装文件夹(一般为“C:\DarwinStreamingServer”)中双击Streamingadminserver.pl文件,会出来一个空的DOS窗口,服务即可启动。进行下面的步骤时不要关闭这个窗口。
运行IE浏览器,在地址栏中键入“http://127.0.0.1:1220”,出现服务器登录界面,按照前面的设置输入用户名和密码,单击“Log In”(登录)按钮进行登录。接下来程序会询问是否修改密码,可直接单击“Next”按钮,然后会显示流媒体文件存放路径的设置,可使用默认的“C:\Program Files\Darwin Streaming Server\Movies”路径,最后设置传输端口,可使用默认的80端口,这样可透过某些防火墙进行传输。完成后进入服务器管理页面。
Darwin Streaming Server的管理页面非常简单,单击“General Settings”(常规设置)按钮即可修改流媒体文件存放路径及最大连接数、最大带宽、管理员密码等参数。在“Port Settings”(端口设置)页面中可进行服务端口设置。
(4)接收播放QuickTime流媒体
接收播放QuickTime流媒体可使用QuickTime Player,也可使用RealOne Player。在QuickTime Player中单击“File→Open URL in New Play(打开新的URL地址)”菜单命令,并在打开的对话框中按照“rtsp://服务器地址/流媒体文件名”格式输入流媒体的地址,如:“rtsp://218.76.218.236/sample_300kbit.mov”,其中218.76.218.236是服务器的IP地址,sample_300kbit.mov是放在“C:\Program Files\Darwin Streaming Server\Movies”下的QuickTime流媒体文件名。输入地址后单击“OK”按钮,即可在新出现的窗口中接收播放QuickTime流媒体。
