Skip to content

tetraloba/selmonica

Repository files navigation

使い方

コマンドのインストール

RTSP(Python)版

RTSP(C++)版

必要なパッケージのインストール

sudo apt install build-essential pkg-config libopencv-dev;

get_frame.cppをコンパイル

g++ -o get_frame get_frame.cpp `pkg-config --cflags --libs opencv4`;

ビルドされた実行ファイルget_frameをコマンドとして登録

sudo mv get_frame /usr/local/bin/get_frame;

USB(C++)版

必要なパッケージのインストール

sudo apt install build-essential pkg-config libopencv-dev;

get_frame_usb.cppをコンパイル

g++ -o get_frame_usb get_frame_usb.cpp `pkg-config --cflags --libs opencv4`;

ビルドされた実行ファイルget_frame_usbをコマンドとして登録

sudo mv get_frame_usb /usr/local/bin/get_frame_usb;

実行方法

RTSP(C++)版

以下のように実行する。

get_frame <"URL of RTSP"> <"file name of output image">

指定したRTSPストリームから1フレーム切り出して、指定したファイル名で保存する。

USB(C++)版

以下のように実行する。

get_frame_usb <"file name of output image">

指定したファイル名でキャプチャした画像が保存される。 USBカメラの選択は現時点で未対応。普通はfswebcamとか使った方が良い。 何故作ったのか <- Raspberry Piでfswebcamが不安定だったため。

定期実行の登録

crontab -ieを実行し、例えば以下のように登録する。

# make date dir for selmonica
0 0 * * * mkdir ~/selmonica/`date "+\%Y\%m\%d"`;
# capture per 1 minutes
* * * * * DATE=`date "+\%Y\%m\%d"`; URL="URL_OF_RTSP"; ls ~/selmonica/${DATE} | wc -l | xargs printf "${HOME}/selmonica/${DATE}/\%04d.jpg" | xargs /usr/local/bin/get_frame ${URL};

この例では毎分画像をキャプチャして0000.jpg, 0001.jpgのように連番で保存する。 ffmpegコマンドでタイムラプス動画などを作る時に便利。

(おまけ) タイムラプス動画の作成

ffmpegコマンドを使う。無ければsudo apt install ffmpeg -yなどでインストールすること。 例えば以下のように実行することで動画(.mp4)を生成できる。

ffmpeg -an -r 30 -i ~/selmonica/${DATE}/%04d.jpg -vcodec libx264 -pix_fmt yuv420p ~/selmonica/${DATE}.mp4;

-anはオーディオ無しの指定 -r 30はフレームレートを30fpsに指定 -i ~/selmonica/${DATE}/%04d.jpgでソースとなる画像を指定している。変数${DATE}には適切な値を入れること。(20240404等) ~/selmonica/${DATE}.mp4は出力する動画のパスである。 フルHDで1440フレームの場合、intel N100で1分弱かかった。

(おまけ) 動画の作成とファイル(画像/動画)削除コマンド

インストール

sudo install ~/selmonica/smcenc.bash /usr/local/bin/smcenc
sudo install ~/selmonica/smcrm.bash /usr/local/bin/smcrm

使い方

以下のように実行することで、指定した日付の動画(.mp4)を生成できる。

smcenc 20240417 # 2024年4月17日の動画を生成

ブレース展開を利用して複数の日付を纏めて動画にすることもできる。(動画ファイル自体は個別)

smcenc {20240413..20240417} # 2024年4月の13日から17日まで

また、以下のように実行することで指定した日付の動画及び画像を削除することができる。

smcrm 20240417 # 2024年4月17日の画像(フォルダごと)と動画を削除

smcencと同様にブレース展開も利用できる。
なお、現時点で、該当する日付の動画が無い場合は削除が行われない仕様である。
(動画化する前の画像を削除してしまうことを防ぐため。)
この仕様は今後変更の可能性がある。

About

self monitoring camera project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published