コンテンツにスキップ

18. i-Trigger ユーザーガイド#

18.1 はじめに#

SALTYSTER i-Trigger(以降は本製品と記載)は、工場内の PLC 情報、センサー、カメラの映像を収集し、収集データの発生イベント(値変化)に応じて、該当時間のデータ(JSON)/映像(MP4)を作成し、ユーザーに提供します。本書は、それらの情報を収集するための設定、参照方法について説明します。

18.1.1 システム構成#

(システム構成図)

i-Triggerシステム構成

標準機能で提供するコネクタおよびエミッタ

種別 名称 説明
コレクタ リソース 端末機器のシステム情報(CPU稼働率など)を収集
PLC ※ PLCのレジスタ情報を収集
カメラ VIDEO IPカメラ(最大3台)
エミッタ FILE ローカルディスクへJSON/CSVファイルを出力
監視(エミッタ) i-Trigger 値変化に応じて、データ+動画切り出しを処理

サポートPLC(プロトコル)は、 SpeeDBeeHive(ユーザーガイド)の「補足」 をご参照ください。なお、機種により、別途調整が必要な場合があります。

18.1.2 動作環境#

HardwareCPUIntel(x86 互換)クロック1GHz以上/ARMv7 Processor
Memory4Gbyte 以上
Storage100~512Gbyte
※ストレージには、過去映像データを抽出するために指定された日数分の動画データを常時保存します。そのため、カメラ台数/フレームレート/ビットレート/解像度に応じた、容量をもつストレージを用意する必要があります。
OSUbuntu 18.04 LTS
Ubuntu 20.04 LTS
Raspbian GNU/Linux 10 (buster)
※実際の運用では、高スペックマシンでの Ubuntu を使った運用を推奨します
Windows10
ブラウザMicrosoft Edge, Google Chrome
IP CameraH264(ビデオコーデック)、Rtspサポート
※メーカー特有の仕様により接続できないケースがあります。

18.2 初期設定#

18.2.1 設定画面の表示#

PCブラウザにて、下記のURLを入力し、SpeeDBee Hiveがインストールされた機器にアクセスする事で、設定画面が表示されます。

  • Linux: http://xxx.xxx.xxx.xxx/hive
  • Windows: http://xxx.xxx.xxx.xxx:8120/hive

「xxx.xxx.xxx.xxx」は機器のIPアドレスとなります。 アクセスするとユーザー認証のダイアログが表示されます。インストール直後のユーザー名、パスワードは下記を使用してください。

  • ユーザー名: admin
  • パスワード: admin

初期画面

18.2.2 ライセンス設定#

各機能を有効化するために、ライセンスの設定を行います。

ライセンス設定

  1. ライセンスコードを入力し、「更新」ボタンをクリックし、ライセンス更新を行います。

ライセンスが更新されると上部にタブメニューが追加されます。

18.2.3 画面構成#

設定画面は、「共通部」、「メニュー」「サブメニュー」「設定画面」4つの領域で構成されています。 入力したライセンスコードにより表示されるメニューは異なります。

画面構成

各メニュー、およびサブメニューから下記の内容を設定します。(※はオプション)

メニュー サブメニュー 設定画面で参照、更新する内容
共通部 ITS サービスの稼働状況
ビューワー ビューワー画面と設定画面へ相互遷移
言語 日本語/英語への言語切り替え
システム 制御 サービスの起動、停止
サーバ設定 サーバ名、データ保存期間など
パスワード変更 設定画面の認証パスワード
ソフトウェア情報 バージョン情報、ライセンス更新
サービス(※) DBサービス DBのサーバー/クライアント機能
OPC UA OPC UAサーバー機能
DBレプリケーション 他の機器へのDB複製機能
イベント(※) トリガ トリガ条件
イベント イベント情報
コマンド イベント発生時の外部コマンド
コレクタ リソース システム情報の収集情報
PLC PLCレジスタの収集情報
カスタム(※) ユーザー作成の情報収集
エミッタ AWS(※) AWSの送信情報
Azure(※) Azureの送信情報
MQTT(※) MQTTの送信情報
FILE ローカルディスクの出力
FTP/FTPS(※) FTP/FTPSの送信情報
SFTP(※) SFTPの送信情報
Machine Advisor(※) Machine Advisorの送信情報
SensorCorpus(※) SensorCorpusの送信情報
カメラ カメラ カメラ情報
常時データ検索 常時録画データの再生
監視 記録 監視イベント情報

