Live Smooth Streaming的那些事儿

在MIX 09发布了IIS Media Services 3.0 Beta

这是一个IIS的扩展包,其集成了Bit Rate Throttling,Live Smooth Streaming等等组件

其中Live Smooth Streaming用于支持视频的平滑播放/直播

其是微软在总结了2008年NBC北京奥运会以及民主党全国会议(美国)直播等大规模应用的基础上

应对不同带宽的用户,都能流畅的看上网络视频而推出的

安装IIS Media Services 3.0 Beta的方式是先安装Microsoft Web Platform

Smooth_01

其安装后将启动去获取最新版本的Web相关软件,选择安装IIS Media Service 3.0 Beta

Smooth_02

这样你的IIS就已经支持了平滑流媒体播放了

实现自适应性流媒体的播放的过程如下

创建Smooth Streaming Video

创建Smooth Streaming Video需要使用注册好了的Microsoft Expression Encoder 2 SP1

(试用版本将没有自适应流媒体的选项)

1.启动Encoder后,选择文件->导入…(快捷键是CTRL+I)来导入视频

Smooth_03

2.在右边的编码那个选项卡中选择视频为自适应流媒体处理,并选择输出模式为IIS平滑流式处理如下

Smooth_04

3.设置输出目录,我采用了默认的

Smooth_06

4.点击左下角的编码按钮开始进行视频格式转换

Smooth_05

这是一个非常漫长的过程,可能需要几个小时

编码完成后,将生成不同码率的自适应视频文件如下所示

Smooth_07

生成的文件说明如下:

.ismv文件:包含了视频和音频的文件,事实上是一个MP4文件。不同的码率是单独一个文件

                如上图,共生成了四种码率是视频文件350Kbps, 600Kbps, 1050Kbps, 1450Kbps

                当然也可以改变预设的码率以及增加希望生成的码率,如下增加一个码率为280Kbps的

                Smooth_19

.ism文件:服务器解析文件,用于描述在硬盘上的不同码率文件之间的关系,事实上是一个xml描述文件,只能IIS Smooth Streaming Server访问

   1: <?xml version="1.0" encoding="utf-16"?>
   2: <!--Created with Expression Encoder version 2.1.1216.0-->
   3: <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
   4:   <head>
   5:     <meta
   6:       name="clientManifestRelativePath"
   7:       content="1.ismc" />
   8:   </head>
   9:   <body>
  10:     <switch>
  11:       <video
  12:         src="1_1450000.ismv"
  13:         systemBitrate="1450000">
  14:         <param
  15:           name="trackID"
  16:           value="2"
  17:           valuetype="data" />
  18:       </video>
  19:       <video
  20:         src="1_1050000.ismv"
  21:         systemBitrate="1050000">
  22:         <param
  23:           name="trackID"
  24:           value="2"
  25:           valuetype="data" />
  26:       </video>
  27:       <video
  28:         src="1_600000.ismv"
  29:         systemBitrate="600000">
  30:         <param
  31:           name="trackID"
  32:           value="2"
  33:           valuetype="data" />
  34:       </video>
  35:       <video
  36:         src="1_350000.ismv"
  37:         systemBitrate="350000">
  38:         <param
  39:           name="trackID"
  40:           value="2"
  41:           valuetype="data" />
  42:       </video>
  43:       <audio
  44:         src="1_1450000.ismv"
  45:         systemBitrate="64000">
  46:         <param
  47:           name="trackID"
  48:           value="1"
  49:           valuetype="data" />
  50:       </audio>
  51:     </switch>
  52:   </body>
  53: </smil>

.ismc文件:客户端解析文件,其也是一个xml文件,是第一个创送给客户端用来决定下面下载哪个码率的视频的解释性文件

               其内容包括描述可用的码率的视频,采用什么解码器,视频分辨率等等。由于这个描述文件很大,其代码我在这里就不贴了

               感兴趣的大家可以使用Encoder自己试试

 

为了我们演示方便,我将直接使用微软提供的工具包来演示

下载Encoder Simulator and Sample Client Starter Kit

并解压其到任意一个目录

Smooth_08

这个文件生成的文件如下

Smooth_09

可以看出这是一个可以部署网站了

将其部署到IIS上如下

Smooth_10

Live Smooth Streaming Publishing Point

为了能支持Smooth Streaming,你需要添加一个Publishing Point如下

1.选择Live Smooth Streaming Publishing Point并双击,点击右边的Add…来添加一个Publishing Point

Smooth_11 Smooth_12

2.选取生成的.isml文件名并设置其参数如下(Estimated duration暂时无用,随便设置就可以了,但是Live source type请设置成Push Encoder)

Smooth_13

3.启动这个Publishing point

Smooth_14

4.拷贝之前用Encoder转换后的视频文件.ismv以及配置文件.ism、.ismc到和SampleLiveClient.xap一个目录

下面我们需要做的就是将这段视频发布出去

可以通过如下代码来建立发布点

32位系统

pushencoder32 <url-of-publishingpoint> <ism-file>

64位系统

pushencoder64 <url-of-publishingpoint> <ism-file>
在我的机器上的运行是这样的
Smooth_15

启动Smooth Streaming

1.修改和SampleLiveClient.xap一个目录的default.html文件中的属性mediaSource="LiveSmooth.isml/Manifest"

2.输入http://ServerName/Smooth/default.html来启动程序

Smooth_16

调整了最大下载码率后

Smooth_17

Smooth_18

我上面采用手动的方式来调整最大下载速度来模拟不同网络的带宽

也就是说Silverlight播放器将自动的根据你的带宽去下载不同码率的视频来播放,也就是自适应流媒体播放了


作者:ibillguo
出处:http://ibillguo.cnblogs.com/
本文版权由作者和博客园共同所有,转载请注明出处

你可能感兴趣的:(Stream)