印刷する

EMS設定ファイル

config.lua

EMSの主要な設定ファイルです。
このファイルには他の全設定ファイルのパスやファイル名など、サーバーが使用する全ての起動パラメーターが定義されています。設定ファイルの名前を変更したい場合は、ここで変更する事が可能です。
また、config.luaファイル自体もEMS実行ファイルへのコマンドラインパラメーターです。EMSディストリビュー ションに付属する実行スクリプトは、デフォルトでこのファイルを使用します。この実行スクリプトのパスやファイル名を変更することも可能です。

EMS設定ファイルであるconfig.luaは、階層データ構造(keyとvalue)を取っています。Evostreamサーバー実行時のパラメータとして利用されます。書式は以下のようになります。

1. <keyname>= <value>
 value 値は次のいずれかのタイプになります。

  • 文字列(string):一連の英数字。ダブルクオーテーションで囲む必要があります。
    Example:  pushPullPersistenceFile="..\\config\\pushPullSetup.xml",
  • 数値(number):数字
    Example:  streamsExpireTimer=10,
  • 配列(array):値のリスト
    コンマで区切られ、中括弧{}でグループ化されます。各々の値はダブルクオーテーションで囲む必要があります。
    Example:  aliases = {“flvplayback1”, “vod1”, “live”}

2. <keyname>= <object>
 object 値は中括弧{}で囲まれた割り当てのリストになります。

configurations =
{
 daemon = "true",
 pathSeparator = "/",
 logAppenders = {...},
 applications = {...}
}

このファイルの変更後にサーバーが起動に失敗する場合、エラーの可能性があります。変更を元に戻すか、または --use-implicit-console-appender コマンドラインパラメータを実行して起動時の問題に関する追加のデバッグ情報を取得します。

Linuxパッケージ

cd /usr/bin/evostreamms –use-implicit-console-appender /etc/evostreamms/config.lua

Linuxアーカイブ

cd EMS_INSTALL_DIRECTORY
./evostreamms --use-implicit-console-appender ../config/config.lua

Windows

cd EMS_INSTALL_DIRECTORY
evostreamms --use-implicit-console-appender config\config.lua

EMS_INSTALL_DIRECTORYはEvoStream Media Server Archiveディレクトリ下のbinディレクトリです。

  1. "daemon"の値が読み込まれるとサーバーはforkしてdaemonとなるか、コンソールモードで起動し続けます。
  2. "logAppenders"の値が読み込まれるとlog appendersが初期化され実行状態となります。log appenderの設定によってはログが表示されます。
  3. "applications"の値が読み込まれる所まで来るとアプリケーションは完全に機能する状態となり、サーバーはオンラインとなります。

daemon(必須 / Type:Boolean)

※Linuxのみ
trueの場合、daemonモードで起動します。
falseの場合はコンソールモードで起動します(開発時に役立ちます)。

daemon = false,

instancesCount(必須 / Type:Number)

※Linuxのみ
負荷分散が実行されるEMSサーバーの仮想インスタンス数。この項目が無い場合は自動的に"0"が設定され、複数インスタンスは無効化されます。
設定値が"-1"の場合はCPUの数に置き換えられ、1つ以上の追加インスタンスが有効になります。

instancesCount=-1

例)4コアのサーバーを使用する場合

instancesCount=0 : 1 origin + 0 edge
  2593 ?        00:00:00 evostreamms

instancesCount=1 : 1 origin + 0 edge
  2593 ?        00:00:00 evostreamms

instancesCount=2 : 1 origin + 1 edge
  2593 ?        00:00:00 evostreamms
  2607 ?        00:00:00 evostreamms

instancesCount=3 : 1 origin + 2 edges
  2593 ?        00:00:00 evostreamms
  2607 ?        00:00:00 evostreamms
  2608 ?        00:00:00 evostreamms

instancesCount=4 : 1 origin + 3 edges
  2593 ?        00:00:00 evostreamms
  2607 ?        00:00:00 evostreamms
  2608 ?        00:00:00 evostreamms
  2609 ?        00:00:00 evostreamms