18.3 SpeeDBee Hiveの機能#

本製品は、バックエンドのエンジンとして、SpeeDBee Hive を使用しています。 そのため、SpeeDBee Hive と同じ機能が利用できます。下記の機能について、それぞれ「SpeeDBee Hive(ユーザーガイド)」の該当する章をご参照ください。

18.4 カメラ#

録画する IP カメラの登録/更新/削除を行います。

18.4.1 カメラの登録/更新#

カメラの登録を行います。

  1. カメラタブを選択し、サブメニューからカメラを選択します。

    カメラ設定

  2. カメラ共通の設定である保存先とタイムアウトを設定します。

    タイムアウトは、Test にてカメラへライブ接続する際の設定です。

    カメラ設定

  3. カメラ一覧の表の列を1つクリックします。

    表の各列に、カメラ情報を保存することができます。

    カメラ設定

  4. 各項目を入力します。

    カメラ設定

    入力項目 説明
    カメラ名 設置済みのカメラの任意の名称
    カメラ全体で重複不可
    保存時間 常時録画した動画を保存する期間(時間数)
    録画間隔 1ファイルの録画時間
    RTSP URL RTSP の URL(カメラのマニュアル参照)
    無効にする 常時録画を無効にする(設定のみ行う場合に利用)
    RTSPトランスポート RTSP通信を行う際のトランスポート層のプロトコル
    ポート範囲を指定する カメラからのデータを受信するUDPのポート範囲を指定する
  5. 「保存」をクリックすると、カメラ情報が保存されます。カメラ情報を更新する場合は、カメラ一覧の表から列をクリックし、項目を編集して「保存」をクリックします。 カメラ設定

18.4.2 カメラの削除#

カメラを削除します。個別で削除する方法と、一括で削除する方法があります。

18.4.2.1 個別削除#

カメラを個別で削除します。

  1. カメラ一覧の表から、削除するカメラの列をクリックします。

    カメラ設定

  2. 「削除」をクリックします。

    カメラ削除

  3. 「削除」をクリックします。キャンセルすると、カメラは削除されません。

    カメラ削除

  4. 「削除」をクリックした場合は、指定したカメラが削除されます。

    カメラ削除

18.4.2.2 一括削除#

複数のカメラを一括で削除します。

  1. カメラ一覧の表から、削除するカメラの列の「削除」にチェックを付けます。

    カメラ設定

  2. 「削除」をクリックします。

    カメラ設定

  3. 「削除」をクリックします。キャンセルすると、カメラは削除されません。

    カメラ削除

  4. 「削除」をクリックした場合は、指定したカメラが削除されます。

    カメラ削除

18.4.3 接続テスト#

カメラの接続テストを行います。

  1. 「Test」をクリックします。

    カメラ接続テスト

  2. 設定が正しければ該当カメラのライブ映像が表示されます。

    カメラ接続テスト

ライブ映像が表示されない場合、URLに誤りがないか確認してください。
ネットワーク状況によっては、接続に時間がかかる事があります。 その場合は、タイムアウトの設定を30000(30秒)以上など長めに設定して確認してください。

18.4.4 制御ファイルによる録画保存#

制御ファイルによる録画保存を有効にすると、常時録画用の動画保存の動作を切り替えることができます。

カメラ設定

  • 制御ファイルによる録画保存が無効な場合は、常に常時録画の動画がストレージへ保存されます。

  • 制御ファイルによる録画保存が有効な場合は、制御ファイルの内容により動画ファイルを保存するか、保存しないかが変化します。

制御ファイルは、保存先の直下に作成する必要があります。 保存先を変更していない場合の制御ファイルは以下に配置します。保存先を変更した場合は、下記の上位フォルダを保存先に合わせて下さい。

C:\ProgramData\SALTYSTER\SpeeDBeeHive\data\video\camera_control.dat
/var/speedbeehive/data/video/camera_control.dat

制御ファイルに文字列を書き込むことで制御を行います。 イベントのコマンド機能などで制御可能です。

制御ファイル

1
0

18.4.5 カメラ異常時の検知#

動画録画中に異常を検知した場合、カメラIDをコレクタの値として登録します。 「$error_camera」というカラムへ異常のあったカメラのIDを登録します。

次のような異常が発生すると、エラー登録を行います。

  • 設定したRTSPのURLに対して接続ができない場合
  • 動画ストリーミングの受信時に異常を検知した場合
  • mp4保存時にエラーが発生した場合

