2022年5月11日水曜日

motion: lightswitch

イベント周りの実装がかなり気になってきたので、少しソースを眺めていました。

気になっていたのは、動作検知して、検知状態に移ってから、解除されるまでの流れがきれいに出来上がっていて、その流れをうまくコントロールできるかどうか知りたかったからなのですが…。そもそもイベントループ中の無駄なループを排除したいという思惑はGW前からあったのですが、どのくらい処理が無駄になっているのかを比較したかったのですが、休み中は全く別の事で手一杯にw

その中で気になる逃げの実装になっている一つがlightswitch関連の設定値。

イベント関連の実装の手直しが結構最近行われていてこのような実装になっているのだと思います。現状では画像の差異の量を、lightswitchの条件下で強制的に0にしているのですが、このようなことを行うと後々痛い目を見そうな感じ。

実際にこの設定を使うと、結構色々なところで誤検知されているのを回避できるので便利そうなのですが、現状だと動作検知がかなり鈍くなっている気がします。

ついでに、昔は起動時や再起動時は普通に開始できたのですが、lightswitchの設定が無効の状態だと必ず最初に動作検知状態に突入し、処理が行われてしまいます。

停止と開始を切り分けず、再始動させれば発生しない感じではあるのですが、設定値をガンガンいじっている現状ではこの動作もかなり目につきます。

なので、この辺ちょっとテコ入れしたいかな…


あと、気づいてなかっただけかもしれませんが、昔は動作検知の出力と実際のカメラ画像はどちらかしか出力できなかったと思うのですが、現状では同時に出力させることができるというとても便利な機能に仕上がってたりして、検知反応を簡単に見れるようになっているのでそっちもテコ入れしたかったりw

まぁでもそこまで触れるかなぁ…

ffmpegのパラメータ周りも、codecの指定もできるようになっていて便利そうだったりするのですが、イマイチうまくいかなかったり、motionプロセス保護のためにblacklistまで用意して、特定のcodecのガードをかけていたり。ガードはすぐ外せるようになってるのですが、ガードがかかってないcodecを指定すると出力がまともにできなかったりするのでそっちも気になります。

0 件のコメント:

コメントを投稿