印刷する

各種操作

ランタイムAPIへのアクセス

EMS Web UIの他にtelnetやHTTPリクエストを使用してEMSに接続することが可能です。

手動コマンドライン

Windows OSでの事前準備
Windows OSからTelnetを有効にする必要があります。[コントロールパネル>プログラム>Windowsの機能の有効化と無効化]の順に選択し、「Telnet Client」にチェックを入れて有効化してください。

また、Windows OSではtelnetのlocal echoならびにnew lineの設定を変更する必要があります。
telnetが起動している場合は、  ctrl+] を入力してtelnetセッションを一旦終了します。
その後、以下のコマンドを入力してください。

set localecho
set crlf

Windowsのtelnetセッションへ戻るにはEnterキーまたはReturnキーを押してください。

ASCII CLI

ASCIIベースのインターフェースは、多くのユーザーが最初に使用するインターフェースです。telnetアプリケーション(全てのオペレーティングシステムで利用可能)もしくは一般的なスクリプト言語から簡単にアクセスが可能です。

config.luaの設定

{
 ip="0.0.0.0",
 port=1222,
 protocol="inboundAsciiCli",
 useLengthPadding=true
},

telnetインターフェース経由でAPIにアクセスするには、EMSが実行されているのと同じコンピューターでtelnetアプリケーションを起動する必要があります。

コマンドプロンプトからtelnetをopen

telnet localhost 1222

telnetセッションが確立されたら、サーバーにコマンドを送りすぐに実行させることができます。
telnetセッションからのコマンドリクエストと返り値の例は以下のようになります。

コマンドリクエスト

version

レスポンス

Command entered successfully!
Version

    banner: EvoStream Media Server (www.evostream.com) version 1.7.1 build 4491
with hash: 64b305253110afc4acd5aeaf87f0a0b0f9b53526 on branch: origin/release/1.
7.0.1 - PacMan|m| - (built for Windows-8.1-x86_64 on 2016-06-17T09:33:23.000)
    buildDate: 2016-06-17T09:33:23.000
    buildNumber: 4491
    codeName: PacMan|m|
    releaseNumber: 1.7.1
ASCII JSON CLI

同じTelnetインターフェース経由でport 1112を使用してAPIにアクセスすると、JSON形式にフォーマットされた返り値となります。
これはEMS APIに対するCGI及びBASHスクリプトを作成するのに非常に便利です。
JSONレスポンスによって返される最初の文字はJSON payloadのLENGTHで、ランタイムで適切なサイズの構造体を割り当てることができます。

config.luaの設定

{
 ip="0.0.0.0",
 port=1112,
 protocol="inboundJsonCli",
 useLengthPadding=true
},

コマンドプロンプトからtelnetをopen

telnet localhost 1112

telnetセッションからのコマンドリクエストと返り値の例は以下のようになります。

コマンドリクエスト

version

レスポンス

{"data":{"banner":"EvoStream Media Server (www.evostream.com) version 1.7.1 build 4491 with hash:64b305253110afc4acd5aeaf87f0a0b0f9b53526 on branch: origin\/release\/1.7.0.1 - PacMan|m| - (built for Windows-8.1-x86_64 on 2016-06-17T09:33:23.000)","branchName":"origin\/release\/1.7.0.1","buildDate":"2016-06-17T09:33:23.000","buildNumber":"4491","codeName":"PacMan|m|","hash":"64b305253110afc4acd5aeaf87f0a0b0f9b53526","releaseNumber":"1.7.1"},"description":"Version","status":"SUCCESS"}

HTTP JSON CLI

HTTPインターフェース経由でAPIにアクセスするには、任意のブラウザを使用してサーバー上でHTTPリクエストおこないます。
デフォルトで使用するポートは7777です。ポート番号は設定ファイル(config.lua)で変更可能です。

config.luaの設定

{
 ip="0.0.0.0",
 port=7777,
 protocol="inboundHttpJsonCli"
},

一般的なHTTP形式のリクエストは以下のようになります。

http://[EMS_IP]:7777/[API]

HTTPセッションからのコマンドリクエストと返り値の例は以下のようになります。

コマンドリクエスト

http://localhost:7777/version

レスポンス

{"data":{"banner":"EvoStream Media Server (www.evostream.com) version 1.7.1 build 4491 with hash:64b305253110afc4acd5aeaf87f0a0b0f9b53526 on branch: origin\/release\/1.7.0.1 - PacMan|m| - (built for Windows-8.1-x86_64 on 2016-06-17T09:33:23.000)","branchName":"origin\/release\/1.7.0.1","buildDate":"2016-06-17T09:33:23.000","buildNumber":"4491","codeName":"PacMan|m|","hash":"64b305253110afc4acd5aeaf87f0a0b0f9b53526","releaseNumber":"1.7.1"},"description":"Version","status":"SUCCESS"}
複数のパラメータを使用する

全てのAPI機能はHTTP経由で利用できますが、パラメータが含まれている場合は使用するパラメータをbase64形式にする必要があります。

http://[EMS_IP]:7777/[API]?params=([base64_encoded_parameters])

パラメータをbase64形式に変換する

 pullstream コマンドでの例

pullStream uri=rtsp://localhost:5544/vod/mp4.bunny.mp4 localStreamName=bunny keepAlive=1 forceTcp=1

1. パラメータ付きコマンドを入力

uri=rtsp://localhost:5544/vod/mp4.bunny.mp4 localStreamName=bunny keepAlive=1 forceTcp=1

2. base64エンコーダーを使用してパラメーターを変換

変換されたパラメータ

dXJpPXJ0c3A6Ly9sb2NhbGhvc3Q6NTU0NC92b2QvbXA0LmJ1bm55Lm1wNCBsb2NhbFN0cmVhbU5hbWU9YnVubnkga2VlcEFsaXZlPTEgZm9yY2VUY3A9MQ==

3. これをHTTPフォーマットでリクエストする場合は以下のようになります。

http://localhost:7777/pullstream?params= dXJpPXJ0c3A6Ly9sb2NhbGhvc3Q6NTU0NC92b2QvbXA0LmJ1bm55Lm1wNCBsb2NhbFN0cmVhbU5hbWU9YnVubnkga2VlcEFsaXZlPTEgZm9yY2VUY3A9MQ==

Base64
バイナリーデータをradix–64形式に変換してASCII文字列フォーマットで表現するバイナリーテキストエンコード方式のひとつです。
base64エンコードはオンラインにあるエンコーダを使用することもできます。

PHPとJavaScript
PHP及びJavaScript関数の使用も可能です。これらの関数はHTTPインターフェース呼び出しをwrapしたものでEMS Web UIディレクトリにあります。

APIのセキュリティ
ASCII APIはデフォルトで保護されており、外部コンピューターからのアクセスは禁止されています。
config.lua設定ファイルを編集してこれを変更することも出来ますが、サーバーセキュリティを維持する観点からもこの制限を守る事が推奨されます。

HTTPベースのAPIもデフォルトでローカルからのアクセスのみに制限されています。しかしHTTP APIを外部アクセス許可する事で便利なケースもあります。この場合、HTTP APIを保護するにはEWSでプロキシ認証を有効にする必要があります。これによりAPIコール毎にユーザ認証が必要となるため、EMS APIへのアクセスは認証されたアクセスのみとすることができます。