instancesCount=-1 : 1 origin + 3 edges
  2593 ?        00:00:00 evostreamms
  2607 ?        00:00:00 evostreamms
  2608 ?        00:00:00 evostreamms
  2609 ?        00:00:00 evostreamms

pathSeparator(必須 / Type:String)

サーバーが(メディアファイルのパスと同様に)パスを構成するのに使用されます。
例)UNIXシステムの場合は"/"、Windowsの場合は"."になります。Luaスクリプトでは"\"はエスケープシーケンスですのでWindowsでこの値を指定する場合は注意が必要です。

pathSeparator="/",

logAppenders(必須 / Type:Object)

log appenderのリストです。ここにリストされるappenderは全て設定時にlogger内にロードされます。全てのログメッセージはこれらのlog appenderに渡されます。ログレベル設定により、appenderがメッセージをログに記録する場合があります。「ロギング(Logging)」とは、「メディア」にメッセージを「保存する」事を意味します(以下の例ではコンソールappenderとファイルが設定されています)。

logAppenders=
 {
  {
   name="console appender",
   type="coloredConsole",
   level=6
  },
  {
   name="file appender",
   type="file",
   level=6,
   fileName="..\\logs\\evostream",
   newLineCharacters="\n",
   fileHistorySize=100,
   fileLength=1024*1024,
   singleLine=true,
   clearLogsOnStart=false
  },
 },

・Log Appenders構成テーブル

KeyType必須説明
nameStringappenderの名前。印刷ルーチン内で使用されます。
typeStringappenderの種類。 console  coloredConsole はコンソールに出力されます。
 coloredConsole はログレベルに応じたカラー付きメッセージです。
fileタイプのlog appenderは指定されたファイルに全てのメッセージを書き出します。
levelNumberログレベル。この値以下のログレベルを持つメッセージはすべて記録され、残りは削除されます。
(ログレベル:0:FATAL,1:ERROR,2:WARNING,3:INFO,4:DEBUG,5:FINE,6:FINEST,-1:ログ無効)
fileNameStringファイルパス(appenderタイプがfileの場合)
newLineCharactersStringfile appenderでの改行コード
fileHistorySizeNumber 保持するログファイルの最大数。この数値を超えると最も古いファイルから削除されます。
fileLengthNumber file appenderのバッファサイズ
singleLineBoolean "yes"の場合、複数行のログメッセージは1行にマージされます。
clearLogsOnStartBoolean "true"の場合、ログファイルの保存先フォルダを調べ、現行の.logファイルを除く全ての"*.log"ファイルを削除します。
※file appenderのみ

注:デーモンモードが"true"に設定されている場合、全てのコンソールappenderは無視されます。

applications

サーバー内の全てのアプリケーションが配置されています。起動時に使用する各アプリケーション属性を保持します。
各アプリケーションには、独自の機能を実行するために必要な特定の属性があります。

以下にアプリケーション内のオブジェクトを示します。

rootDirectory(必須 / Type:String)

アプリケーションサブフォルダを含むフォルダ。
パスが"/"または""で始まる場合(OSによって異なります)、絶対パスとして扱われます。
それ以外の場合はランタイムディレクトリ(サーバーを起動した場所)からの相対パスとして扱われます。

Windows

rootDirectory=".\\",

Linux

rootDirectory="./",
appDir(必須 / Type:String)

"rootDirectory"と組み合わせて、絶対パス以外のデフォルトのベースディレクトリを作成します。

Windows

appDir=".\\",

Linux

appDir="./",

注:相対パスを使用する場合、アプリケーションディレクトリの場所に注意してください。ファイルを置き忘れてしまう可能性があります。

name(Type:String)

サーバー名(会社名、組織名など)

name="evostreamms",
description(Type:String)

"name"の詳細情報

description="EVOSTREAM MEDIA SERVER",
default(必須 / Type:Boolean)

デフォルトアプリケーションを選択

