あさりのみそしるダイアリー

ココロおだやかに暮らしてます😌

アイオーデータのネットワークカメラ「TS-WLCAM」でMPEG4録画する

アイオーデータのネットワークカメラ「TS-WLCAM」で、撮影した映像をNASに保存することができますが、対応している動画フォーマットがMJPEGで、容量の大きなAVIファイルで記録されるんですよね。

この場合、動画ファイルのサイズが大きく、ほとんど映像が変化しない夜間は、100MBだけ録画した時の長さが20分くらいになりますが、日中は3分くらいで100MBになってしまいます。

1TBのNASに録画する場合、1日で30GBなので、だいたい1カ月しか録画できません。

イメージ 1


では、どうするか。

カメラ単体では、圧縮率の高いMPEG4 H.264録画に対応していないため、録画された動画ファイルをパソコンで変換して対応します。


このとき、使用するのが「FFMPEG」と、先ほど公開した「FileWatcherManager」です。

○ FFmpeg

○ FileWatcherManager Ver.1.00aをリリースしました! ( ソフトウェア ) - あさりのみそしるダイアリー - Yahoo!ブログ



FileWatcherManager」は、このために作成したんですよね。
本当は、WebCamRecordControllerみたいな名前にして、作成した動画ファイルを加工するための専用プログラムにするつもりでしたが、いろいろな用途に使えた方が勝手がいいと思い、こういう形になりました。

スクリプトを書かないといけないので、ちょっと敷居が高いかもしれませんが、拡張性や自由度は高いかと。
必要ならフロントエンドでも作ればいいかと。



さて、ここからは手順です。

1.まず、先ほどのURLから、FFMPEGとFileWatcherManagerをダウンロードします。

2.FileWatcherManagerを適当なフォルダに展開します。
ずっと稼働するものなので、できれば決まった場所に置いておくことをおすすめします。

イメージ 2


3.ffmpegフォルダ内に、ダウンロードしたffmpeg.exeファイルを展開します。
その他のファイルも、必要なら展開します。

イメージ 3


4.スクリプトを編集します。
サンプルで付属しているwebcam_ctrl.fwsファイルをそのまま流用します。


exec manual-scan

group fileconv
  set do-process step-by-step
  set watch-subdir true
  set always-full-scan true
  set ignore-short-interval-update true
  set ignore-short-interval 3000
  set show-do-process-console false
  set ignore-events-when-do-command true
  watch dir
    \\(IPアドレス)\(共有フォルダー名)\(フォルダー名)\IPCamera_Record
  if file.property
    $filename$ == .+\.avi$
    $is_file_using$ == false
  then
    do process
      avi2mp4.bat "$filepath$" "$filedir$\$filename2$.mp4"
end-group


直すのは、赤字の部分だけです。
この設定は、ネットワークカメラの設定に依存します。

イメージ 4

Qwatchの設定>システム>NAS保存設定で指定したものを、そのまま赤字の部分に指定します。


5.start.batを実行します。

これで、ネットワークカメラで録画されたAVIファイルが、自動的にMPEG4 H.264形式に変換されます。

変換後のファイルは、Windows Media Player などで再生できます。


イメージ 5

動画ファイルの映像にもよりますが、ファイルサイズは元ファイルの3~60分の1にまで圧縮できます。

長ければ1TBで1年分くらい保存できそうですね!



ただし、動画を変換するためには、FileWatcherManagerを動かすパソコンが稼働している必要があります。

常時動作するパソコンがない場合は、普段使用するパソコンに環境を用意し、普段使いの裏で変換作業をするというのもいいかもしれません。

この辺の細かいところは、バッチファイルやスクリプトをいじって調整できると思います。

また、フォルダ容量をチェックして、サイズが指定した値以上になったらファイル移動なり削除なりをすることもできます。
フォルダサイズをチェックするグループをスクリプトに追加すると対応できると思います。

そのほか、バッチファイルをスタートアップに登録しておけば、Windows起動と同時に実行できて便利ですね。


おわり。