web-dev-qa-db-ja.com

「モーション」を使用してIPカメラからH264ストリームにアクセスするにはどうすればよいですか?

モーションとは?:モーションは、Linuxユーザーがモーション検出または時間設定に基づいてウェブカメラとipcamの写真を記録できるデーモンアプリケーションです。安定版リリースのセットアップ方法のチュートリアルは here にあります。こちらが Motion developer website and documentation です

私の設定:安い Hikvision 2032 IP 192.168.1.199に設定されているIPカメラを使用しています。その主流(H264)は次のとおりです。

rtsp://192.168.1.199:554/ISAPI/streaming/channels/101?auth = YWRtaW46MTIzNDU =

(VLCで正常に動作しています)

残念ながら、Motionは現在の安定版リリース(3.2.12)でH264をサポートしていません。しかし、最新の開発者ビルドにはある程度の統合があり、最適化されたフォークがあります。

ビルドのインストールは非常に複雑ですが、以下の投稿でステップバイステップの手順で得られるヒントを収集しようとしています:

Edit:この段階で、Gitバージョンをダウンロードしました。MrDaveは以下を推奨しており、すべての依存関係があると思います。収集した手順の手順を実行した後、最終的に1080x720の解像度で動作します。

1920x1080を使用している場合、画像フォルダーにファイルを保存する問題があります。

nuc@nuc:/usr/local/etc$ motion
[0] [NTC] [ALL] conf_load: Processing thread 0 - config file /usr/local/etc/motion.conf
[0] [ALR] [ALL] conf_cmdparse: Unknown config option "sdl_threadnr"
[0] [NTC] [ALL] motion_startup: Motion trunkREVUNKNOWN Started
[0] [NTC] [ALL] motion_startup: Logging to syslog
[0] [NTC] [ALL] motion_startup: Using log type (ALL) log level (NTC)
[0] [NTC] [ENC] ffmpeg_init: ffmpeg LIBAVCODEC_BUILD 3562596 LIBAVFORMAT_BUILD 3555176
[0] [NTC] [ALL] main: Thread 1 is from /usr/local/etc/motion.conf
[0] [NTC] [ALL] main: Thread 1 is device: rtsp://192.168.1.199:554/ISAPI/streaming/channels/101?auth=YWRtaW46MTIzNDU= input -1
[0] [NTC] [ALL] main: Stream port 8081
[0] [NTC] [ALL] main: Waiting for threads to finish, pid: 9028
[1] [NTC] [ALL] motion_init: Thread 1 started , motion detection Enabled
[1] [ALR] [NET] netcam_start: Network Camera thread starting... for url (rtsp://192.168.1.199:554/ISAPI/streaming/channels/101?auth=YWRtaW46MTIzNDU=)
[0] [NTC] [STR] httpd_run: motion-httpd testing : IPV4 addr: 127.0.0.1 port: 8080
[0] [NTC] [STR] httpd_run: motion-httpd Bound : IPV4 addr: 127.0.0.1 port: 8080
[0] [NTC] [STR] httpd_run: motion-httpd/trunkREVUNKNOWN running, accepting connections
[0] [NTC] [STR] httpd_run: motion-httpd: waiting for data on 127.0.0.1 port TCP 8080
[1] [NTC] [NET] netcam_rtsp_open_context: Using tcp transport
[1] [NTC] [NET] netcam_connect_rtsp: Camera connected
[1] [NTC] [ALL] image_ring_resize: Resizing pre_capture buffer to 1 items
[1] [ALR] [NET] netcam_handler_loop: Camera handler thread [2] started
[1] [NTC] [STR] http_bindsock: motion-stream testing : IPV4 addr: 127.0.0.1 port: 8081
[1] [NTC] [STR] http_bindsock: motion-stream Bound : IPV4 addr: 127.0.0.1 port: 8081
[1] [NTC] [ALL] motion_init: Started motion-stream server in port 8081 auth Disabled
Memoryaccesserror (core image written).

フル解像度のaviとjpgは空になっているか、開こうとしても利用できません。

5
empedokles

RtspおよびH264サポートを取得するには、ソースからアプリケーションをビルドする必要があります。ソースのプライマリバージョンは https://github.com/sackmotion にあります。しかし、このソースには多くの分岐点があり、RTSP/H264を含むさまざまな機能を実装しています。 gitのグラフ/ネットワークタブを確認すると、これらのバージョンを確認して、状況に最適なバージョンを判断できます。ソースからのビルドに慣れていない場合、モーションのコンパイルとビルドの基本的な手順は、INSTALLファイルの次のフォーク https://github.com/Mr-Dave/motion にあります。これらの手順は12.04で検証されていますが、14.04で使用するには若干の修正が必要な場合があります。

参照したカメラについては、参照したコマンドラインが正しくない可能性があることに注意してください。このカメラで確認した形式は、rtsp://user:pwd@ipaddress:554/streaming/channels/1(プライマリストリーム用)またはrtsp://user:pwd@ipaddress:554/streaming/channels/2セカンダリストリーム用です。動作中のカメラをセットアップする前に、VLCまたはavplayで接続文字列を検証する必要があります。これらのアプリケーションのいずれかで動作することが確認されたら、接続文字列をmotion.confファイルにnetcam urlとして直接コピーできます。

最後に、このカメラのCPUリソースを節約したい場合は、小さなSDセカンダリストリームを監視するようにモーションをセットアップし、構成オプションを使用して外部録画アプリケーションをトリガーして、モーション時にメインHDストリームをネイティブ形式で録画することをお勧めします発生します。

4
MrDave

Ubuntu 14.04および15.04のMrDavesの手順をステップバイステップガイドで要約します。

Motionにはインストールが必要な多くのライブラリが必要ですbefore Motionをインストールできます。

最初に、インストールする必要がありますMotionに必要なパッケージ

Sudo apt-get install autoconf automake build-essential libtool libjpeg8-dev libzip-dev

2番目LIBAVライブラリをインストールする必要があります。

Sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev libav-tools libswscale-dev

重要:このオプションの3番目の手順は、LIBAVライブラリをインストールしていない場合にのみ必要です(秒の手順):次に、ソースからFFMPEGライブラリをインストールする必要があります。

https://www.ffmpeg.org/download.html に移動して、Ubuntuの最新ソースを取得します(Git経由):

Sudo apt-get install git
cd ~
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

そして、ソースからビルドします(簡単な手順は見つかりませんでした)。

ステップ3のより簡単な代替手段:書かれているとおり here できるse apt-get:

Sudo add-apt-repository ppa:jon-severinsson/ffmpeg
Sudo apt-get update
Sudo apt-get install ffmpeg
Sudo apt-get install frei0r-plugins

このすべての後、最終的にはGitを介してモーションをインストールできます。

Sudo apt-get install git
cd ~
git clone https://github.com/your_favorite_fork

(Motionは多くのフォークでかなり競合する方法で開発されているように見えるため、Gitの開発ツリーでを見て、どのバージョンが最適かを確認する必要があります。)

example: git clone https://github.com/Ken-M/motion

ホームドライブのモーションフォルダーに変更します。

cd motion

基本的なセットアップを構成します。

LIBAVルートを使用したコマンド(2番目のステップ)は次のとおりです。

./configure

そしてLIBAVなし:

./configure --with-ffmpeg=$HOME/ffmpeg --with-ffmpeg-headers=$HOME/ffmpeg/include

次に入力してください:

make
Sudo make install

Confファイルのディレクトリに移動し、confファイルの名前を変更します。

cd /usr/local/etc
Sudo mv motion-dist.conf motion.conf

最後にモーションを開始します。

motion
3
empedokles