default=true,
pushPullPersistenceFile(必須 / Type:String)

pushPull設定ファイルのパス

pushPullPersistenceFile="..\\config\\pushPullSetup.xml",
authPersistenceFile(必須 / Type:String)

認証ファイルのパス

authPersistenceFile="..\\config\\auth.xml",
connectionsLimitPersistenceFile(必須 / Type:String)

接続数制限ファイルのパス

connectionsLimitPersistenceFile="..\\config\\connlimits.xml",
bandwidthLimitPersistenceFile(必須 / Type:String)

帯域幅制限ファイルのパス

bandwidthLimitPersistenceFile="..\\config\\bandwidthlimits.xml",
ingestPointsPersistenceFile(必須 / Type:String)

インジェストポイントファイルのパス

ingestPointsPersistenceFile="..\\config\\ingestpoints.xml",
streamsExpireTimer(必須 / Type:Number)

タイムアウトするまでにEMSが接続ストリームからのオーディオ/ビデオデータを待機する秒数

streamsExpireTimer=10,
rtcpDetectionInterval(必須 / Type:Number)

RTSPセッション時にEMSがRTCPストリームを受信せずに待機する秒数

rtcpDetectionInterval=15,
hasStreamAliases(必須 / Type:Boolean)

ストリーム名のエイリアスを有効/無効

hasStreamAliases=false,

関連リンク:
addStreamAlias

hasIngestPoints(必須 / Type:Boolean)

インジェストポイントの設定

hasIngestPoints=false,

関連リンク:
createIngestPoint

validateHandshake(必須 / Type:Boolean)

RTMP検証ハンドシェイクのない古いFlashプレーヤーの場合、"false"に設定します。

validateHandshake=false,
aliases(必須 / Type:Array)

エイリアスが追加可能なストリームの拡張子

aliases={"er", "live", "vod"},
maxRtmpOutBuffer(必須 / Type:String)

EMSが出力RTMPバッファに使用する最大バイト数

maxRtmpOutBuffer=512*1024,
maxRtspOutBuffer(必須 / Type:String)

EMSが出力RTSPバッファに使用する最大バイト数。最終トランスポートがTCP上のRTPである場合にのみRTSPに使用されます。

maxRtspOutBuffer=512*1024,
hlsVersion(必須 / Type:Number)

使用するHLSのバージョン。HLSファイルを使用する場合、バージョンを事前に確認する必要があります。

hlsVersion=6,

HLS version 3から6までサポート済です。詳しくはこちら

useSourcePts(必須 / Type:Boolean)

"true"の場合、アウトバウンドストリームはソースストリームのPTSを使用します。
それ以外の場合、プッシュストリームは"0"から始まります。

useSourcePts=false,
enableCheckBandwidth(必須 / Type:Boolean)

"true"の場合、bandwidth.xlmを読み込みます。

enableCheckBandwidth=true,

関連リンク:
bandwidths.xml

vodRedirectRtmpIp(Type:String)

EMSがソースVODファイルを取得できる他のサーバーのIPです。
例えば、ローカルサーバーがvideo1ファイルを検索する場合、検索が失敗すると構成の詳細がvodRedirectRtmpIpパラメーターに設定されます。
有効な値がある場合、ローカルサーバーはvideo1のサーバーに対してpullStreamリクエストを行い(vodRedirectRtmpIP値)、そこで得られた新たなストリームを使用して最初のクライエントからのリクエストを処理します。

vodRedirectRtmpIp="",

注:これはmediaFolderのみにアクセスします。
VODファイルがmediaFolder内にあるか、そうでない場合はソースの検索がループしている事を確認してください。

forceRtmpDatarate(必須 / Type:Boolean)

特定の要件を満たす為に、videoおよびaudioデータレートをハードコードします。

forceRtmpDatarate=false,
sendRtspRangeHeaders(必須 / Type:Boolean)

axisカメラに必要な設定項目です。

sendRtspRangeHeaders=false,
serverNameStreamPrefix(Type:String)

