MotionのWebインターフェイス

debianでビデオサーバーを更新した後、ビデオ監視システムを作り直すことにしました。

Motionを離れることが決定されましたが、アーカイブされたレコードを表示するには、よりヒューマンインターフェースが必要でした。

インターネットでの定期的な検索では、受け入れ可能な結果が得られなかったため、独自の製品を作成することにしました。

しばらくためらいましたが、選択はRailsで決まりました。 宗教はありません。このフレームワークとすばらしいプログラミング言語についてもっと知りたかっただけです。 PostgreSQLはDBMSとして使用されます。

ボンネットの下での作業の結果...



手始めに、モーションの設定についてもう少し詳しく説明します。

可能であれば、純粋なHTML5を使いたいと思っていたため、oggへのファイル書き込みのサポートを含め、モーションを手動で再インストールする必要がありました。 幸いなことに、このプログラムの作成者はそれを実装しました。 アセンブリとインストールのプロセスはプロジェクトページで詳しく説明されているため、特にディストリビューションごとに異なるため、ここでは説明しません。 ホームページwww.lavrsen.dk/foswiki/bin/view/Motion/MotionGuideInstallationへのリンク。

製品のセットアップのみに焦点を当てます。

モーションはもともとパッケージからインストールされていたため、再インストール後、構成フォルダーを/ etcから/ usr / local /などに転送しませんでした。

そしてもう1つのポイントとして、モーション自体はrunitを使用して起動されるため、設定ではデーモンモードで無効になります。

力の調整は次のとおりです。

1.モーション設定は/ etc / motionにあります。

2.ビデオは、カメラ名の付いたフォルダ内の/ videoディレクトリにマウントされた別のハードディスクに書き込まれます。

3.レコードはデータベースに保存されます。データベースには、イベントの時間、イベントファイルへのフルパス、およびファイルの種類(私の場合はビデオ)に関する情報が保存されます。

テーブル構造

CREATE TABLE records

(

id serial NOT NULL,

thread integer,

filename character varying(255),

frame integer,

file_type integer,

event_timestamp timestamp without time zone,

created_at timestamp without time zone NOT NULL,

updated_at timestamp without time zone NOT NULL,

CONSTRAINT records_pkey PRIMARY KEY (id )

)

WITH (

OIDS=FALSE

);

ALTER TABLE records

OWNER TO motion;



-- Index: thread



-- DROP INDEX thread;



CREATE INDEX thread

ON records

USING btree

(thread );






4.カメラから(リアルタイムで)ライブ表示するには、モーションインターフェイスを使用します。



構成の主な変更は次のとおりです。

/etc/motion.conf

ffmpeg_video_codec ogg



webcontrol_port 8080

webcontrol_localhost off(Webインターフェイスが別のサーバーで実行される場合)

webcontrol_html_output on

webcontrol_authentication login:pass



レコードへのsql_query insert(スレッド、ファイル名、フレーム、file_type、event_timestamp、created_at、updated_at)値( '%t'、 '%f'、 '%q'、 '%n'、 '%Y-%m-%d %T '、NOW()、NOW())



それに応じて、データベースに接続するための設定。



次に、カメラを接続します

スレッド/etc/motion/thread1.conf

スレッド/etc/motion/thread2.conf

...

スレッド/etc/motion/threadN.conf

Nはカメラの数に依存します。



threadX.confのキーポイント(Xは任意の数字)

stream_port PortNumber-このポートは、Webインターフェースでカメラを設定するときに「ストリーミングポート」フィールドに書き込む必要があります。

これらは、モーションをセットアップする際の主な変更点です。 この記事では、モーションの構成方法については説明しません。

Railsのセットアップについては、記事habrahabr.ru/post/140910で詳しく説明されています。 NodeJSのインストールも必要になる場合があります-github.com/joyent/node/wiki/Installing-Node.js-via-package-manager



次に、インターフェースの構成に直接進みます。

1. gitサイトを使用してクローンを作成します。

Bitbucket:

git clone webdev4u@bitbucket.org/webdev4u/motion_web.git

Github:

git clone github.com/webdev4u/motion_web.git

2. config / settings.local.ymlの名前をconfig / settings.ymlに変更し、motionが実行されているサーバーのアドレスを入力します。

3. config / database.yml.exampleの名前をconfig / database.ymlに変更し、そこにデータベースの設定を入力します。

4. adminユーザーのdb / seeds.rbのデータを変更します。

5. rake db:移行

6. rake db:シード

7.検証のためにrailsを実行できます。 サーバーはポート3000でリッスンします。 すべてがうまくいけば、あなたは働くことができます。

8.最後に、クラウンのタスクを設定してベースをクリーニングします。 デフォルトでは、レコードは21日間保存されますが、ファイルapp / models / record.rbの行12でこのパラメーターを変更できますが、lib / tasks / crontask.rake行ではより適切です

Record.clean_old_records

に置き換える

Record.clean_old_records Required_number_days。

その後、チームを実行します

いつでも--update-crontabがサイトの代わりに動作するユーザーの下から。



メインページのスクリーンショット:



ログインページ:



ライブビュー:



カメラリスト:



アーカイブを表示:



ユーザーを追加:



カメラを追加する:








All Articles