次のようなトリガを設定して、イベント機能を利用することで異常検知後に処理を行えます。

カメラ異常トリガ

18.4.6 カメラ台数上限数の変更方法について#

常時録画で使用するカメラの上限数を変更するには、次の設定が必要です。

  • カメラ台数の拡張数に対応した専用のライセンスコードの入力
  • 専用の拡張設定ファイルの配置
  • 拡張設定ファイル配置後のサービス再起動

18.4.6.1 手順#

  1. 配布されたライセンスコードを入力します。 入力方法は「ライセンス設定」をご参照ください。

  2. 配布された拡張設定ファイルを配置します。

  3. WEBサーバーを再起動します。 拡張設定ファイルを配置した後、サービスの再起動を行います。サービスが再起動されるまで 設定は反映されません。 SpeeDBee Hive(ユーザーガイド)の「WEBサーバーの制御について」をご参照ください。

拡張設定ファイルの配置には、OSの管理者権限が必要です。 拡張設定ファイルについては、専用ライセンスコードと一緒に配布されます。 別途お問い合わせください。配置場所を下記に示します。

/usr/local/libexec/speedbeehive/conf/user_specification.json
C:\Program Files\SALTYSTER\SpeeDBeeHive\libexec\speedbeehive\conf\user_specification.json

18.4.7 常時データ検索#

常時録画した動画の検索/再生を行います。

18.4.7.1 検索#

  1. サブメニューから常時データ検索をクリックします。

    常時データ検索

  2. 時間範囲とカメラを指定し、検索ボタンを押下します。

    常時データ検索

  3. 指定した時間範囲内で、指定したカメラの常時録画データが存在する日時が一時間ごとにリスト表示されます。ヘッダの「No」、「カメラ」、「時間」を押下すると、項目の昇順・降順にリストが並べ替えられます。ただし、画面に表示されているリスト内での簡易ソートとなります。

    常時データ検索

リスト表示できる件数は最大で1000件までとなります。
検索の日付範囲を狭めるなどして、検索の結果を絞ってください。

18.4.7.2 再生#

  1. 詳細ボタンを押下します。

    常時データ検索

  2. 指定した時間内に存在する常時録画データの一覧がリスト表示されます。ヘッダの「No」、「時間」を押下すると、項目の昇順・降順にリストが並べ替えられます。ただし、画面に表示されているリスト内での簡易ソートとなります。

    常時データ検索

  3. VIEWボタンを押下します。

    常時データ検索

  4. ポップアップ画面が表示されます。動画を再生/停止させるには、再生/停止ボタンまたは再生画面を押下してください。

    常時データ検索

  5. 閉じるボタンを押下すると、ポップアップ画面が閉じられます。

    常時データ検索

18.5 監視#

18.5.1 記録の登録/更新#

記録の登録を行います。

  1. 記録の「+」をクリックします。

    監視設定

  2. 下記の表の説明を参考に、各項目を入力します。

    監視設定

    入力項目説明
    イベント名記録の名称
    記録内で重複不可
    分類イベントの種別
    ・インフォメーション
    ・警告
    ・エラー
    無効にする条件によるデータ+動画の切り出しを無効にする
    (設定のみ行う場合に利用)
    保存期間監視により切り出した動画とデータの保存期間(時)
    カメラ条件に合致した場合に、動画切り出しする対象カメラ
    記録時間最大(分)記録最大時間(分で指定)
    イベント前(秒)開始イベントが発生した前の記録時間(秒)
    イベント後(秒)終了イベントが発生した後の記録時間(秒)
    開始イベントコレクタ条件に使用するコレクタ
    データ条件に使用するデータ
    条件Registデータが収集された場合
    =値が一致
    !=値が不一致
    <値が条件値より小さい
    >値が条件値より大きい
    Custom条件式を自由に入力
    条件種別True条件式が真なら発生
    False条件式が偽なら発生
    Fall条件式が真→偽の際に発生
    Raise条件式が偽→真の際に発生
    同一イベント無効時間(秒)同じイベントが連続発生した場合、通知を無視する時間
    終了イベント利用終了イベントを有効にする場合ON
    コレクタ条件に使用するコレクタ
    データ条件に使用するデータ
    条件Registデータが収集された場合
    =値が一致
    !=値が不一致
    <値が条件値より小さい
    >値が条件値より大きい
    Custom条件式を自由に入力
    条件種別True条件式が真なら発生
    False条件式が偽なら発生
    Fall条件式が真→偽の際に発生
    Raise条件式が偽→真の際に発生
    データセットコレクタイベント発生時に出力するコレクタ
    データイベント発生時に出力するデータ
    データセット追加データを追加する
    データセット削除追加したデータを削除する
    コマンド外部コマンドを利用する外部コマンドを利用する場合にON
    コマンドを最大3つまで指定可能
    コマンドイベント発生時に実行するOSコマンド
    バックグランドOSコマンドをバックグランド起動する場合ON

  3. 「保存」をクリックすると、記録が登録されます。

  4. サブメニューから該当の記録を選択、項目を編集後に「保存」をクリックすると、情報が更新されます。