ストリーム名の接頭辞として付加するサーバー名

serverNameStreamPrefix="",
runWebServer(必須 / Type:Boolean)

起動時にEMS Web Serverを有効にします。

runWebServer=true,
runWebUI(必須 / Type:Boolean)

起動時にEMS Web UIを有効にします。

runWebUI=true,
mediaStorage(必須 / Type:Object)

メディアストレージ設定

logAppenders=
mediaStorage = {
 recordedStreamsStorage="../media",
 {
  description="Default media storage",
  mediaFolder="../media",
 },
},

mediaフォルダには以下の用途があります。
・pullStreamに使用されるVODファイルの保管場所
・generateLazyPullコマンドを使用して作成されたファイルの保管場所
・recordコマンドで録画したストリームの保管場所

・メディア構成テーブル

KeyType必須説明
recordedStreamsStorageStringストリームの録画で使用するmediaフォルダへのパス
descriptionString メディアストレージの詳細情報
mediafolderStringメディアストレージフォルダのパス

・その他のオプションパラメータ

KeyType必須説明
metaFolderString 生成されたシークファイルとメタファイルのフォルダーパス
enableStatsBoolean EMSが各VODファイルの統計ファイル、シークファイル、メタファイルを作成する場所。
このフォルダへの書き込み権限が必要です。
clientSideBufferNumber "true"の場合、EMSは再生された各VODファイルに関する統計を記録します。
統計情報はmetaFolderに保存されているメディアファイルと同じ名前の.statsファイルに保存され、アクセス数と配信されたバイト数が含まれます。
keyframeSeekBoolean RTMPクライアントのVOD再生実行時にEMSがコンテンツをバッファする秒数
seekGranularityNumber "true"の場合、シークはキーフレームでのみで行われます。
"false"の場合、フレーム間パケットでシークが発生する可能性があり、キーフレームに到達するまでクライアントプレーヤー上でノイズが表示される可能性があります。
externalSeekGeneratorBoolean mediaFolder内でシークにかける秒数を遵守するかどうか

関連リンク:
APIガイド/addStorage

acceptors(必須 / Type:Object)

「acceptors」ブロックは、設定ファイル「evostreamms」の「applications」セクション内にあります。
アプリケーションで使用する各accpetorプロトコルはここで定義されています。プロトコルによっては追加パラメータが必要な場合があります。

-- CLI acceptors
 {
  ip="0.0.0.0",
  port=1112,
  protocol="inboundJsonCli",
  useLengthPadding=true
 },
 {
  ip="0.0.0.0",
  port=7777,
  protocol="inboundHttpJsonCli"
 },
 {
  ip="0.0.0.0",
  port=9999,
  protocol="inboundHttpFmp4" 
 },
 {
  ip="0.0.0.0",
  port=1222,
  protocol="inboundAsciiCli",
  useLengthPadding=true
 },
-- RTMP and clustering
 {
  ip="0.0.0.0",
  port=1935,
  protocol="inboundRtmp",
 },
 {
  ip="127.0.0.1",
  port=1936,
  protocol="inboundRtmp",
  clustering=true
 },
 {
  ip="127.0.0.1",
  port=1113,
  protocol="inboundBinVariant",
  clustering=true
 },
-- RTSP
 {
  ip="0.0.0.0",
  port=5544,
  protocol="inboundRtsp",
  --[[
  multicast=
  {
   ip="224.2.1.39",
   ttl=127,
  }
  ]]--
 },
-- LiveFLV ingest
 {
  ip="0.0.0.0",
  port=6666,
  protocol="inboundLiveFlv",
  waitForMetadata=true,
 },
-- Inbound TCP TS
 {
  ip="0.0.0.0",
  port=9998,
  localStreamName="testTcp",
  protocol="inboundTcpTs",
 },
-- Inbound UDP TS
 {
  ip="0.0.0.0",
  port=9898,
  localStreamName="testUdp",
  protocol="inboundUdpTs",
 },
