手術ビデオ専用サーバーのセットアップの手順

セットアップの終了まではインターネットにアクセス可能な環境で作業を行ってください。

手術ビデオを保存するためのフォルダ (ディレクトリ) として、video の下に 手術ビデオ フォルダを用意します。

なお、NAS のコントロール画面の File Station では、DS720P > video > 手術ビデオ ですが、NAS の OS である Linux からみた実際のフォルダは /volume1/video/手術ビデオ となりますので注意してください。

EMUYN からのメールでのご案内に従ってダウンロードしたソフトウェア及び設定ファイルを解凍して NAS に転送します。

Windows であればエクスプローラのネットワークから接続するのが容易です。

管理者権限を持つユーザー (ここでは DSAdmin) のホームディレクトリに、EMUYN tools の zip ファイルを展開した dokuwiki フォルダを転送 (コピー) してください。

タスクスケジューラーというアプリが NAS に用意されていますので、 それを使って手術ビデオ圧縮スクリプトを定期的に実行させる設定をします。

コントロールパネルのタスクスケジューラーを起動してください。

メニューから 作成 - 予約タスク - ユーザー指定のスクリプト を選択します。

全般 タブでタスクの名称を指定します。 ここでは、opvs-cron.php と指定しています。 ユーザーには、root を指定してください。 警告表示が出ますので、OK を押してください。

スケジュール タブでは、デフォルトが「毎日 00:00 に実行」となっています。 実行の間隔は「毎日」を推奨します。 実行の時刻は、手術ビデオファイルをアップロードする業務の終了後の時刻を適宜指定してください。 通常は 00:00 で構いませんので変更の必要はありません。

なお、万一圧縮処理に24時間以上かかってしまう場合があっても、ここで指定するビデオファイルの圧縮スクリプトは多重起動しないようにしてありますので心配ありません。 しかし実際には、後述の圧縮オプション指定にてソフトウェア圧縮が設定され、かつ、よほど手術数が多い病院様以外ではそれほど時間がかかるものではありません。

タスク設定 タブでは、起動するスクリプトを指定します。 ここでは、

php /var/services/homes/DSAdmin/dokuwiki/dokuwiki_data/scripts/opvs-cron.php -d 180 -q 26

と入力してください。 ここで、 -d 180 は「180日経過した元ファイルを削除」, -q 26 は「圧縮品質 26」 を意味します。

オプション指定の詳細

opvs-cron.php コマンドは、php スクリプトですので、php から起動します。 オプションは以下の通りです。

  usage: php opvs-cron.php
  options: -d/--days [圧縮前ファイル削除までの日数] (30以上のみ。指定しない場合は削除なし)
           -q/--qp [圧縮品質 1(最良)~51(最悪)] (指定しない場合はソフトウェアエンコード)
           -v/--verbose
           -h/--height [出力映像の height] (デフォルトは 720)
           -help

圧縮前のファイルを一定期間経過後に削除するには、-d にてその日数を指定します。 当初は -d 180 など長めに設定しておき、HDD 容量の残容量に応じて適宜変更してもよいでしょう。 30日以下には設定できません。 また、このオプションを設定しない場合は削除は行いません。

圧縮ビデオの画質は -q で設定します。 実用的な値は 20~30 で、20 が高画質で大容量、30 が低画質で低容量です。 26だと画質に問題なく概ね1/5~1/10に圧縮される場合が多いようです。 圧縮率や画質は元ファイルの解像度などによりますので、実際にお使いのシステムで圧縮結果を見て調整されることをお勧めします。

なお、-q を設定しないと、ハードウェアエンコーダーを利用しないソフトウェアモードでの動作となりますので、圧縮処理に10倍近く時間がかかります。

圧縮ビデオの解像度 (映像の高さ) は -h で設定します。 デフォルトは 720 ですが、自由に設定できます。 映像の幅は、自動的に設定されます。

オプション指定の例

デフォルト設定

