
Le sujet de la vidéosurveillance est devenu aigu pour moi avec l'avènement du logement suburbain. Sur Internet, vous trouverez de nombreuses informations sur l'organisation de la vidéosurveillance. Malheureusement, la plupart des options se résumaient à l'achat de kits prêts à l'emploi en Chine. Des amis ont entendu beaucoup de critiques à cet égard. D'une manière ou d'une autre, il a même lui-même participé à la mise en place du matériel acheté chez Aliexpress. Quelque part la moitié des fonctions déclarées ne fonctionnaient pas comme indiqué, certaines des options ne fonctionnaient pas du tout, bien que le bureau d'enregistrement ne soit pas bon marché. Et il y avait beaucoup de telles critiques et opinions. En outre, beaucoup critiquent le fait que les vidéos soient stockées sur des services cloud chinois. Et puis la pensée est venue - et si vous essayez de créer votre propre DVR avec un minimum de fonctionnalités? Quoi? À ce moment, j'ai commencé à m'impliquer dans Linux, à écrire des applications avec des fonctionnalités élémentaires sur bash, à expérimenter le web ... En principe, tout ce dont vous avez besoin pour résoudre le problème. Aussitôt dit, aussitôt fait.
Allons-y. Sélection de fer
Un routeur TP-LINK TL-MR3020 populaire avec OPENWRT à bord a été choisi comme sujet de test.