補足

  • 記録情報はカメラ1台以上、データセット1件以上を指定する必要があります。

  • 全体の記録時間は、下記の図を参照してください。

    • 開始イベントのみ指定
      イベントの開始停止

    • 開始、終了イベント指定
      イベントの開始停止

    • 全体の記録時間が最大記録時間を超過した場合、強制的に記録は終了します。

    • サービスを停止した場合、記録中のデータはその時点の状態で保存されます。常時録画の動画データが保存前であれば切り出しされない事があります。

  • 条件「Custom」で入力できる条件式については、「トリガの登録」の「条件式について」を参照してください。

18.5.2 記録の削除#

記録の削除を行います。

  1. 対象の記録をクリックして、「削除」をクリックします。

    監視削除

  2. 「削除」をクリックします。キャンセルすると、記録は削除されません。

    監視削除

  3. 「削除」をクリックした場合は、記録が削除されます。

    監視削除

18.5.3 記録の設定コピー#

既存の設定をコピーして、監視を登録します。

  1. コピーしたい記録をクリックして、「コピー」をクリックします。

    監視コピー

  2. イベント名を変更、その他変更の必要な箇所を変更して、「保存」をクリックします。

    監視コピー

補足

  • この機能は、登録済みの監視と設定したい内容が類似している場合に活用してください。
  • 登録されているイベント名と同じイベント名は使えません。

18.6 ビューワー#

記録した情報を映像、グラフにて参照します。

ビューワ画面

18.6.1 イベント一覧#

ビューワ画面

画面要素 説明
チェックボックスがONとなっているイベントを一括削除します
チェックボックスがONとなっているイベントのデータを一括でダウンロードします
イベント一覧を再読み込みします
YYYY/MM/DD(図では2021/01/29) イベント一覧に表示するイベントの日時を選択します
表示順(時間で昇順、降順)を切り替えます
イベント選択 選択したデータを画面右に表示します
チェックボックス 削除またはダウンロードするデータを選択します
記録されたイベント情報の分類を示しています

補足

  • 最初に表示されるイベント一覧は、当日の年月日が選択されます。
  • ブラウザと i-Trigger のインストールされているマシンは、同じタイムゾーンを設定してください。

18.6.2 ダウンロード手順#

以下の手順で任意のイベントをダウンロードできます。

  1. ダウンロードするイベントのチェックボックスをONにする

    ビューワ画面

  2. ダウンロードボタンを選択

    ビューワ画面

18.6.2.1 ZIP 構造#

ZIP ファイルは下記の構成でデータを格納しています。

ZIPファイル構成
2020-07-08 年月日フォルダ (yyyy-mm-dd)
 ├─13-59-06.099_3 時間フォルダ (hh-mi-ss.SSS_イベント ID)
 │  ├─event.json イベント、PLC データ情報 *1
 │  ├─camera1.mp4 カメラ1の映像
 │  ├─camera2.mp4 カメラ2の映像
 │  └─camera3.mp4 カメラ3の映像
 └─ 14-11-46.126_3 時間フォルダ (hh-mi-ss.SSS_イベント ID)
     ├─(省略)
       :

ZIPファイル内に含まれるJSONファイルの書式は、「JSON書式」を参照してください。

18.6.3 イベント参照#

選択した記録情報を参照します。

ビューワ画面

18.6.3.1 グラフ/映像連携#

スライドバー、および再生機能により、映像とグラフを連動して表示します。

ビューワ画面

データが文字列型の場合は、映像と表を連動して表示します。表示するデータが存在しない場合は「NO DATA」と表示されます。