php /var/services/homes/DSAdmin/dokuwiki/dokuwiki_data/scripts/opvs-cron.php -d 180 -q 26
  • 180日経過後に、元ファイルを削除します。
  • 圧縮品質は 26 で、映像の劣化がほぼわからない程度です。
  • 垂直解像度はデフォルトの 720 です。水平解像度はアスペクト比を保って自動計算されます。
  • ファイルサイズは、元ファイルが full HD (1980×1080) の場合に1/5程度となります (ファイルの条件により左右されます)。
  • 圧縮にかかる時間は、実再生時間の1/5程度となります。

高圧縮設定

php /var/services/homes/DSAdmin/dokuwiki/dokuwiki_data/scripts/opvs-cron.php -h 480 -d 30 -q 30
  • 30日経過後に、元ファイルを削除します。
  • 圧縮品質は 30 で、映像の劣化がやや気になります。
  • 垂直解像度は 480 です。水平解像度はアスペクト比を保って自動計算されます。
  • ファイルサイズは、元ファイルが full HD (1980×1080) の場合に1/15程度となります (ファイルの条件により左右されます)。
  • 圧縮にかかる時間は、実再生時間の1/6程度となります。

ウェブサーバーソフトウェアは、Docker を用いて起動しますが、 そのコマンドを NAS の起動時に自動的に実行するように設定します。

Docker を用いる理由は、セットアップを容易にすることと、最新の公式安定バージョンを利用するためです。 DockerSynology DS 720+ / DS920+ のセットアップの具体的手順 で導入済みです。

NAS の起動時に自動的に起動するよう設定するには、 先ほどと同様にタスクスケジューラーを利用します。

今回はメニューから 作成 - トリガーされたタスク - ユーザー指定のスクリプト を選択します。

全般 タブでタスクの名称を指定します。 ここでは、start opvs server と指定しています。

ユーザーには、root を指定してください。 警告表示が出ますので、OK を押してください。

タスク設定 タブでは、起動するスクリプトを指定します。 ここでは、

cd /var/services/homes/DSAdmin/dokuwiki/
docker-compose down
docker-compose up -d
cd ~

を設定してください。

ここでいったん docker-compose down としてから docker-compose up -d しているのは、何らかのエラーが生じた際に再起動するためです。

OK を押しますと、タスクリストが表示されますので、以下のようになっていることを確認してください。

これで、NAS の起動時にサーバーが起動するようになりました。

この時点では、サーバーは起動されていませんし、必要な Docker image がダウンロードされていませんので、 opvs-cron.php および start opvs server を右クリックメニューから手動で実行しておきます。

いずれも初回起動時に、最新のサーバーソフトウェアなどで構成される Docker image がダウンロードされますので、NASはインターネットに接続されている必要があります。 その後は必要に応じてインターネットから切り離すことが可能となります。

エラーが生じたなどの理由でサーバーを再起動する必要がある場合は、 start opvs server を右クリックメニューから手動で実行してください。

もしもビデオサーバーが正常に動作していないと思われる場合には、以下の操作で確認していただけます。

  1. パッケージセンターを起動
  2. Docker を 開く
  3. Docker の コンテナ にて図のように3つのコンテナが 実行中 であれば問題ありません。

NAS に SSH接続できるようにしておくと、設定の調整などの際に便利ですので、その手順をお示ししておきます。

この操作は必須ではありません。

SSH 接続できるよう設定を変更します。

コントロールパネルから 端末とSNMP を開いてください。

ここで、SSHサービスを有効化する をチェックします。

これで、TeratermWindows Terminal など適当な terminal software で接続できるようになります。

SSH接続できましたら、2つのサーバーが起動していることを確認してみます。

Docker が使えることは、次のコマンドで確認できます。

docker --version
docker-compose --version

続いて、次コマンドでサーバーの起動が確認できます。

sudo docker ps

作業終了後は exit でシェルを抜け Teraterm を修了してください。

なお、シェルからの操作は強力ですので、利用する場合には Linux の知識のある方によって充分に注意して操作していただくようお願いします。