Caractéristiques du routeur:
- Processeur 300 MHz MIPS;
- 32 Mo de RAM;
- puce flash pour 4 Mo;
- Port USB 2.0;
- Port RJ-45 avec 100 Mb full duplex;
- Broches GPIO, à la fois libres et avec LED;
- Bouton et interrupteur sur les broches GPIO;
La caméra est une caméra IP HD chinoise ordinaire commandée en Chine. Nous prenons une vidéo sur le protocole RTSP. L'utilitaire openRTSP nous a aidé avec cela, qui faisait partie du référentiel OPENWRT et avait toutes les fonctionnalités nécessaires. Nous avons décidé de travailler avec le service cloud Yandex.Disk via le protocole webdav. Ce service fournit 10 Go d'espace disque libre à chaque nouvel utilisateur. Eh bien, là, vous pouvez acheter au besoin.
Essence de l'idée
En utilisant le protocole rtsp, nous prenons le flux vidéo de la caméra IP. Nous créons un répertoire tampon. Nous y enregistrons des vidéos. En utilisant l'utilitaire CURL via le protocole webdav, nous envoyons des vidéos sur le cloud. Dans notre cas, il s'agit de Yandex.Disk.
Essayez
Après avoir connecté la caméra IP via Ethernet au routeur, nous avons lancé un test d'enregistrement d'un clip de 10 secondes au format .mp4 sur le disque Yandex:
OPENRTSP -V -B 51200 -b 200000 -4 -f 25 -d 10>/tmp/ya_disk/test.mp4
Ensuite, ils l'ont envoyé dans le cloud:
curl -v -m 180 --stderr /tmp/log -k -u $email:$pass -T /tmp/ya_disk/test.mp4 https://webdav.yandex.ru/
Ça marche!
Les tests ont commencé avec différentes longueurs de clips, différents intervalles d'enregistrement, un enregistrement périodique. En général, les tests ont réussi. Cependant, il y avait un problème avec l'enregistrement de clips très courts (de l'ordre de 5 secondes). Les clips ont été enregistrés à une vitesse plus élevée et leur durée était inférieure à l'ensemble. Ils ont résolu le problème en éditant les sources openRTSP: ils ont veillé à ce que le programme respecte strictement la valeur fps entrée par l'utilisateur, et non prise à partir de SDP, a également supprimé des trames de moins de 100 octets.
Nous pensons à la fonctionnalité
Après des tests réussis, il a été décidé de réaliser une interface de contrôle. À cette époque, je commençais à me familiariser avec le Web, alors j'ai décidé de faire une version Web. Pile technologique côté utilisateur (frontend): HTML5, CSS3, JQUERY, AJAX. Côté fer (backend): UHTTPD, CGI, BASH. Ils ne sont pas devenus intelligents avec la conception, ils ont utilisé la disposition en mosaïque des boutons de la page principale.

Les pages de gestion et de saisie des données ont été créées à l'aide de JQUERY. Avec les premiers résultats positifs de la gestion d'un
routeur de bureau d' enregistrement, nous avons commencé à ajouter des fonctionnalités. C'était peut-être une erreur. En raison de l'inexpérience, nous avons négligé les tests. Maintenant, quand il y a beaucoup de fonctionnalités, c'est difficile à tester. En raison du manque de discipline dans l'écriture de code au début du développement, il devient de plus en plus difficile de comprendre ce qui est écrit. Des échecs apparaissent de temps en temps, nous les éliminons bien sûr, mais il serait beaucoup plus facile de le faire à des stades de développement antérieurs et par étapes.
Ainsi, la fonctionnalité:
- Prise en charge de toute caméra IP;
- Prise en charge des modems 3G / 4G;
- Enregistrez sur le stockage cloud (gratuit) et / ou sur un lecteur USB;
- Enregistrement périodique et / ou enregistrement de mouvement;
- Boucle sur disque;
- Réglage de la longueur du rouleau;
- Modes d'enregistrement: par heure, par mouvement, jour, nuit;
- Travail autonome en cas de panne de courant (environ 20 min);
Implémentation côté client
Dans le menu des paramètres de l'enregistreur, il y a 6 boutons: WIFI, ENREGISTREMENT, APPAREIL PHOTO, 3G / 4G, STOCKAGE et AIDE. Donc, dans l'ordre:
WIFI

Ici, vous pouvez configurer l'enregistreur Wi-Fi. Le WI-FI peut fonctionner en 2 modes - «client» et «point d'accès». En mode "Point d'accès", tout est clair: numéro de canal, SSID, type de cryptage, mot de passe. En mode "client", le bureau d'enregistrement est connecté à n'importe quel point d'accès wi-fi.
Par conséquent, dans ce mode, un modem 3G / 4G n'est pas nécessaire. Afin que l'utilisateur ne perde pas le registraire lors de la connexion du client au point d'accès, nous avons implémenté physiquement le mode répéteur.
La seule chose à laquelle vous devez faire attention est que lorsque vous connectez le bureau d'enregistrement au point d'accès, vous devez vérifier si l'appareil mobile de l'utilisateur a «sauté» vers un autre point d'accès wi-fi, car Le point d'accès du registraire Wi-Fi disparaîtra pendant un court instant. Le champ «Mode de récupération» est une garantie que vous ne «perdrez» pas le bureau d'enregistrement. Il s'agit d'une heure garantie lorsque vous l'allumez, lorsque l'utilisateur peut configurer l'appareil ou allumer le point d'accès. Après le mode de récupération, il ira automatiquement à la page du menu principal. Cette partie de la fonctionnalité est toujours en cours de test et temporairement désactivée.
ENREGISTREMENT

Champ d'indication de la date et de l'heure, menu «Set time», «Record in local storage» et «Record in cloud storage».
Réglage de l'heure. En cliquant sur le bouton «Changer l'heure», vous pouvez changer l'heure et la date. De plus, à l'aide du curseur, l'heure du début et de la fin de la journée est définie (pour tout le monde, elle est individuelle). Ceci est fait afin d'optimiser les modes de fonctionnement du registraire à différents moments de la journée.
Écrivez dans le stockage local. Ici, vous pouvez activer ou désactiver l'enregistrement sur un support externe, activer ou désactiver l'enregistrement par mouvement et / ou l'enregistrement périodique avec la possibilité de définir la durée du clip enregistré et la période d'enregistrement des clips (en mode d'enregistrement périodique).
Écrivez dans le stockage cloud. Ici, comme dans le paragraphe précédent, l'enregistrement dans le stockage cloud est configuré. Un élément a été ajouté pour configurer un service cloud, où vous pouvez spécifier sur quel cloud de service enregistrer (pour le moment, cela ne fonctionne qu'avec un disque Yandex), le nom d'utilisateur et le mot de passe de votre compte Yandex.
AIDE

Le contenu des éléments de menu de l'interface, ainsi que l'objectif de chacun d'entre eux, sont décrits par des points.
CAMERA
Adresse de flux RTSP de la caméra. Les données de ce champ peuvent être trouvées en visitant la page des paramètres de la caméra IP. À l'avenir, nous prévoyons de recevoir ces données via ONVIF et le champ sera rempli automatiquement. Alors que le fonctionnement stable ONVIF sur toutes les caméras IP ne peut que rêver.
Le délai entre les rouleaux. Paramètre qui détermine la pause en secondes lors de l'enregistrement de films. Il est utilisé en mode d'enregistrement de mouvement. Vous permet d'enregistrer le trafic Internet avec des mouvements constants ou fréquents dans le cadre.
Vidéo de la caméra. Utile pour contrôler l'image enregistrée lors de l'installation de la caméra.
3G / 4G

Cela affiche des informations sur votre connexion Internet à l'aide d'un modem 3G / 4G. Les données sont mises à jour toutes les 3 secondes. Utile pour surveiller la qualité de la communication lors de l'installation de la caméra.
STOCKAGE

Il existe deux sous-menus - «Stockage local» et «Yandex.Disk». Lorsque vous sélectionnez le premier, nous entrons dans l'arborescence des fichiers du support externe connecté, lorsque vous sélectionnez le second, nous allons sur Yandex.disk.
Version mobile de l'interface Les vidéos enregistrées peuvent être visionnées sur Yandex.Disk avec le lecteur intégré du service. De plus, la vidéo peut être téléchargée et visionnée localement par n'importe quel lecteur vidéo. Le stockage des vidéos enregistrées est organisé comme suit:

CAM - dossier pour enregistrer des vidéos du registraire;
MOTION - un dossier pour enregistrer des vidéos enregistrées par mouvement dans le cadre;
TIME - dossier pour l'enregistrement de vidéos enregistrées à une fréquence spécifiée;
YYYY-MM-DD - dossier pour les vidéos enregistrées pendant la journée;
DDMMYYYY-HH_MM_SS.mp4 - vidéos enregistrées au format mp4;
Organisation du stockage des fichiers sur Yandex.Disk Qu'y a-t-il à l'intérieur? Implémentation côté serveur
Comme je l'ai écrit ci-dessus, le routeur TP-LINK TL-MR3020 avec OPENWRT à bord est devenu le premier expérimental. Barrier Breaker version 14.07. Au début du test, c'était la dernière version. Maintenant mis à jour vers LEDE. OpenRTSP n'était pas dans le référentiel de cette version, nous avons donc ajouté l'utilitaire nous-mêmes, tout en supprimant tout ce qui est superflu.
Après des tests réussis, nous avons commencé à envisager d'autres routeurs avec une architecture similaire. Nous recherchions une plate-forme plus adaptée au bureau d'enregistrement en termes de dimensions et de caractéristiques. L'idée est qu'en faisant clignoter l'un des routeurs avec un firmware modifié et en y connectant une caméra IP avec un modem 3G / 4G, vous obtenez un registraire. La liste des appareils sur lesquels la fonctionnalité du registraire a été testée:
- TP-LINK TL-MR3020;
- HAME A5;
- CARAMBOLLA2;
- UNWIREDONE;
- Skywork skw71;
- TP-LINK TL-MR10U (avec batterie);
- TP-LINK TL-MR3040 (avec batterie);
- TP-LINK TL-MR3220 V: 2.3 (4 ports Ethernet);
Nous avons essayé d'essayer les cartes de routeurs dans le cas. L'idée était qu'à part le boîtier, rien ne sortait et ne pendait pas, et le boîtier lui-même était de taille minimale. Par conséquent, comme prévu par la 3G / 4G, le modem doit être à l'intérieur du boîtier. Nous avons donc obtenu un prototype de rue de
ferme collective basé sur la carte TP-LINK TL-MR3020:




Bien sûr, nous avons préféré des routeurs avec des tailles minimales. Par conséquent, nous avons décidé d'essayer le routeur chinois HAME A5, d'imprimer un boîtier et de voir ce qui se passe:


Sur HAME A5, le firmware de notre bureau d'enregistrement était instable, le routeur a constamment raccroché et redémarré. Cela était probablement dû à une surchauffe grave. J'ai donc dû l'abandonner au profit d'une option plus fiable et éprouvée.
Nous avons essayé de nombreuses options, mais rien n'est meilleur que le mien. Par conséquent, ils ont décidé de distribuer leur carte avec un module de CARAMBOLLA2 et la possibilité de vie de la batterie.

Caractéristiques de CARAMBOLLA2:
- Processeur AR9331, 400 MHz;
- 64 Mo de RAM DDR2;
- FLASH 16 Mo;
- 802.11 b / g / n, 2,4 GHz, 1x1 SISO, débit de données maximal de 150 Mo / s, puissance de sortie de 21 dB;
- Tension d'alimentation 3,3 V;
- Dimensions 28 x 38 mm;
Lors de la conception de la carte, il est devenu clair qu'elle se révèle assez petite:


Pourquoi ne pas l'installer directement dans la caméra? Nous résolvons donc immédiatement le problème avec le cas du registraire. Alors ils l'ont fait. Voici ce qui s'est passé:




La photo montre que la carte enregistreur est montée parallèlement aux cartes de caméra sur les racks. Pour des raisons de refroidissement de la puce, il est préférable d'utiliser des caméras IP avec un boîtier métallique et de fabriquer un radiateur afin que la chaleur soit évacuée vers le boîtier. Pour connecter un modem 3G / 4G et / ou un lecteur USB, un fil de caméra IP Ethernet standard a été utilisé. L'autonomie de la caméra avec l'enregistreur à l'intérieur fournit une batterie de 700mAh 3.7V. La fonction batterie sera utile en cas de panne de courant délibérée. Cette batterie est suffisante pour environ 20 minutes de fonctionnement du DVR avec l'appareil photo.
Donnez plus de caméras!
En outre, des expériences ont été menées avec l'enregistrement de vidéos à partir de plusieurs caméras IP. Les expériences ont montré que l'enregistrement de vidéos à partir de 2 caméras IP fonctionnait de manière assez stable, nous envisageons donc la possibilité de créer un enregistreur dans un boîtier séparé avec la possibilité de connecter 2 caméras IP. Nous testons maintenant le travail du registraire avec trois et quatre caméras IP. Les résultats ne sont pas encore clairs. Les caméras seront alimentées par l'enregistreur via PoE passif.

La fonctionnalité de cette option peut être utile, par exemple, lors de l'installation de caméras avec intersection de zones de surveillance. Pour travailler avec un grand nombre de caméras, vous pouvez regarder dans la direction des mini-ordinateurs actuellement très populaires. Mais vous devez comprendre que la consommation d'énergie de ces appareils est un ordre de grandeur plus élevé, ainsi que le prix.
Comment appelez-vous un bateau pour qu'il navigue
Vous avez probablement remarqué l'inscription sur le tableau. Nous pensions que cela ne valait rien pour un projet sans titre. Ils sont venus avec un nom modeste - "Vip-Cam" (Video-Ip-Camera). Eh bien, la version avec plusieurs caméras - "Vip-Box".
Et ensuite?
Plans futurs:
- Optimisez et testez le code. Obtenez un appareil de travail stable;
- Effectuer des recherches sur la possibilité de configurer une caméra IP via le menu de l'application Web;
- Explorer la possibilité d'intégrer un DVR dans un système domestique intelligent;
- Continuez de tester le fonctionnement du DVR avec deux caméras IP ou plus;
- Effectuer des tests sur le fonctionnement de la caméra avec une batterie solaire;
- Création d'une modification du DVR avec prise en charge des caméras IP 2 x;
- Ajout de fonctionnalités pour la configuration à distance du DVR et de la caméra IP;
- Ajout de la possibilité de réaliser à distance une vidéo à la demande;
Les sources du projet sont
ici .
Nous avons donc actuellement mis en œuvre l'idée d'un mini-enregistreur cloud. Le projet est mis en œuvre dans votre temps libre, par conséquent, le temps de développement est considérablement retardé. En conséquence, nous avons un prototype fonctionnel d'un DVR de petite taille qui peut enregistrer gratuitement des vidéos sur le stockage cloud. Il y a encore beaucoup de travail, mais l'une des tâches a été résolue - il est tout à fait possible de créer un bureau d'enregistrement de haute qualité et sans précédent. Merci de votre attention.