2015年12月13日日曜日

【Microsoft Azure】Azure Media Services の配信をサイトに埋め込む

Azure Media Services(以下AMS)は、簡単に言うと動画配信プラットフォームです。
オンデマンドやストリーミングを手軽にできます。
https://azure.microsoft.com/ja-jp/services/media-services/

AMSの設定などはいろんな方が書いてる?ようですので、
実際にハマったプレイヤーをHTMLに埋め込むところを説明してみようと思います。

HTML5で見ることができる Azure Media Player(以下AMP)は、タグを埋め込むだけで設置完了です。
こんな感じですね。


<!DOCTYPE html>
<html>
<head>
<link href="//amp.azure.net/libs/amp/latest/skins/amp-default/azuremediaplayer.min.css" rel="stylesheet"></link>
<script src="//amp.azure.net/libs/amp/latest/azuremediaplayer.min.js"></script>
</head>
<body>
<video id="vid1" class="azuremediaplayer amp-default-skin" autoplay controls width="640" height="400"
 data-setup='{ "logo": { "enabled": false }, "nativeControlsForTouch": false, "techOrder": ["azureHtml5JS","html5","silverlightSS","flashSS"]}'>
<source src="ストリーミング開始時に発行されたURL" type="application/vnd.ms-sstr+xml"></source>
<div class="amp-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video
</div>
</video>
</body>
</html>


詳しいドキュメントはこちらです。
https://amp.azure.net/libs/amp/latest/docs/

クライアントごとの対応は基本的にはJSで行われるのですが、今回実際に問題が発生した箇所があったので、簡単な回避策を。

問題点:"azureHtml5JS"(DASH)でのストリーミング配信がiPadだけで見れない
原因:おそらくiPadだけDASHのコードがうまく動かない。なおiPhoneはOK
対応:iPadだけtechOrderを出力しない(そうすると"html5"が優先になる)

HTMLを分けるのが一番早いので、例えばPHPなら以下のようにtechOrderの出力を分岐します。


<!DOCTYPE html>
<html>
<head>
<link href="//amp.azure.net/libs/amp/latest/skins/amp-default/azuremediaplayer.min.css" rel="stylesheet"></link>
<script src="//amp.azure.net/libs/amp/latest/azuremediaplayer.min.js"></script>
</head>
<body>
<video id="vid1" class="azuremediaplayer amp-default-skin" autoplay controls width="640" height="400"
 data-setup='{ "logo": { "enabled": false }, "nativeControlsForTouch": false, "
<?php
$ua = mb_strtolower($_SERVER['HTTP_USER_AGENT’]);
if (strpos($us, ‘iPad’) === false) {
  echo ‘,"techOrder":["azureHtml5JS”,”html5","silverlightSS","flashSS”]’;
}
?>
}'>
<source src="ストリーミング開始時に発行されたURL" type="application/vnd.ms-sstr+xml"></source>
<div class="amp-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video
</div>
</video>
</body>
</html>



他のクライアントでも同様に対応できるのではないかと思います。


2015年12月6日日曜日

【Microsoft Azure】Azure Security Center がプレビューになったので設定した

Azure Security Center(以下Security Center)は、利用しているAzureリソースのセキュリティの脅威を通知、可視化して解決するためのサービスといったところでしょうか。
詳しくは以下の2つのリンクをどうぞ。

Azure Security Center now available
https://azure.microsoft.com/en-us/blog/azure-security-center-now-available/?mkt_tok=3RkMMJWWfF9wsRoiv6nJeu%2FhmjTEU5z16u8sWKe0g4kz2EFye%2BLIHETpodcMTcFlNb3GRw8FHZNpywVWM8TILdUXt9JsLgzhAGk%3D

Security Center
https://azure.microsoft.com/ja-jp/services/security-center/

先ごろ更新されたポータルから利用することができますので、簡単な手順を説明します。

まず、メニューから「Security Center」を選択します。


選択すると、Security Center が表示されます。
ここで脅威やアラートをグラフや一覧で見ることができます。
最初にSecurity Centerにアクセスすると、有効にするために以下の画面になります。

有効になると、こうなります。
右上の赤い円が、対応したほうが良い脅威を表しています。
赤はHighレベルのアラートです。

「Recommendations」(右上の円)をクリックすると、一覧が表示されます。
初回は、仮想マシンなどの情報を収集するためのストレージなどの設定がされていないため、まずはこれを対応してみます。

「Enable data collection」をクリックします。
サブスクリプションを選択します。

データ収集の設定を保存して終了します。
「Collect data from virtual machines」をOnにしてストレージを選択すればOKです。

設定が終わると、以下のように表示が変わります。
オレンジ色の円は、Mediumの脅威があることを示しています。

視覚的に確認しながら対応できるのは大変便利だと思いますので、ぜひ使ってみてフィードバックしてみましょう。




















今更ながら、IoTの話をしよう

IoTが何なのかあらゆるところで語られているし、そもそもの概念が今更って感じなのですが、今年は特に大きく変化したと思われるので敢えて話してみようか。

そもそも、「Internet of Things」を「モノのインターネット」と訳したことが惜しい。
これは「あらゆるモノ・コトがインターネットにつながる」ことを上手に表現できてない。

人間に例えて図示してみるとこうなる。

1.情報を捉えて(センサー)
2. 情報をクラウドに伝達して(インターネット)
3. 情報を処理して(クラウド+機械学習)
4. その情報を元に次のアクションをオーダーして
5. 実行する

…というのが簡単な説明。

ここで、それぞれをマッピングするとこうなる。

1.入力センサー(情報家電は内部でこれらを内包してると考えられる)
Arduino、RaspberryPi、mbedなどと繋がったセンサー群

2.ネットワーク接続できるもの(現在では主に無線)
Wi-Fi、BluetoothLEなどのネットワークに接続できて、情報をクラウドへ送ることができる

3.クラウド+機械学習など
MicrosoftAzure、AmazonAWSなどの大量の情報を受け取り、大量に解析、処理を行う

4と5.処理結果に基づくアクションとその実行
発注処理とかリコメンド、動作の変更、故障箇所の処理など

以前IPv6を推進する意見の中に、すべてのデバイスをインターネットに繋げるためにはIPv4では足りない(当たり前だが)というものがあったが、そこからは一歩先に進んでいる。

現状気になることは、各ベンダーが「総合的かつ一元的」にIoTサービスを提供しようとしている流れである。
メリットは、すべてがプログラマブルであるが故、共通の開発環境、開発言語ですべてに対応できるところだろう。
デメリットは(ここが重要だが)、本来別々のものであるそれぞれのコンポーネントを、自由に選択し実装できる部分が少ないように見えることだ。

近いうちに、.NETを使わないAzure IoTについて解説しようと思うけれども、選択の自由がエンハンスの一歩じゃないかと思うのだ。