config.json の読み込みを起動時の 1 度だけに制限する
種類
デフォルト値
必須
boolean
false
no
デフォルトでは、エンコードコマンド実行時などにコンフィグファイルを読み込み直す
EPGStation が Web アクセスを待ち受けるポート番号
種類
デフォルト値
必須
number
8888
yes
子プロパティ名
種類
必須
説明
user
string
yes
BASIC 認証ログイン時のユーザー名
password
string
yes
BASIC 認証ログイン時のパスワード
"basicAuth" : {
"user" : " username" ,
"password" : " password"
}
利用する Mirakurun のパスもしくはURL
種類
デフォルト値
必須
string
-
yes
"mirakurunPath" : " http://localhost:40772"
種類
デフォルト値
必須
string
mysql
no
値は mysql
postgresql
sqlite3
のいずれか
MySQL の接続設定(MySQL 使用時は必須)
子プロパティ名
種類
必須
説明
host
string
yes
MySQL が動作するホスト名
port
number
no
MySQL が待ち受けるポート番号
user
string
yes
DB 接続用のユーザー名
password
string
yes
DB 接続用のパスワード
database
string
yes
使用するデータベース名
connectTimeout
number
no
接続タイムアウト時間 (ミリ秒)
connectionLimit
number
no
同時接続上限数
"mysql" : {
"host" : " localhost" ,
"port" : 3306 ,
"user" : " username" ,
"password" : " password" ,
"database" : " databaseName" ,
"connectTimeout" : 20000 ,
"connectionLimit" : 10
}
PostgreSQL の接続設定(PostgreSQL 使用時は必須)
子プロパティ名
種類
必須
説明
host
string
yes
PostgreSQL が動作するホスト名
port
number
yes
PostgreSQL が待ち受けるポート番号
user
string
yes
DB 接続用のユーザー名
password
string
yes
DB 接続用のパスワード
database
string
yes
使用するデータベース名
connectionTimeoutMillis
number
no
接続タイムアウト時間 (ミリ秒)
idleTimeoutMillis
number
no
アイドル状態の上限時間 (ミリ秒)
"postgresql" : {
"host" : " localhost" ,
"port" : 3306 ,
"user" : " username" ,
"password" : " password" ,
"database" : " databaseName" ,
"connectionTimeoutMillis" : 20000 ,
"idleTimeoutMillis" : 20000
}
SQLite3 の接続設定(SQLite3 使用時は必須)
子プロパティ名
種類
必須
説明
extensions
string[]
yes
読み込む拡張機能のパス
regexp
boolean
yes
正規表現検索の有効化 or 無効化
"sqlite3" : {
"extensions" : [" /hoge/regexp.so" ],
"regexp" : true
}
SQLite3 使用時の db ファイルの保存場所
種類
デフォルト値
必須
string
data/database.db
no
"dbPath" : " /hoge/database.db"
"no": 英数字記号を変換しない (非推奨設定)
"twoByte": 英数字記号を全角に変換
"oneByte" or その他(未定義の場合も同様): 英数字記号を半角に変換
"oneByteWithCH": チャンネル名も含めて英数字記号を半角に変換
変更後は npm run convert-str
を実行して録画済み一覧を検索可能にすること。
"no" を設定した場合はエラーとなるので注意
"convertDBStr" : " twoByte"
EPGStation が利用する FFmpeg のパス
種類
デフォルト値
必須
string
/usr/local/bin/ffmpeg
no
"ffmpeg" : " /usr/bin/ffmpeg"
種類
デフォルト値
必須
string
/usr/local/bin/ffprobe
no
"ffprobe" : " /usr/bin/ffprobe"
録画時に Mirakurun へ渡されるプライオリティ
競合録画時に Mirakurun へ渡されるプライオリティ
チューナの使用状況に応じて番組末尾が切れることを許可する
種類
デフォルト値
必須
boolean
true
no
#190
false にすると番組冒頭の頭切れが発生する
DB へ番組情報を挿入するときの 1 回あたりの件数
種類
デフォルト値
必須
number
10
no
DB へ番組情報を挿入するときの 1 回あたりの待機時間
recordedHistoryRetentionPeriodDays
種類
デフォルト値
必須
number
30
no
"recordedHistoryRetentionPeriodDays" : 90
reservesUpdateIntervalTime
種類
デフォルト値
必須
number
10
no
"reservesUpdateIntervalTime" : 15
suppressReservesUpdateAllLog
種類
デフォルト値
必須
boolean
false
no
"suppressReservesUpdateAllLog" : true
種類
デフォルト値
必須
boolean
false
no
"suppressEPGUpdateLog" : true
種類
デフォルト値
必須
number[]
-
no
http://<MirakurunAddress:port>/api/services
もしくは http://<EPGStationAddress:port>/api/channels
で確認できる id を入力
"serviceOrder" : [3273601024 , 3273701032 , 3273801040 , 3274101064 , 3273901048 , 3274201072 , 3274001056 ]
種類
デフォルト値
必須
number[]
-
no
http://<MirakurunAddress:port>/api/services
もしくは http://<EPGStationAddress:port>/api/channels
で確認できる serviceId を入力
serviceOrder が存在する場合はそちらが優先されるため注意
"serviceSidOrder" : [1024 , 1032 , 1040 , 1064 , 1048 , 1072 , 1056 ]
種類
デフォルト値
必須
number[]
-
no
http://<MirakurunAddress:port>/api/services
もしくは http://<EPGStationAddress:port>/api/channels
で確認できる id を入力
"excludeServices" : [3239123608 , 400231 ]
http://<MirakurunAddress:port>/api/services
もしくは http://<EPGStationAddress:port>/api/channels
で確認できる serviceId を入力
"excludeSid" : [23608 , 231 ]
EPGStation が利用するグループ ID or グループ名
種類
デフォルト値
必須
string | number
-
no
EPGStation が利用するユーザー ID or ユーザー名
種類
デフォルト値
必須
string | number
-
no
種類
デフォルト値
必須
boolean
false
no
"isEnabledDropCheck" : true
サブディレクトリとして動作させる (リバースプロキシ利用時を想定)
http://<IPaddress>:<Port>/<subDirectory>
として動作する
種類
デフォルト値
必須
string
recorded
no
録画が完了したら recorded で指定したディレクトリへ移動する
"recordedTmp" : " /hoge/fuga"
recordedTSDefaultDirectory
WebUIでの簡易予約時に設定される TS ファイルのディレクトリ設定
"recordedTSDefaultDirectory" : " hoge"
簡易手動予約時のエンコードファイルのデフォルトディレクトリ
recordedEncodeDefaultDirectory
簡易手動予約時のエンコードファイルのデフォルトディレクトリ設定
WebUIでの簡易予約時に設定されるエンコードファイルのディレクトリ設定
"recordedEncodeDefaultDirectory" : " hoge"
種類
デフォルト値
必須
string
%YEAR%年%MONTH%月%DAY%日%HOUR%時%MIN%分%SEC%秒-%TITLE%
no
変数名
説明
%YEAR%
年
%SHORTYEAR%
年 (下2桁)
%MONTH%
月
%DAY%
日付
%HOUR%
時
%MIN%
分
%SEC%
秒
%DOW%
曜日
%TYPE%
"GR" | "BS" | "CS" | "SKY"
%CHID%
Channel ID
%CHNAME%
チャンネル名
%CH%
チャンネル番号
%SID%
サービスID
%ID%
Program ID
%TITLE%
番組タイトル
"recordedFormat" : " %TITLE% [%CHNAME%] %YEAR%年%MONTH%月%DAY%日(%DOW%曜日)"
種類
デフォルト値
必須
string
.ts
no
MPEG2-TSの拡張子は.ts
.mts
.m2t
.m2ts
のいずれかが望ましい
ピリオド.
を付け忘れないように
録画予約情報 (reserves.json) の保存場所
種類
デフォルト値
必須
string
data/reserves.json
no
"reserves" : " /hoge/reserves.json"
データベースリビジョン情報 (dbinfo.json) の保存場所
種類
デフォルト値
必須
string
data/dbinfo.json
no
"dbInfoPath" : " /hoge/dbinfo.json"
種類
デフォルト値
必須
string
thumbnail
no
"thumbnail" : " /hoge/thumbs"
種類
デフォルト値
必須
string
480x270
no
横解像度x縦解像度で記載する(xは小文字のエックス)
"thumbnailSize" : " 320x180"
ドロップチェック時に生成される .log ファイルの保存先
フルパスで指定する
dropCheckLogDir を指定する以前の .log ファイルが存在する場合は npm run move-log
を実行すること
"dropCheckLogDir" : " /hoge/fuga" ,
種類
デフォルト値
必須
string
data/upload
no
"uploadTempDir" : " /tmp/upload"
recordedPrepRecFailedCommand
変数名
種類
説明
PROGRAMID
number
Program ID
CHANNELTYPE
string
'GR' | 'BS' | 'CS' | 'SKY'
CHANNELID
number
Channel ID
CHANNELNAME
string | null
放送局名
STARTAT
number
開始時刻 (UNIX time)
ENDAT
number
終了時刻 (UNIX time)
DURATION
number
長さ (ms)
NAME
string
番組名
DESCRIPTION
string | null
番組概要
EXTENDED
string | null
番組詳細
"reservationAddedCommand" : " /bin/node /home/hoge/fuga.js reserve" ,
"recordedPreStartCommand" : " /bin/bash /home/hoge/foo.sh prestart" ,
"recordedPrepRecFailedCommand" : " /usr/bin/logger prepfailed"
変数名
種類
説明
RECORDEDID
number
recorded id
PROGRAMID
number
program id
CHANNELTYPE
string
'GR' | 'BS' | 'CS' | 'SKY'
CHANNELID
number
channel id
CHANNELNAME
string | null
放送局名
STARTAT
number
開始時刻 (UNIX time)
ENDAT
number
終了時刻 (UNIX time)
DURATION
number
長さ (ms)
NAME
string
番組名
DESCRIPTION
string | null
番組概要
EXTENDED
string | null
番組詳細
RECPATH
string
録画ファイルのフルパス
LOGPATH
string| null
ログファイルのフルパス
"recordedStartCommand" : " /bin/node /home/hoge/fuga.js start" ,
"recordedEndCommand" : " /bin/bash /home/hoge/foo.sh end" ,
"recordedFailedCommand" : " /usr/bin/logger recfailed"
子プロパティ名
種類
必須
説明
name
string
yes
Web インターフェイス上で表示される名称
cmd
string
yes
実行するコマンド
suffix
string
no
出力ファイルに付加される拡張子
rate
number
no
録画時間 * rate 後にタイムアウトする ( デフォルト値は 4.0 )
default
boolean
no
手動予約時のデフォルトに設定するか
suffix
を空欄にした場合、非エンコードコマンドとして実行される
cmd
内で置換される変数は以下の通り
変数名
説明
%NODE%
nodeのファイルパス
%INPUT%
入力ファイルパス
%OUTPUT%
出力ファイルパス
%ROOT%
EPGStation の root パス
変数名
種類
説明
RECORDEDID
number
recorded id
INPUT
string
入力ファイルパス
OUTPUT
string
出力ファイルパス
FFMPEG
string
ffmpeg パス
DIR
string
予約時に設定した directory 文字列
NAME
string
番組名
DESCRIPTION
string | null
番組概要
EXTENDED
string | null
番組詳細
VIDEOTYPE
string | null
"mpeg2" | "h.264" | "h.265"
VIDEORESOLUTION
string | null
"240p" | "480i" | "480p" | "720p" | "1080i" | "2160p" | "4320p"
VIDEOSTREAMCONTENT
number | null
video streamType
VIDEOCOMPONENTTYPE
number | null
video componentType
AUDIOSAMPLINGRATE
number | null
16000 | 22050 | 24000 | 32000 | 44100 | 48000
AUDIOCOMPONENTTYPE
number | null
audio componentType
CHANNELID
number
ChannelId mirakurun:40772/api/services で ID を確認できる
GENRE1
number
genre1
GENRE2
number
genre2
GENRE3
number
genre3
GENRE4
number
genre4
GENRE5
number
genre5
GENRE6
number
genre6
logPath
string | null
ドロップ情報ログファイルパス
errorCnt
errorCnt | null
error count
dropCnt
errorCnt | null
drop count
scramblingCnt
errorCnt | null
scrambling count
"encode" : [
{
"name" : " H264" ,
"cmd" : " %NODE% %ROOT%/config/enc.js main" ,
"suffix" : " .mp4" ,
"rate" : 10.0
},
{
"name" : " checkts" ,
"cmd" : " /usr/local/bin/tsselect %INPUT%" ,
"default" : true
}
],
エンコードやストリーミングで使用されるプロセスの上限数
子プロパティ名
種類
必須
説明
cmd
string
yes
実行するコマンド
rate
number
no
録画時間*rate後にタイムアウトする(デフォルト値は4.0)
encodeコマンドより前に実行される
置換される変数、渡される環境変数はencodeと同じもの
maxEncode を 1 以上に設定すること
"tsModify" : {
"cmd" : " node %ROOT%/config/hoge.js fuga %INPUT%" ,
"rate" : 2.0
}
手動予約時の「TS削除」チェックボックスのデフォルト設定
種類
デフォルト値
必須
boolean
false
no
種類
デフォルト値
必須
string
none
no
none
もしくは remove
のみ
remove
設定時、最も古い録画ファイルから削除される
"storageLimitAction" : " remove"
ストレージ空き容量が限界閾値を超えたときに実行するコマンド
"storageLimitCmd" : " node /home/hoge/fuga.sh"
"storageLimitThreshold" : 1000
storageLimitCheckIntervalTime
種類
デフォルト値
必須
number
60
no
"storageLimitCheckIntervalTime" : 120
HLS 配信時に外部アプリで視聴するときのアプリ設定
子プロパティ名
種類
必須
説明
ios
string
no
iOS での視聴アプリの設定
android
string
no
Android での視聴アプリの設定
mac
string
no
Mac での URL Scheme 設定
win
string
no
Windows での URL Scheme 設定
変数名
説明
ADDRESS
EPGStationのMPEG-TS配信URL
FILENAME
出力されるファイル名
"mpegTsViewer" : {
"ios" : " vlc-x-callback://x-callback-url/stream?url=http://ADDRESS" ,
"android" : " intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end"
},
"recordedViewer" : {
"ios" : " infuse://x-callback-url/play?url=http://ADDRESS" ,
"android" : " intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end"
},
"recordedDownloader" : {
"ios" : " vlc-x-callback://x-callback-url/download?url=http://ADDRESS&filename=FILENAME" ,
"android" : " intent://ADDRESS#Intent;package=com.dv.adm;type=video;scheme=http;end"
},
"HLSViewer" : {
"ios" : " vlc-x-callback://x-callback-url/download?url=http://ADDRESS&filename=FILENAME" ,
"android" : " intent://ADDRESS#Intent;package=com.dv.adm;type=video;scheme=http;end"
}
0
もしくは指定なしの場合、ストリーミング配信機能はオフ
ストリーミング配信時にMirakurunへ渡されるプライオリティ値
recPriority
より大きな値を指定した場合、録画が中断される可能性あり
子プロパティ名
種類
必須
説明
name
string
yes
Web インターフェイス上で表示される名前
cmd
string
no
エンコードコマンド
cmd
が指定されない場合は無変換配信
cmd
で置換される変数は以下の通り
変数名
説明
%FFMPEG%
EPGStationが利用しているffmpegのパス
"mpegTsStreaming" : [
{
"name" : " 720x480(libx264)" ,
"cmd" : " %FFMPEG% -re -dual_mono_mode main -i pipe:0 -c:a copy -c:v libx264 -s 720x480 -sws_flags area -vf yadif -preset ultrafast -tune fastdecode,zerolatency -movflags faststart -aspect 16:9 -vb 1000k -f mpegts pipe:1"
},
{
"name" : " 無変換"
}
],
子プロパティ名
種類
必須
説明
webm
孫プロパティ[]
no
webm 配信時の設定
mp4
孫プロパティ[]
no
mp4 配信時の設定
mpegTs
孫プロパティ[]
no
mpegts 配信時の設定
孫プロパティ名
種類
必須
説明
name
string
yes
Web インターフェイス上で表示される名前
cmd
string
yes
エンコードコマンド
vb
string
yes
映像の目標ビットレート
ab
string
yes
音声の目標ビットレート
変数名
説明
%FFMPEG%
EPGStation が利用している ffmpeg のパス
%RE%
-re
オプション
%VB%
映像の目標ビットレート
%VBUFFER%
映像バッファオプション
%AB%
音声の目標ビットレート
%ABUFFER%
音声バッファオプション
"recordedStreaming" : {
"webm" : [
{
"name" : " WebM Stream" ,
"cmd" : " %FFMPEG% %RE% -i pipe:0 -c:a copy -c:v libx264 -s 720x480 -aspect 16:9 -vb %VB% -f webm pipe:1" ,
"vb" : " 3000k" ,
"ab" : " 128k"
},
{
"name" : " WebM 2" ,
// 以下略
}
],
"mp4" : [
{
"name" : " hogehoge" ,
// 以下略
}
],
"mpegTs" : [
{
"name" : " fugafuga" ,
// 以下略
}
]
}
種類
デフォルト値
必須
string
data/streamfiles
no
"streamFilePath" : " /tmp/hlsfile"
録画済みファイルをHLS配信するときに使用するオプション
ライブ視聴をHLS配信するときに使用するオプション
ライブ視聴をWebM配信するときに使用するオプション
子プロパティ名
種類
必須
説明
name
string
yes
Web インターフェイス上で表示される名前
cmd
string
yes
エンコードコマンド
変数名
説明
%FFMPEG%
EPGStationが利用している ffmpeg のパス
%streamFileDir%
streamFilePath
で指定したパス名
%streamNum%
一時ファイルのストリーム番号
"recordedHLS" : [
{
"name" : " 1280x720(main)" ,
"cmd" : " %FFMPEG% -dual_mono_mode main -i %INPUT% -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -threads auto -c:a aac -ar 48000 -ab 192k -ac 2 -c:v libx264 -s 1280x720 -preset veryfast -aspect 16:9 -vb 3000k -flags +loop-global_header %OUTPUT%"
},
{
"name" : " 720x480(main)" ,
"cmd" : " %FFMPEG% -dual_mono_mode main -i %INPUT% -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -threads auto -c:a aac -ar 48000 -ab 128k -ac 2 -c:v libx264 -s 720x480 -preset veryfast -aspect 16:9 -vb 1500k -flags +loop-global_header %OUTPUT%"
}
]
子プロパティ名
種類
必須
説明
name
string
yes
Webインターフェイス上で表示される名前
host
string
yes
kodiが動作しているホストのURL
user
string
no
kodiのユーザー名
pass
string
no
kodiのパスワード
"kodiHosts" : [
{
"name" : " Kodi host 1" ,
"host" : " http://192.168.1.1:8080" ,
"user" : " hogehoge" ,
"pass" : " fugafuga"
},
{
"name" : " Kodi host 2" ,
"host" : " http://192.168.1.2:8080"
}
]