web-dev-qa-db-fra.com

Comment puis-je accéder au flux H264 à partir de ma caméra IP avec "Motion"?

Qu'est-ce que Motion?: Motion est une application de démon qui permet aux utilisateurs de Linux d'enregistrer des images de webcams et d'ipcams en fonction de la détection de mouvement ou des paramètres de temps. Vous trouverez un tutoriel sur la configuration de la version stable ici . Voici le site Web pour développeurs de Motion et documentation

Ma configuration: J'utilise une caméra IP bon marché Hikvision 2032 , qui est définie sur IP 192.168.1.199. Son grand public (H264) est:

rtsp: //192.168.1.199: 554/ISAPI/diffusion en continu/channels/101? auth = YWRtaW46MTIzNDU =

(Cela fonctionne bien dans VLC)

Comme on m'a dit, malheureusement, H264 n'est pas pris en charge par la version stable actuelle (3.2.12). Mais la dernière version des développeurs a une certaine intégration et il existe un fork optimisé pour cela.

L’installation des versions est toutefois très compliquée et j’essaie de recueillir les astuces que j’obtiens étape par étape dans les instructions ci-dessous:

Edit: A ce stade, j'ai téléchargé la version de Git. MrDave m'a recommandé ci-dessous et je pense avoir toutes les dépendances. Après avoir suivi les étapes de mes instructions rassemblées, il fonctionne enfin à une résolution de 1080x720.

J'ai le problème pour enregistrer des fichiers dans mon dossier d'images lorsque j'utilise 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).

Les images avi et jpg en pleine résolution sont vides ou non disponibles si j'essaie d'ouvrir.

5
empedokles

Pour obtenir le support rtsp et H264, vous devez créer l’application à partir du source. La version principale de la source est à https://github.com/sackmotion . Il existe cependant de nombreuses sources de cette source qui implémentent diverses fonctionnalités, notamment RTSP/H264. Si vous passez en revue les graphiques/onglets de réseau dans git, vous pouvez voir ces versions et déterminer celle qui convient le mieux à votre situation. Si vous n'êtes pas familiarisé avec la création à partir des sources, des instructions de base pour la compilation et la création de mouvements peuvent être trouvées dans la fourchette suivante https://github.com/Mr-Dave/motion dans le fichier INSTALL. Ces instructions ont été validées avec 12.04 mais peuvent nécessiter de légères modifications pour une utilisation avec 14.04.

Notez que pour la caméra que vous avez référencée, la ligne de commande à laquelle vous faites référence peut ne pas être correcte. Les formats que j'ai observés pour cette caméra sont rtsp://user:pwd@ipaddress:554/streaming/channels/1 (pour le flux principal) ou rtsp://user:pwd@ipaddress:554/streaming/channels/2 pour le flux secondaire. Avant de configurer la caméra en mouvement, vous devez valider la chaîne de connexion avec VLC ou avplay. Une fois qu'il a été confirmé qu'il fonctionne dans l'une de ces applications, vous pouvez copier la chaîne de connexion directement dans le fichier motion.conf en tant qu'URL netcam.

Enfin, si vous souhaitez économiser les ressources de la CPU pour cette caméra, il est préférable de configurer Motion pour surveiller le flux secondaire SD plus petit et d’utiliser les options de configuration pour déclencher une application d’enregistrement externe afin d’enregistrer le flux HD principal au format natif lorsqu’il se déplace. se produit.

4
MrDave

Je résume les instructions de MrDaves pour Ubuntu 14.04 et 15.04 dans un guide étape par étape:

Motion a besoin de nombreuses bibliothèques qui doivent être installées avant nous pouvons installer Motion .:

Tout d'abord , nous devons installer les packages requis pour Motion :

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

Deuxièmement , nous devons installer les bibliothèques LIBAV :

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

Important: Cette troisième étape facultative n’est nécessaire que si vous n’avez pas installé les bibliothèques LIBAV (étape secondes): Ensuite, vous devez installer Bibliothèques FFMPEG à partir du source:

Goto https://www.ffmpeg.org/download.html et obtenez la dernière source pour Ubuntu (via Git):

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

Et construisez-le à partir de la source (je n'ai pas trouvé d'instructions faciles).

Alternative plus facile pour l'étape 3 : Comme écrit ici on peut utiliser 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

Après tout cela, nous enfin pouvons installer Motion via Git:

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

(Motion semble développé d'une manière plutôt concurrente avec de nombreuses fourches, vous devez donc vérifier quelle version vous convient le mieux en regardant leur arbre de développement sur Git .)

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

changer dans le dossier de mouvement de votre homedrive:

cd motion

Configurez une configuration de base:

La commande en utilisant la route LIBAV (deuxième étape) est la suivante:

./configure

Et sans LIBAV:

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

Maintenant entrez:

make
Sudo make install

Allez au répertoire du fichier conf et renommez-le:

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

Enfin, commencez le mouvement:

motion
3
empedokles