--RTMPS
 {
  ip="0.0.0.0",
  port=4443,
  protocol="inboundRtmp",
  sslKey="/path/to/some/key",
  sslCert="/path/to/some/cert",
 },
-- JSONMETA
 {
  ip="0.0.0.0",
  port=8100,
  --streamname="test",
  protocol="inboundJsonMeta",
 },
-- WebSockets JSON Metadata
 {
  ip="0.0.0.0",
  port=8210,
  protocol="wsJsonMeta",
  -- streamname="~0~0~0~"
 },
-- WebSockets JSON Metadata over SSL
 {
  ip="0.0.0.0",
  port=8433,
  protocol="wssJsonMeta",
  -- streamname="~0~0~0~"
  sslKey="/path/to/some/key",
  sslCert="/path/to/some/cert",
 },
-- WebSockets FMP4 Fetch
 {
  ip="0.0.0.0",
  port=8410,
  protocol="inboundWSFMP4"
 },
-- WebSockets over SSL FMP4 Fetch
 --[[
 {
  ip="0.0.0.0",
  port=8420,
  protocol="inboundWSSFMP4",
  sslKey="/path/to/some/key",
  sslCert="/path/to/some/cert",
 },

・Acceptor構成テーブル

KeyType必須説明
ipStringサービスが提供されるIP
"0.0.0.0"の場合は全てのインターフェースにおける全てのIPを意味します。
portStringサービスが受け付けるポート番号
protocolString"ip:port"の組み合わせで処理されるプロトコルスタック

・EMSでサポートされるacceptorタイプ

Acceptorプロトコル一般的なIP一般的なポート追加パラメータプロトコルスタック(タグ)
inboundJsonCli127.0.0.11112useLengthPaddingTCP+IJSONCLI
inboundHttpJsonCli127.0.0.17777-TCP+IHTT+H4C+IJSONCLI
inboundAsciiCli127.0.0.11222useLengthPaddingTCP+IASCCLI
inboundRtmp0.0.0.01935-TCP+IR
inboundRtmp127.0.0.11936clustering 
inboundBinVariant127.0.0.11113clusteringTCP+BVAR
inboundRtsp0.0.0.05544multicastTCP+RTSP
inboundLiveFlv0.0.0.06666waitForMetadataTCP+ILFL
inboundTcpTs0.0.0.09998localStreamNameTCP+ITS
inboundUdpTs0.0.0.09898localStreamNameUDP+ITS
inboundRtmps0.0.0.04443sslKey, sslCertTCP+ISSL+IRS
inboundJsonMeta0.0.0.08100streamname 
wsJsonMeta0.0.0.08210streamname 
wssJsonMeta0.0.0.08433streamname, sslKey, sslCert 
inboundWSFMP40.0.0.08410- 
inboundWSSFMP40.0.0.08420sslKey, sslCert 

・プロトコルグループテーブル

プロトコルグループタグプロトコルタイプ
Carrier ProtocolsTCPTCP
UDPUDP
Variant ProtocolsBVARBin Variant
XVARXML Variant
JVARJSON Variant
RTMP ProtocolsIRInbound RTMP
IRSInbound RTMPS
OROutbound RTMP
RSRTMP Dissector
Encryption ProtocolsRERTMPE
ISSLInbound SSL
OSSLOutbound SSL
MPEG-TS ProtocolITSInbound TS
HTTP ProtocolsIHTTInbound HTTP
IHTT2Inbound HTTP2
IH4RInbound HTTP for RTMP
OHTTOutbound HTTP
OHTT2Outbound HTTP2
OH4ROutbound HTTP for RTMP
CLI ProtocolsIJSONCLIInbound JSON CLI
H4CHTTP for CLI
IASCCLIInbound ASCII CLI
RPC ProtocolsIRPCInbound RPC
ORPCOutbound RPC
Passthrough ProtocolPTPassthrough
deviceStreams(Type:Object)
deviceStreams=
{
 {
  name="camera01",
  video=
  {
   type="v4l2",
   path="/dev/video0",
  },
  audio=
  {
   type="v4l2",
   path="/dev/video1",
  },
 },
},

・deviceStreams構成テーブル

KeyType必須説明
nameString 
video - typeString 
video - pathString 
audio - typeString 
audio - pathString 
autoDASH/HLS/HDS/MSS(Type:Object)

有効の場合、インジェストストリームから自動的にHTTPストリームを生成します。

autoDASH=
 {
  targetFolder="path/to/evo-webroot",
 },
autoHLS=
 {
  targetFolder="path/to/evo-webroot",
 },
autoHDS=
 {
  targetFolder="path/to/evo-webroot",
 },
autoMSS=
 {
  targetFolder="path/to/evo-webroot",
 },

APIに関連付けられている他のパラメータを追加する事ができます。
パラメータリストについてはcreateDASHStream,createHLSStream,createHDSStream,createMSSStreamを参照してください。
ただし、上記のauto使用時は、以下のパラメータについては変更できません。

パラメータ
keepAlivefalse
cleanupDestinationtrue
createMasterPlaylistfalse
overwriteDestinationtrue
playlistTyperolling
authentication(Type:Object)

RTMPおよびRTSPプロトコルの認証設定。RTMPの場合は、認証を有効にする為に auth.xml ファイルも必要です。
また、通常は users.lua ファイルにユーザ名・パスワードが記述されています。

authentication=
 {
  rtmp=
  {
  type="adobe",
  encoderAgents=
  {
   "FMLE/3.0 (compatible; FMSc/1.0)",
   "Wirecast/FM 1.0 (compatible; FMSc/1.0)",
   "EvoStream Media Server (www.evostream.com)"
  },
  usersFile="path/to/config/users.lua",
  --verifierUri="http://authserver/verifier.php",
  --token="secretstring",
  },
  rtsp=
  {
  usersFile="path/to/config/users.lua",
  --authenticatePlay=false,
  }
  --ws=
  --{
  --	token="",
  --},
 },

・Authentication構成テーブル

1. RTMP

KeyType必須説明
typeString"adobe"
encoderAgentsString使用するエンコーダエージェント
usersFileStringusers.lua設定ファイルのパス
verifierUriString 使用する検証ファイルのパス
tokenString トークンベースの認証に使用されるトークン。
トークンはシークレット文字列、リクエストされたストリーム名、UNIXタイムをハッシュする事による計算値です。
秘密の文字列は設定のものと一致する必要があります。

RTMP URIトークンフォーマット
rtmp://hostname/streamName?e=ValidUntilUnixTime&h=Token
Token = MD5 (SecretString + "/" + StreamName + "?e=" + ValidUntilUnixTime)

Sample: rtmp://127.0.0.1/live/bunny?e=1508895239&h=3C23875455CACF2D44C3608C146D7C87

2. RTSP

KeyType必須説明
usersFileStringusers.lua設定ファイルのパス
authenticatePlayboolean 有効の場合、プレーヤーは全てのストリームリクエストでパスワードを要求します。

3. WEBSOCKET

KeyType必須説明
tokenStringトークンベースの認証に使用されるトークン。
トークンはシークレット文字列、リクエストされたストリーム名、UNIXタイムをハッシュする事による計算値です。
秘密の文字列は設定のものと一致する必要があります。

Token = MD5 (SecretString + "/" + StreamName + "?e=" + ValidUntilUnixTime)

トークン認証
EMSはトークン認証を含む再生リクエストを受け入れます。リクエストされたストリームを配信する前に、EMSはタイムスタンプが将来の日時である事を検証し、再生リクエストのタイムスタンプと秘密文字列を使用してMD5ハッシュ値を再計算した後、そのハッシュ値が再生リクエストからの値と一致するか検証します。
検証ステップが失敗するとEMSはリクエストされたストリームを配信しません。全ての検証手順が成功すると、EMSはリクエストされたストリームをプレーヤーに配信します。

eventLogger(Type:Object)

サーバー全体のイベントsink設定。
詳しくはAPIガイド/イベントの概要をご確認ください。

1. ファイル
このセクションはデフォルトでは無効に設定されています。イベントリストに更にイベントを追加する事ができます。
イベントログファイルは、EMSログの保存パスに保存されます。

イベントリストについてはこちらをご確認ください。

eventLogger=
 {
  --customData=123,
  sinks=
  {
   --[=[
   {
    type="file",
    --[[
    customData=
    {
     some="string",
     number=123.456,
     array={1, 2.345, "Hello world", true, nil}
    },
    ]]--
    filename="C:\\EvoStream\\logs\\events.txt",
    format="text",
    --format="xml",
    --format="json",
    --format="w3c",
    --[[
    timestamp=true,
    appendTimestamp=true,
    appendInstance=true,
    fileChunkLength=43200, -- 12 hours (in seconds)
    fileChunkTime="18:00:00",
    ]]--
    enabledEvents=
    {-- common events enabled by default for eventLogger type "file":
     "inStreamCreated",
     "outStreamCreated",
     -- NOTE: add more events by copying items from the sorted list of VALID EVENTS below
    },
   },

・ファイルSink構成テーブル

プロトコルパラメータ必須説明
customDataObject sinkによって生成された全てのイベントに追記されるカスタムデータ。上位レベルで定義されたカスタムデータnodeを上書きします。
より複雑な階層構造を持つこともできます。
typeStringsinkタイプ"file"
filenameStringファイルのベースネーム
formatStringファイル形式。
text,xml,json,w3c
timestampBoolean "true"の場合、ログファイルのファイル名にタイムスタンプが追加されます
appendTimestampBoolean タイムスタンプの追加オプション。"true"の場合、作成された全てのログファイルにタイムスタンプ(YYYYMMDD_HHmmSS)が追加されます。"false"の場合は連続番号が追加されます。
デフォルトは"true"です。
appendInstanceBoolean 各ログファイルの後にランダムな4桁のインスタンスIDを追加します。
デフォルトは"false"です。
fileChunkLengthNumber 新規ファイルを作成する秒数
fileChunkTimeString ログファイルをチャンク化する時間指定(HH:MM:SS形式)。
注:fileChunkLengthとfileChunkTimeの両方が存在する場合はファイルチャンクされません。
enabledEventsObject ログ記録されているイベント。設定していない場合、全てのイベントがログに記録されます。
W3Cではストリームに関連しないイベントは無視されます。

2. RPC:Evo Web Services
本セクションはデフォルトでは有効に設定されています。使用するEvo Web Services (Node.jsもしくはPHP)に合わせてURLを編集してください。
詳しくはEvo Web Servicesユーザーガイドをご確認ください。
これらはEMS Web Servicesによって使用されるイベントです。この構成に変更を加える必要はありません。

{
 type="RPC",
 url="http://127.0.0.1:4000/evowebservices",
 serializerType="JSON",
 enabledEvents=
 {-- common events enabled by default for eventLogger type "RPC":
  "inStreamCreated",
  "inStreamClosed",
  "outStreamCreated",
  "outStreamClosed",
  "timerTriggered",
  "hdsMasterPlaylistUpdated",
  "hdsChildPlaylistUpdated",
  "hdsChunkClosed",
  "hdsChunkDeleted",
  "hlsMasterPlaylistUpdated",
  "hlsChunkClosed",
  "hlsChunkDeleted",
  "dashPlaylistUpdated",
  "dashChunkClosed",
  "dashChunkDeleted",
 },
},

3. RPC:WebUI
これらはEMS Web UIによって使用されるイベントです。この構成を変更する必要はありません。

{
 type="RPC",
 url="http://127.0.0.1:4100/streams/update-list",
 serializerType="JSON",
 enabledEvents=
 {-- common events enabled by default for eventLogger type "RPC":
  "inStreamCreated",
  "inStreamClosed",
  "outStreamCreated",
  "outStreamClosed",
  "processStarted",
  "processStopped",
  "recordChunkCreated",
  "recordChunkClosed",
  "webRtcServiceStarted",
  "webRtcServiceStopped",
 },
}
transcoder(必須 / Type:Object)

applicationセクション内にEvoStreamトランスコーダーの設定があります。
デフォルト設定のままで通常問題ありませんが、状況によっては調整が必要になる場合があります。

transcoder = {
 scriptPath="..\\emsTranscoder.bat",
 srcUriPrefix="rtsp://localhost:5544/",
 dstUriPrefix="-f flv tcp://localhost:6666/"
},

 srcUriPrefix はEMSからストリームを取得する方法をトランスコーダに指示します。
 dstUriPrefix はストリームをEMSにプッシュバックする方法をトランスコーダに指示します。
これら2つの値で使用されるポートは各々のアクティブなacceptorsと一致する必要があります。デフォルト値はRTSPが5544、LiveFLVが6666です。

・Transcoder構成テーブル

KeyType必須説明
scriptPathStringトランスコーダー用ヘルパースクリプトのパス。
トランスコードAPI関数はバイナリを直接呼び出すのではなくこのスクリプトを呼び出します。カスタムトランスコーダを使用する場合はバイナリを置き換えることができます。
srcUriPrefixString transcode API関数使用時はソースストリームとして localStreamName を指定できます。これは、その localStreamName の先頭に追加されるプレフィックスです。
例えば srcUriPrefix="rtsp://localhost:5544" でストリーム名"test1"がトランスコードコマンドに指定されている場合、URIは rtsp://localhost:5544/test1" となります。
dstUriPrefixString srcUriPrefix の逆です。トランスコードコマンドでdestinationとして localStreamName が指定されている場合、指定したプレフィックスがストリーム名に追加され出力されます。
mp4BinPath(必須 / Type:String)

mp4 writer実行ファイルのパス

mp4BinPath="..\\evo-mp4writer.exe",
webRTC(必須 / Type:Object)

webRTCのセキュリティ設定

webrtc = {
 sslKey="..\\config\\server.key",
 sslCert="..\\config\\server.cert",
},

・webRTC構成テーブル

KeyType必須説明
sslKeyStringSSLキーのパス
sslCertStringSSL証明書のパス
drm(HLSバージョン5使用時は必須 / Type:Object)

DRMセクションには、アクティブにする必要がある全てのDRMの設定があります。
このセクションはデフォルトではコメントアウトされています。従ってDRMを有効化する前にこのコメントを外す必要があります。

drm={
 type="verimatrix",
 requestTimer=1,
 reserveKeys=10,
 reserveIds=10,
 -- urlPrefix="http://server1.evostream1.com:12684/CAB/keyfile"
 urlPrefix="http://vcas3multicas1.verimatrix.com:12684/CAB/keyfile"
},

・DRM構成テーブル

KeyType必須説明
typeString使用するDRMの種類
"verimatrix":HLSでVerimatrix DRMを有効化
"evo":HLSでAES暗号化を有効化
"none":DRM無効。これは設定ファイルのこのセクションをコメントアウトする事と同じです。
requestTimerNumber
("type = verimatrix"時)
キーリクエストタイマーの秒数。EMSは起動直後からタイマー秒数毎にVerimatrixキーサーバーにキーリクエストを行います。
デフォルト値は"1",最小値は"1",最大値はなし(最小値より下に設定されている場合、最小値が適用されます)
reserveKeysNumber
("type = verimatrix"時)
IDごとにバッファされたキーの数。
デフォルト値は"10",最小値は"5",最大値はなし(最小値より下に設定されている場合、最小値が適用されます)
reserveIdsNumber
("type = verimatrix"時)
アクティブIDに加えキーバッファに充当する予約IDの数。
デフォルト値は"10",最小値は"5",最大値はなし(最小値より下に設定されている場合、最小値が適用されます)
urlPrefixString
("type = verimatrix"時)
Verimatrix VCASキーサーバーの場所