Windows Server > 動画ストリーミング配信環境の設置 


# 動画ストリーミング環境の設置

## 環境：
Server : Windows Server 2012
クライアント：Windows7

## 背景
Windows Server環境にて高価な投資なしでストリーミングビデオ再生環境を作ります。

※ストリーミングはSilverLightで動作します。

## IISの設定

MicrosoftのダウンロードセンターからIIS Media serviceを入手してインストールする。
[Download IIS Media Services 4.1 (64 ビット) from Official Microsoft Download Center](https://www.microsoft.com/ja-jp/download/details.aspx?id=27955)


iis.netのサイトでSmooth Streaming Playerをダウンロード。
http://go.microsoft.com/?linkid=9752687

このファイルは自己解凍形式。解凍して出来る２つのファイルが肝心。

* SmoothStreamingPlayer.html
* SmoothStreamingPlayer.xap


これら２つのファイルをC:\inetpub\wwwroot\にTestという名称のフォルダをつくって、そこにコピー。
以上でテストができる環境が出来上がる。
ブラウザーで下記URLにアクセスしてみる。（wwwrootを公開しているURL）

http://サーバー名/test/




## ストリーム用ファイルの作成ソフトのダウンロード


以下のリンク先からmicrosoft expression webを取得する

日本語版はDetailsタブに隠れているので注意
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/6b990486-fca4-6f2e-507c-3be7f17aced4.png' width='300px' />

* microsoft expression web
[Download Microsoft Expression Web 4](https://www.microsoft.com/en-us/download/details.aspx?id=36179)


![image](https://qiita-image-store.s3.amazonaws.com/0/49910/be9168b8-1562-9130-d158-2a55f3f7b8c4.png)


* SP1
[Download Microsoft Expression Web 4 Service Pack 1](https://www.microsoft.com/en-us/download/details.aspx?id=36179)

* SP2
[Download Microsoft Expression Web 4 Service Pack 2](https://www.microsoft.com/ja-JP/download/confirmation.aspx?id=26699)


2018/5/30追記 以下はリンク切れ
* 日本語版　[Microsoft Expression](https://www.microsoft.com/expression/jpn/)



## ストリーム用ファイルの作成

Expression Encorderを使ってストリーム用のファイルを作成する。

### 実際の操作

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/0e086a11-641d-e2d6-ec9c-5af33625447b.png)

### 開始
プロジェクトの開始→トランスコードプロジェクトを選択

インポートで映像ファイルを読み込む。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/38bd0d19-afac-6f03-3de0-dfdc5721f7f0.png)

### 形式の選択
右端のペインから、エンコード→出力形式→IISのスムーズストリーミング　を選択

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/21c8aecc-a9b7-e7ee-4ecf-63c60f568bd0.png)

### フレームレートの選択

上側のプリセットから、Silverlight用エンコード→IISのスムーズストリーミング→　HD1080p を選択し右クリック→選択アイテムに適用をクリックする。

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/0c67041e-490d-62b5-67b0-2d95c4ba4410.png)

これを行うことで、ビデオタブに表示されるフレームレートの種類が増減する。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/6a232d28-9071-6be9-2147-115400595cea.png)

プリセットで選べるフレームレートはHD1080p6Mbpsが最高だが、直接値を操作して画質を上げることも可能である。

＋タブをクリックすることでフレームレートタブが１つ増える。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/6ae7141d-78b4-f3fb-d702-2428c89375f1.png)

増えたタブのビットレートを直接変更する。（値を入力するか、値のバーをドラッグする。）
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/027ef1c3-8864-83ad-5efe-a9c7c1b9484d.png)

※幅と高さも変更するのを忘れずに


### 画質の選択

エンコード品質→最良　を選択する。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/105e6d36-6507-9d61-1b65-b1c8a27b2eaa.png)

画質とスピードのトレードオフでバランスや最速を選んでもよいが、
昨今のブロードバンド環境を考えると最良でもよいと思われる。
が、正直このプロパティがどこに効いているのかよくわからない。


### 出力フォルダ
出力タブにて出力フォルダを選択する。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/39bd44c8-3469-f485-2ca2-2fee7cda3f97.png)

### エンコード
エンコードボタンを押すと必用なファイル一式が作成されます。

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/d118a40f-0465-cd02-b593-ae0e88de25fb.png)


![image](https://qiita-image-store.s3.amazonaws.com/0/49910/fc0e5fb9-9693-7591-22d5-664a85006b19.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/88cecc2b-6a11-7b09-6074-544dcc62eb33.png)



### エンコード完了

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/01c13a26-9849-5bf2-f949-ff8bc312c88f.png)

### 公開


1. 先のSmoothStreamingPlayer.htmlをリネームする。
SmoothStreamingPlayer.html→index.html
（他のファイル名がよければ任意のファイル名にする。index.htmlである必用は無い）

2. エンコードが完了したファイル群をサーバーに配置する。
例）/movie
以下のようになる。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/49c99b82-9ef0-2df6-dad2-4eeefebfc21b.png)

3. index.htmlを編集する。
以下のパラメーターValue部のmediaurlを実際のURLに変更する。
```
<param name="InitParams" 
value="selectedcaptionstream=textstream_eng,mediaurl=http://
```

4. サーバーからアクセスする。
ストリーミングが始まれば成功



          
mediaurlを変更する。

```javascript

        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
		  <param name="source" value="SmoothStreamingPlayer.xap"/>
		  <param name="onError" value="onSilverlightError" />
		  <param name="background" value="white" />
		  <param name="minRuntimeVersion" value="4.0.50401.0" />
		  <param name="autoUpgrade" value="true" />
          <param name="InitParams"
          
 ↓のmediaurlを変更する。 
value="selectedcaptionstream=textstream_eng,mediaurl=http://streams.smooth.vertigo.com/elephantsdream/videoname.ism/manifest" />
		  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
 			  <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
		  </a>
	    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>

```




## 参考

[Smooth Streaming : The Official Microsoft IIS Site](https://www.iis.net/downloads/microsoft/smooth-streaming)
[Smooth Streaming Deployment Guide | Microsoft Docs](https://docs.microsoft.com/en-us/iis/media/smooth-streaming/smooth-streaming-deployment-guide)
[Experience IIS Smooth Streaming : The Official Microsoft IIS Site](https://www.iis.net/media/experiencesmoothstreaming)
[Smooth Streaming Technical Overview | Microsoft Docs](https://docs.microsoft.com/en-us/iis/media/on-demand-smooth-streaming/smooth-streaming-technical-overview)


[Windows８でIIS Media serviceを使ってストリーミング配信サーバーをつくる - でじたるのもり](http://digitalnomori.hatenablog.jp/entry/2014/03/18/192750)

[AzureMediaServicesSamples/Silverlight\-Player\-for\-PlayReady\-with\-Token\-Auth: This repository holds a Silverlight player that could play back PlayReady encrypted content with Token Authz](https://github.com/AzureMediaServicesSamples/Silverlight-Player-for-PlayReady-with-Token-Auth)