ビューワ画面

18.6.3.2 グラフ切り替え#

グラフ切替ボタンのクリックにより、全体グラフと部分表示(60 秒固定)のグラフに切り替えて表示します。 記録時間が長時間の場合、部分グラフに切り替える事で、折れ線グラフの値変化が見やすくなります。

全体グラフ
全体グラフ

部分グラフ
部分グラフ

補足

  • 文字列型のデータ表は、グラフ切替ボタンで表示を切り替えることができません。

18.6.3.3 グラフ非表示#

グラフ左上のチェックボックスをOFFにすることにより、グラフ毎に表示非表示を切り替えることができます。

グラフ非表示

映像再生、グラフ描画は PC ブラウザ機能で行っています。 そのため、大量データや解像度の高い動画を参照すると、処理が遅延する場合があります。(PC 性能に依存)

18.7 OCRコレクタ#

OCRコレクタを使用するための事前設定、および、登録/更新/削除の方法について説明します。

18.7.1 OCRコレクタの辞書ファイル登録#

一部の環境においては OCR 用の辞書ファイルを別途インストールする必要があります。 下表に示すプラットフォームおいては、手順に従って辞書ファイルをインストールしてください。

18.7.1.1 別途辞書ファイルのインストールが必要なプラットフォームと必要なファイル#

プラットフォーム ファイル
Windows ・setup.bat
・ocr_dict.tar.gz
BlackBear ・setup.sh
・ocr_dict.tar.gz

必要ファイルは SpeeDBeeHive/i-Trigger のインストーラーと合わせて配布しています。 不明な場合はお問い合わせください。

18.7.1.2 辞書ファイルインストール手順#

Windows

  1. 上記の必要ファイルをSpeeDbeeHive/i-TriggerがインストールされているPC内の1つのフォルダ内に配置する
  2. Windows エクスプローラ上でsetup.batを右クリック
  3. 「管理者として実行(A)」を選択
  4. ユーザーアカウント制御のウィンドウで「はい」を選択

以上で辞書ファイルがインストールされます

BlackBear

  1. 上記の必要ファイルを、SpeeDBeeHive/i-Triggerがインストールされているデバイス内の/tmpディレクトリに配置する
  2. シェルを起動して、下記のコマンドを実行する
    cd /tmp
    chmod +x setup.sh
    sudo ./setup.sh
    

以上で辞書ファイルがインストールされます

