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
値は中括弧{}で囲まれた割り当てのリストになります。
{
daemon = "true",
pathSeparator = "/",
logAppenders = {...},
applications = {...}
}
このファイルの変更後にサーバーが起動に失敗する場合、エラーの可能性があります。変更を元に戻すか、または --use-implicit-console-appender
コマンドラインパラメータを実行して起動時の問題に関する追加のデバッグ情報を取得します。
Linuxパッケージ
Linuxアーカイブ
./evostreamms --use-implicit-console-appender ../config/config.lua
Windows
evostreamms --use-implicit-console-appender config\config.lua
EMS_INSTALL_DIRECTORYはEvoStream Media Server Archiveディレクトリ下のbinディレクトリです。
- "daemon"の値が読み込まれるとサーバーはforkしてdaemonとなるか、コンソールモードで起動し続けます。
- "logAppenders"の値が読み込まれるとlog appendersが初期化され実行状態となります。log appenderの設定によってはログが表示されます。
- "applications"の値が読み込まれる所まで来るとアプリケーションは完全に機能する状態となり、サーバーはオンラインとなります。
daemon(必須 / Type:Boolean)
※Linuxのみ
trueの場合、daemonモードで起動します。
falseの場合はコンソールモードで起動します(開発時に役立ちます)。
instancesCount(必須 / Type:Number)
※Linuxのみ
負荷分散が実行されるEMSサーバーの仮想インスタンス数。この項目が無い場合は自動的に"0"が設定され、複数インスタンスは無効化されます。
設定値が"-1"の場合はCPUの数に置き換えられ、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でこの値を指定する場合は注意が必要です。
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構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
name | String | ○ | appenderの名前。印刷ルーチン内で使用されます。 |
type | String | ○ | appenderの種類。 console や coloredConsole はコンソールに出力されます。 coloredConsole はログレベルに応じたカラー付きメッセージです。fileタイプのlog appenderは指定されたファイルに全てのメッセージを書き出します。 |
level | Number | ○ | ログレベル。この値以下のログレベルを持つメッセージはすべて記録され、残りは削除されます。 (ログレベル:0:FATAL,1:ERROR,2:WARNING,3:INFO,4:DEBUG,5:FINE,6:FINEST,-1:ログ無効) |
fileName | String | ○ | ファイルパス(appenderタイプがfileの場合) |
newLineCharacters | String | ○ | file appenderでの改行コード |
fileHistorySize | Number | 保持するログファイルの最大数。この数値を超えると最も古いファイルから削除されます。 | |
fileLength | Number | file appenderのバッファサイズ | |
singleLine | Boolean | "yes"の場合、複数行のログメッセージは1行にマージされます。 | |
clearLogsOnStart | Boolean | "true"の場合、ログファイルの保存先フォルダを調べ、現行の.logファイルを除く全ての"*.log"ファイルを削除します。 ※file appenderのみ |
注:デーモンモードが"true"に設定されている場合、全てのコンソールappenderは無視されます。
applications
サーバー内の全てのアプリケーションが配置されています。起動時に使用する各アプリケーション属性を保持します。
各アプリケーションには、独自の機能を実行するために必要な特定の属性があります。
以下にアプリケーション内のオブジェクトを示します。
rootDirectory(必須 / Type:String)
アプリケーションサブフォルダを含むフォルダ。
パスが"/"または""で始まる場合(OSによって異なります)、絶対パスとして扱われます。
それ以外の場合はランタイムディレクトリ(サーバーを起動した場所)からの相対パスとして扱われます。
Windows
Linux
appDir(必須 / Type:String)
"rootDirectory"と組み合わせて、絶対パス以外のデフォルトのベースディレクトリを作成します。
Windows
Linux
注:相対パスを使用する場合、アプリケーションディレクトリの場所に注意してください。ファイルを置き忘れてしまう可能性があります。
name(Type:String)
サーバー名(会社名、組織名など)
description(Type:String)
"name"の詳細情報
default(必須 / Type:Boolean)
デフォルトアプリケーションを選択
pushPullPersistenceFile(必須 / Type:String)
pushPull設定ファイルのパス
authPersistenceFile(必須 / Type:String)
認証ファイルのパス
connectionsLimitPersistenceFile(必須 / Type:String)
接続数制限ファイルのパス
bandwidthLimitPersistenceFile(必須 / Type:String)
帯域幅制限ファイルのパス
ingestPointsPersistenceFile(必須 / Type:String)
インジェストポイントファイルのパス
streamsExpireTimer(必須 / Type:Number)
タイムアウトするまでにEMSが接続ストリームからのオーディオ/ビデオデータを待機する秒数
rtcpDetectionInterval(必須 / Type:Number)
RTSPセッション時にEMSがRTCPストリームを受信せずに待機する秒数
hasStreamAliases(必須 / Type:Boolean)
ストリーム名のエイリアスを有効/無効
関連リンク:
・addStreamAlias
hasIngestPoints(必須 / Type:Boolean)
インジェストポイントの設定
関連リンク:
・createIngestPoint
validateHandshake(必須 / Type:Boolean)
RTMP検証ハンドシェイクのない古いFlashプレーヤーの場合、"false"に設定します。
aliases(必須 / Type:Array)
エイリアスが追加可能なストリームの拡張子
maxRtmpOutBuffer(必須 / Type:String)
EMSが出力RTMPバッファに使用する最大バイト数
maxRtspOutBuffer(必須 / Type:String)
EMSが出力RTSPバッファに使用する最大バイト数。最終トランスポートがTCP上のRTPである場合にのみRTSPに使用されます。
hlsVersion(必須 / Type:Number)
使用するHLSのバージョン。HLSファイルを使用する場合、バージョンを事前に確認する必要があります。
HLS version 3から6までサポート済です。詳しくはこちら
useSourcePts(必須 / Type:Boolean)
"true"の場合、アウトバウンドストリームはソースストリームのPTSを使用します。
それ以外の場合、プッシュストリームは"0"から始まります。
enableCheckBandwidth(必須 / Type:Boolean)
"true"の場合、bandwidth.xlmを読み込みます。
関連リンク:
・bandwidths.xml
vodRedirectRtmpIp(Type:String)
EMSがソースVODファイルを取得できる他のサーバーのIPです。
例えば、ローカルサーバーがvideo1ファイルを検索する場合、検索が失敗すると構成の詳細がvodRedirectRtmpIpパラメーターに設定されます。
有効な値がある場合、ローカルサーバーはvideo1のサーバーに対してpullStreamリクエストを行い(vodRedirectRtmpIP値)、そこで得られた新たなストリームを使用して最初のクライエントからのリクエストを処理します。
注:これはmediaFolderのみにアクセスします。
VODファイルがmediaFolder内にあるか、そうでない場合はソースの検索がループしている事を確認してください。
forceRtmpDatarate(必須 / Type:Boolean)
特定の要件を満たす為に、videoおよびaudioデータレートをハードコードします。
sendRtspRangeHeaders(必須 / Type:Boolean)
axisカメラに必要な設定項目です。
serverNameStreamPrefix(Type:String)
ストリーム名の接頭辞として付加するサーバー名
runWebServer(必須 / Type:Boolean)
起動時にEMS Web Serverを有効にします。
runWebUI(必須 / Type:Boolean)
起動時にEMS Web UIを有効にします。
mediaStorage(必須 / Type:Object)
メディアストレージ設定
logAppenders=
mediaStorage = {
recordedStreamsStorage="../media",
{
description="Default media storage",
mediaFolder="../media",
},
},
mediaフォルダには以下の用途があります。
・pullStreamに使用されるVODファイルの保管場所
・generateLazyPullコマンドを使用して作成されたファイルの保管場所
・recordコマンドで録画したストリームの保管場所
・メディア構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
recordedStreamsStorage | String | ○ | ストリームの録画で使用するmediaフォルダへのパス |
description | String | メディアストレージの詳細情報 | |
mediafolder | String | ○ | メディアストレージフォルダのパス |
・その他のオプションパラメータ
Key | Type | 必須 | 説明 |
---|---|---|---|
metaFolder | String | 生成されたシークファイルとメタファイルのフォルダーパス | |
enableStats | Boolean | EMSが各VODファイルの統計ファイル、シークファイル、メタファイルを作成する場所。 このフォルダへの書き込み権限が必要です。 | |
clientSideBuffer | Number | "true"の場合、EMSは再生された各VODファイルに関する統計を記録します。 統計情報はmetaFolderに保存されているメディアファイルと同じ名前の.statsファイルに保存され、アクセス数と配信されたバイト数が含まれます。 | |
keyframeSeek | Boolean | RTMPクライアントのVOD再生実行時にEMSがコンテンツをバッファする秒数 | |
seekGranularity | Number | "true"の場合、シークはキーフレームでのみで行われます。 "false"の場合、フレーム間パケットでシークが発生する可能性があり、キーフレームに到達するまでクライアントプレーヤー上でノイズが表示される可能性があります。 | |
externalSeekGenerator | Boolean | 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構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
ip | String | ○ | サービスが提供されるIP "0.0.0.0"の場合は全てのインターフェースにおける全てのIPを意味します。 |
port | String | ○ | サービスが受け付けるポート番号 |
protocol | String | ○ | "ip:port"の組み合わせで処理されるプロトコルスタック |
・EMSでサポートされるacceptorタイプ
Acceptorプロトコル | 一般的なIP | 一般的なポート | 追加パラメータ | プロトコルスタック(タグ) |
---|---|---|---|---|
inboundJsonCli | 127.0.0.1 | 1112 | useLengthPadding | TCP+IJSONCLI |
inboundHttpJsonCli | 127.0.0.1 | 7777 | - | TCP+IHTT+H4C+IJSONCLI |
inboundAsciiCli | 127.0.0.1 | 1222 | useLengthPadding | TCP+IASCCLI |
inboundRtmp | 0.0.0.0 | 1935 | - | TCP+IR |
inboundRtmp | 127.0.0.1 | 1936 | clustering | |
inboundBinVariant | 127.0.0.1 | 1113 | clustering | TCP+BVAR |
inboundRtsp | 0.0.0.0 | 5544 | multicast | TCP+RTSP |
inboundLiveFlv | 0.0.0.0 | 6666 | waitForMetadata | TCP+ILFL |
inboundTcpTs | 0.0.0.0 | 9998 | localStreamName | TCP+ITS |
inboundUdpTs | 0.0.0.0 | 9898 | localStreamName | UDP+ITS |
inboundRtmps | 0.0.0.0 | 4443 | sslKey, sslCert | TCP+ISSL+IRS |
inboundJsonMeta | 0.0.0.0 | 8100 | streamname | |
wsJsonMeta | 0.0.0.0 | 8210 | streamname | |
wssJsonMeta | 0.0.0.0 | 8433 | streamname, sslKey, sslCert | |
inboundWSFMP4 | 0.0.0.0 | 8410 | - | |
inboundWSSFMP4 | 0.0.0.0 | 8420 | sslKey, sslCert |
・プロトコルグループテーブル
プロトコルグループ | タグ | プロトコルタイプ |
---|---|---|
Carrier Protocols | TCP | TCP |
UDP | UDP | |
Variant Protocols | BVAR | Bin Variant |
XVAR | XML Variant | |
JVAR | JSON Variant | |
RTMP Protocols | IR | Inbound RTMP |
IRS | Inbound RTMPS | |
OR | Outbound RTMP | |
RS | RTMP Dissector | |
Encryption Protocols | RE | RTMPE |
ISSL | Inbound SSL | |
OSSL | Outbound SSL | |
MPEG-TS Protocol | ITS | Inbound TS |
HTTP Protocols | IHTT | Inbound HTTP |
IHTT2 | Inbound HTTP2 | |
IH4R | Inbound HTTP for RTMP | |
OHTT | Outbound HTTP | |
OHTT2 | Outbound HTTP2 | |
OH4R | Outbound HTTP for RTMP | |
CLI Protocols | IJSONCLI | Inbound JSON CLI |
H4C | HTTP for CLI | |
IASCCLI | Inbound ASCII CLI | |
RPC Protocols | IRPC | Inbound RPC |
ORPC | Outbound RPC | |
Passthrough Protocol | PT | Passthrough |
deviceStreams(Type:Object)
deviceStreams=
{
{
name="camera01",
video=
{
type="v4l2",
path="/dev/video0",
},
audio=
{
type="v4l2",
path="/dev/video1",
},
},
},
・deviceStreams構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
name | String | ○ | |
video - type | String | ○ | |
video - path | String | ○ | |
audio - type | String | ○ | |
audio - path | String | ○ |
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使用時は、以下のパラメータについては変更できません。
パラメータ | 値 |
---|---|
keepAlive | false |
cleanupDestination | true |
createMasterPlaylist | false |
overwriteDestination | true |
playlistType | rolling |
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
Key | Type | 必須 | 説明 |
---|---|---|---|
type | String | ○ | "adobe" |
encoderAgents | String | ○ | 使用するエンコーダエージェント |
usersFile | String | ○ | users.lua設定ファイルのパス |
verifierUri | String | 使用する検証ファイルのパス | |
token | String | トークンベースの認証に使用されるトークン。 トークンはシークレット文字列、リクエストされたストリーム名、UNIXタイムをハッシュする事による計算値です。 秘密の文字列は設定のものと一致する必要があります。 |
RTMP URIトークンフォーマット
rtmp://hostname/streamName?e=ValidUntilUnixTime&h=Token
Token = MD5 (SecretString + "/" + StreamName + "?e=" + ValidUntilUnixTime)
2. RTSP
Key | Type | 必須 | 説明 |
---|---|---|---|
usersFile | String | ○ | users.lua設定ファイルのパス |
authenticatePlay | boolean | 有効の場合、プレーヤーは全てのストリームリクエストでパスワードを要求します。 |
3. WEBSOCKET
Key | Type | 必須 | 説明 |
---|---|---|---|
token | String | ○ | トークンベースの認証に使用されるトークン。 トークンはシークレット文字列、リクエストされたストリーム名、UNIXタイムをハッシュする事による計算値です。 秘密の文字列は設定のものと一致する必要があります。 |
Token = MD5 (SecretString + "/" + StreamName + "?e=" + ValidUntilUnixTime)
トークン認証
EMSはトークン認証を含む再生リクエストを受け入れます。リクエストされたストリームを配信する前に、EMSはタイムスタンプが将来の日時である事を検証し、再生リクエストのタイムスタンプと秘密文字列を使用してMD5ハッシュ値を再計算した後、そのハッシュ値が再生リクエストからの値と一致するか検証します。
検証ステップが失敗するとEMSはリクエストされたストリームを配信しません。全ての検証手順が成功すると、EMSはリクエストされたストリームをプレーヤーに配信します。
config.lua
ファイル内の"authentication"ブロックの記述が見つからない、もしくは不完全な場合、認証機能は無効になります。
RTMPプロトコルの場合、auth.xml
ファイルが見つからない、もしくは"false"に設定されていると認証機能は無効になります。
RTSPプロトコルの場合、"rtsp"ブロックで"authenticatePlay"が省略されているか、もしくは"false"に設定されていると認証機能は無効になります。- EMS用の証明書とキーを生成するスクリプトが用意されています。詳細はこちらのGitHubファイルを参照してください。
- こちらからUNIXタイムの変換が可能です。
- こちらからMD5ハッシュの生成が可能です。
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構成テーブル
プロトコル | パラメータ | 必須 | 説明 |
---|---|---|---|
customData | Object | sinkによって生成された全てのイベントに追記されるカスタムデータ。上位レベルで定義されたカスタムデータnodeを上書きします。 より複雑な階層構造を持つこともできます。 | |
type | String | ○ | sinkタイプ"file" |
filename | String | ○ | ファイルのベースネーム |
format | String | ○ | ファイル形式。 text,xml,json,w3c |
timestamp | Boolean | "true"の場合、ログファイルのファイル名にタイムスタンプが追加されます | |
appendTimestamp | Boolean | タイムスタンプの追加オプション。"true"の場合、作成された全てのログファイルにタイムスタンプ(YYYYMMDD_HHmmSS)が追加されます。"false"の場合は連続番号が追加されます。 デフォルトは"true"です。 | |
appendInstance | Boolean | 各ログファイルの後にランダムな4桁のインスタンスIDを追加します。 デフォルトは"false"です。 | |
fileChunkLength | Number | 新規ファイルを作成する秒数 | |
fileChunkTime | String | ログファイルをチャンク化する時間指定(HH:MM:SS形式)。 注:fileChunkLengthとfileChunkTimeの両方が存在する場合はファイルチャンクされません。 | |
enabledEvents | Object | ログ記録されているイベント。設定していない場合、全てのイベントがログに記録されます。 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構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
scriptPath | String | ○ | トランスコーダー用ヘルパースクリプトのパス。 トランスコードAPI関数はバイナリを直接呼び出すのではなくこのスクリプトを呼び出します。カスタムトランスコーダを使用する場合はバイナリを置き換えることができます。 |
srcUriPrefix | String | ○ | transcode API関数使用時はソースストリームとして localStreamName を指定できます。これは、その localStreamName の先頭に追加されるプレフィックスです。例えば srcUriPrefix="rtsp://localhost:5544" でストリーム名"test1"がトランスコードコマンドに指定されている場合、URIは rtsp://localhost:5544/test1" となります。 |
dstUriPrefix | String | ○ | srcUriPrefix の逆です。トランスコードコマンドでdestinationとして localStreamName が指定されている場合、指定したプレフィックスがストリーム名に追加され出力されます。 |
mp4BinPath(必須 / Type:String)
mp4 writer実行ファイルのパス
webRTC(必須 / Type:Object)
webRTCのセキュリティ設定
webrtc = {
sslKey="..\\config\\server.key",
sslCert="..\\config\\server.cert",
},
・webRTC構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
sslKey | String | ○ | SSLキーのパス |
sslCert | String | ○ | SSL証明書のパス |
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構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
type | String | ○ | 使用するDRMの種類 "verimatrix":HLSでVerimatrix DRMを有効化 "evo":HLSでAES暗号化を有効化 "none":DRM無効。これは設定ファイルのこのセクションをコメントアウトする事と同じです。 |
requestTimer | Number | ○ ("type = verimatrix"時) | キーリクエストタイマーの秒数。EMSは起動直後からタイマー秒数毎にVerimatrixキーサーバーにキーリクエストを行います。 デフォルト値は"1",最小値は"1",最大値はなし(最小値より下に設定されている場合、最小値が適用されます) |
reserveKeys | Number | ○ ("type = verimatrix"時) | IDごとにバッファされたキーの数。 デフォルト値は"10",最小値は"5",最大値はなし(最小値より下に設定されている場合、最小値が適用されます) |
reserveIds | Number | ○ ("type = verimatrix"時) | アクティブIDに加えキーバッファに充当する予約IDの数。 デフォルト値は"10",最小値は"5",最大値はなし(最小値より下に設定されている場合、最小値が適用されます) |
urlPrefix | String | ○ ("type = verimatrix"時) | Verimatrix VCASキーサーバーの場所 |