18.7.2 OCRコレクタの登録/更新/無効化{: #ocr_setting }#

OCRコレクタの登録を行います。

  1. カメラタブを選択し、「OCR」を選択します。
    カメラの設定がされていない場合は、本項目「カメラの登録/更新」を参照してください。

    OCRコレクタ設定画面

  2. 各項目に入力して、「保存」を選択すると OCR コレクタ情報が更新されます。

    OCRコレクタ設定画面

    入力項目 説明
    画像ファイル保存先 設定したカメラで録画したより取得した静止画像ファイルの保存先(変更不可)
    OCR実行後、画像ファイルを自動削除する OCRを実行後、対象画像ファイルを削除する
    無効にする OCRを無効にする(設定のみ行う場合に利用)

18.7.3 領域の編集#

OCR解析する領域の編集を行います。

18.7.3.1 領域の登録/参照#

領域の登録/参照を行います。

  1. 「編集」を選択します。

    OCRコレクタ設定画面

  2. 各項目を入力し、「領域指定」を選択します。

    OCRコレクタ設定画面

    入力項目 説明
    領域名 指定領域の任意の名称
    データ型 OCR解析を行うデータのデータ型
    無効にする 指定した領域を無効にする(設定のみ行う場合に利用)
    永続化する ストレージ上に保存する
  3. マウスをドラッグし、任意の領域を指定し「確定」を選択します。

    範囲を誤った場合は、再度、同じ操作を行います。 領域の指定をキャンセルしたい場合は、「閉じる」を選択します。

    OCRコレクタ設定画面

  4. 「新規」を選択すると領域一覧に選択した領域情報が登録されます。

    OCRコレクタ設定画面

  5. 「戻る」を選択すると OCR コレクタ画面に戻ります。

18.7.3.2 領域の更新/削除#

領域の更新/削除を行います。

■更新

  1. 変更したいデータを選択、各項目を設定し「更新」を選択します。

    領域指定の変更も可能です。「更新」を選択します。

    OCRコレクタ設定画面

■削除

  1. 削除したいデータ右側にあるチェックボックスを ON にし、「削除」を選択します。

    OCRコレクタ設定画面

注意事項

文字認識の精度はカメラの精度に依存します。 瞬間的に文字が変化する文字を対象とする場合は、誤認識する可能があります。

18.7.4 制限事項#

現バージョンにおいて、OCRコレクタには以下の制限事項があります。

  • Armagillo-IoT G3L、Armadillo-IoT G4、Raspberry Pi環境において、Pythonカスタムコレクタ、Pythonカスタムエミッタと同時には使用できない

18.8 補足#

18.8.1 制限事項#

制限事項 制限内容
カメラ 接続台数
※上限数の変更方法については、
「カメラ台数上限数の変更方法について」をご参照ください。
0~4
常時録画データ保存期間(時間) 1~168
常時録画データ保存間隔(秒) 10~120
記録 記録情報の登録数 0~8
最大記録時間(分) 1~9
イベント前録画時間(秒) 1~120
イベント後録画時間(秒) 1~120
同一イベントの無効時間(秒) 1~540
記録データの保存期間(日)
※画面からは設定変更できません。
将来的には指定できるよう拡張予定です。
31

上記以外の制限事項については、SpeeDBee Hive(ユーザーガイド)の「制限事項」をご参照ください。

18.8.2 JSON書式#

ビューワーでダウンロードしたZIPファイルに含まれるJSONデータの書式

{
  "record_id": 3,                      記録 ID
  "record_name": "記録 A",              記録名
  "pre_sec": 60,                       イベント前録画時間(秒)
  "end_sec": 60,                       イベント後録画時間(秒)
  "data_sets": [                       データコレクタの収集情報
    {
      "collector_name": "PLC_A",       コレクタ名
      "data_name": "生産数",            データ名
      "data_array": 1,                 デバイス配列
      "data_type": "double",           データ型
      "values": [                      値リスト
        {
          "time": 1594184286326,       タイムスタンプ(エポックミリ秒)
          "val": 1397                  値(デバイス配列が 2 以上の場合、"val":[ 1, 2,,,]の配列形式で格納)
        },
        {
          "time": 1594184286592,
          "val": 1331
        },
        (省略)                        データ数分繰り返し
        ……
      ]
    },
    {
      "collector_name": "PLC_A",       コレクタ名
      "data_name": "生産数",            データ名
      "data_array": 1,                 デバイス配列
      "data_type": "double",           データ型
      "values": [                      値リスト
        {
        "time": 1594184286326,         タイムスタンプ(エポックミリ秒)
        "val": 1397                    値(デバイス配列が 2 以上の場合、"val":[ 1, 2,,,]の配列形式で格納)
        },                             タイムスタンプ(エポックミリ秒)
        (省略)                        データ数分繰り返し
        ……
      ]
    }
  ],
  "videos": [                          動画情報
    {
      "camera_id": 1,                  カメラ ID
      "name": "カメラ A",               カメラ名
      "file_name": "camera1.mp4",      動画ファイル名
      "codec": "h264 (Main)",          ビデオコーデック
      "frame_size": "1024x640",        フレームサイズ
      "fps": 30,                       フレームレート
      "start_time": 1594184285659,     録画開始時間(エポックミリ秒)
      "end_time": 1594184406073,       録画開始時間(エポックミリ秒)
      "seek_time": 467,                先頭位置からの SEEK 時間(ミリ秒)
      "duration": 120414               全体録画時間(ミリ秒)
    },
    {
      "camera_id": 2,
      "name": "カメラ B",
      (省略)
      ……
    },
    (省略)
    ……
  ],
 "event_time": [
    1594184346099                      開始イベント時間(エポックミリ秒)
 ],                                    終了イベントが指定されている場合は、[開始時間,終了時間]で格納
  "start_time": 1594184286099,         記録開始時間(エポックミリ秒)
  "end_time": 1594184406099            記録終了時間(エポックミリ秒)
}

動画は H264 の I フレーム(全データを含むフレーム)を起点として動画抽出を行っています。そのため、記録開始時間と動画開始時間が同一時間になりません。 記録開始時間から動画を再生するには、最初に seekTime(ミリ秒)分、シークしてから再生する必要があります。
記録時間から正確に抽出するには動画変換(デコード/エンコード)する必要がありますが、変換処理は大きな負荷が発生するため、上記の仕様となっております。