Sochi.Camera: comment un fournisseur régional a créé un site de diffusion vidéo avec une visite de 500 000 personnes par mois

Sochi.Camera - un site avec des flux de diffusion de plus de 300 caméras Web installées à Sotchi et ses environs. Le site et l'ensemble du service sont à but non lucratif, créés et maintenus à leurs frais par le fournisseur d'accès Internet local "Business Connection" , pendant près de 10 ans.

En créant un projet, nous avons essayé de nombreux modèles de caméras vidéo externes (fixes, rotatives, mobiles), en les modifiant et en les adaptant à nos besoins. Nous avons essayé plusieurs solutions de serveur, en les évoquant avec les développeurs. Ils ont eux-mêmes écrit des applications mobiles pour Android et iOS. Le projet s'est avéré très difficile, mais nous avons progressivement élaboré chaque élément du système dans un état de haute efficacité. Le développement continue, mais il y a maintenant quelque chose à dire.




Ceci est le premier article de revue. Dans ce document, nous parlerons de la façon dont ce projet a été lancé et développé, en quoi consiste la solution technique, comment installer une webcam dans une cage par un lion (spoiler - organiser avec un lion), et pourquoi des gens de toute la Russie regardent Sotchi via notre site Web. Si cet article vous semble intéressant, nous pouvons parler du projet plus en détail.

Côté technique, le projet de Sotchi, la caméra est divisée en trois parties:

1) prendre une image;

2) le transférer sur le serveur de diffusion vidéo;

3) afficher le flux sur le site.

Et tout cela est diffusé.

Allons séquentiellement.

Caméras.

Les caméras sur le réseau sont différentes. Depuis près de 10 ans, ils ont essayé de nombreux modèles, dont certains testés sont sur le réseau. Les caméras sont unifiées, standard, le protocole que nous utilisons - RTSP, est pris en charge par presque tous les modèles standard. Le coût des caméras a chuté de façon spectaculaire depuis 2008 et la qualité de l'image a considérablement augmenté. Ensuite, une simple caméra statique a coûté environ 40 mille roubles, aujourd'hui pour le même prix, vous pouvez acheter un Full HD rotatif avec la possibilité de "patrouiller par points", le mettre sur la tour, et cela donnera une image dynamique. Une caméra statique ordinaire ne coûte aujourd'hui que 5 à 7 000 euros (n'oubliez pas les remises).

La qualité d'image des caméras modernes est presque la télévision, ce n'est pas du tout l'image de la webcam à laquelle nous sommes tous habitués - un petit carré sombre avec une fréquence de 1 image par seconde.



Récemment installé sur une paire de modèles: Hikvision
et SNR

Ils sont à faible bruit, avec un bon effet de prise de vue de nuit grâce à la matrice moderne.
Chaque caméra offre deux flux: Full HD (vitesse 4-6 Mbit / s) et SD (512 Kbit / s), le site dispose de commutateurs HD / SD. Ceci est fait pour que les utilisateurs avec un Internet lent puissent activer le mode SD avec parcimonie. Il est également utilisé dans nos applications mobiles, car sur le petit écran, la différence entre Full HD et SD est presque imperceptible. Bien sûr, il existe de nombreuses caméras sur le marché avec une résolution supérieure à Full HD, par exemple 4MP. Nous avons essayé de les utiliser, mais la pratique a montré l'inadéquation de ces autorisations pour les diffusions en ligne sur Internet. Premièrement, tous les canaux Internet ne transmettront pas cela sans perte, et tous les appareils clients ne peuvent pas afficher ce flux sans douleur. En conséquence, la diffusion peut s'accompagner de saccades et d'artefacts, après tout, Internet n'est pas un réseau local. Eh bien, pour couronner le tout, il s'est avéré que la grande majorité des utilisateurs regardent les caméras en mode fenêtre plutôt qu'en mode plein écran, c'est-à-dire qu'en sortie, la différence de débits et de résolutions ne leur est pas visible du tout. En conséquence, nous avons même transféré des appareils photo 4 mégapixels en mode 2MP 1920x1080. En ce qui concerne le logiciel, dans les caméras elles-mêmes, le firmware d'usine standard, en règle générale, nous n'y changeons rien.

Il y a maintenant environ 318 caméras en accès général. L'enregistrement est effectué sur ~ 115-120 caméras, qui sont liées à la situation du trafic. Le dossier est nécessaire en raison de la nécessité d'analyser les accidents, ce qui arrive assez souvent. Nous n'enregistrons pas de caméras qui regardent la nature, les couchers de soleil, les montagnes, etc. Les serveurs d'enregistrement sont une ressource coûteuse, en vain nous essayons de ne pas la dépenser.

En ce qui concerne la confidentialité - les caméras sont installées de sorte que les visages ne soient pas lisibles. Nous installons des caméras panoramiques pour que la scène générale soit visible, par exemple, une machine jaune frappe une bleue, un feu de circulation y brûle tel ou tel, rien de plus. Néanmoins, la police de la circulation et la police souvent, chaque semaine, et même parfois, tous les jours: il leur est demandé de montrer les dossiers.





L'installation et l'entretien des caméras sont effectués par des entrepreneurs. En même temps, s'il y a des problèmes, suivez les instructions trop précisément. Il faut faire plus que selon les instructions, prendre en compte, par exemple, les différences de pression et de température. Dans le processus, il y avait des astuces, par exemple, la connexion d'un câble Ethernet à l'intérieur du corps de la caméra, et non dans le boîtier d'installation ou le «barillet» de connexion standard. Isoler les webcams est beaucoup plus sérieux que les moyens habituels, de sorte qu'elles fonctionnent silencieusement pendant plusieurs années sans humidité à l'intérieur.

Nous ne payons rien pour le placement des caméras, c'est un point fondamental, car notre projet est à but non lucratif - l'image est dans le domaine public, nous n'en gagnons rien. Donc, si quelqu'un ne veut pas publier gratuitement, nous n'y publions pas. La ville possède de nombreux endroits magnifiques et beaucoup qui veulent mettre nos caméras. Les propriétaires d'immeubles sont plutôt disposés à autoriser l'installation, tout simplement parce que nous sommes devant la caméra pour annoncer gratuitement ces établissements. Notre fréquentation est assez élevée pour un site régional, plus de 500 000 personnes par mois, nous rivalisons avec les grands portails d'information locaux. Le problème est donc d'amener la chaîne à un endroit intéressant plutôt que de placer la caméra.



En général, après avoir trouvé les solutions optimales pour différentes situations d'installation, les caméras représentent environ 10% de la composition du projet de Sotchi. L'essentiel n'est pas en eux, mais plutôt dans les canaux de transmission vidéo et les logiciels de diffusion sur le site.

Canaux de transmission vidéo.

«Business Communication» est un fournisseur d'accès Internet, opérateur télécom, nous avons notre propre réseau de ville, un grand nombre de nœuds. Nous n'avons donc pas besoin de louer de chaînes pour la transmission vidéo, ni le «dernier kilomètre», ni les canaux principaux, ni l'accès à Internet - nous avons déjà tout.

Les consommateurs de nos services sont des organisations et des particuliers. Si vous regardez le profil de leur trafic Internet, il y a principalement du trafic entrant, car un utilisateur standard, en règle générale, consomme (télécharge) du trafic et génère très peu. En moyenne, le rapport entre le trafic entrant et le trafic sortant est de 10 à 1. Les canaux que nous louons / achetons pour fournir des services Internet aux opérateurs de backbone sont synchrones, les vitesses entrantes et sortantes sont les mêmes. Ainsi, le retour (canal sortant), en règle générale, pour les fournisseurs Internet comme nous est à moitié vide. Cette situation est typique de la plupart des opérateurs travaillant avec des personnes. Dans les centres de données des hébergeurs et des réseaux sociaux, la situation est inverse, il y a principalement du trafic sortant, mais ce n'est pas notre cas.

En conséquence, il s'avère que la collecte de vidéos à partir de caméras et leur diffusion sur Internet, en termes de coût de transmission du trafic, ne nous coûte presque rien. En même temps, des canaux sérieux sont nécessaires, car une caméra statique donne environ 4 Mbit / s, et une caméra pivotante - jusqu'à 10 Mbit / s au moment de changer l'angle.



Multipliez cela par le nombre de consommateurs simultanés, qui est de 2 000 ou plus dans la journée. Supposons qu'une organisation tierce, et non un opérateur de télécommunications, veuille créer un projet comme Sochi.Kamer. Dans ce cas, toutes les ressources nécessaires devront être louées auprès des signaleurs, et aux prix actuels, cela coûtera un joli sou. Mais si vous êtes un opérateur de télécommunications, le drapeau est entre vos mains.

Mais il reste des difficultés d'organisation des canaux de communication. Cela est dû au fait que là où les canaux de communication sont présents, c'est-à-dire dans le centre-ville, il n'y a pratiquement rien à regarder. Et là où c'est intéressant, il n'y a pas de canaux de communication proches et ils doivent en quelque sorte être organisés, allouer des équipements, des consommables, des ressources humaines. Par exemple, nous organisons maintenant une connexion avec le terrier du raton laveur dans la forêt.

Logiciel de diffusion vidéo.

Nous avons commencé notre projet en 2008-2009, alors qu'aucun échantillon ne pouvait être simplement prélevé et copié. Ensuite, il y avait de nombreux agrégateurs de webcam qui les recherchaient dans la mesure du possible et les présentaient dans un répertoire comme soi-disant le leur. Mais il n'y avait pas de solutions complexes et toutes faites. Pour recevoir un si grand nombre de caméras et les distribuer à de nombreuses personnes sur différents appareils, vous avez besoin d'un logiciel fiable et stable. Nous avons donc commencé à tout faire nous-mêmes, ce fut plusieurs années de développement à partir de zéro, en commençant par la conception, la mise en page et en terminant par l'architecture logicielle. Ils ne l'ont copié de personne, ils ont essayé cinq versions du moteur - de LinuxDVR primitif sur mjpeg, à Red 5, ffmpeg + nginx, Wowza. Soit dit en passant, ce dernier a été abandonné non pas pour des raisons techniques, mais en raison de modifications des conditions de licence lors du passage à une nouvelle version et de l'absence de licence à vie dans la nouvelle politique du développeur américain. Autrement dit, ils voulaient recevoir de l'argent sur une base mensuelle, en fonction de la charge réelle. Et le fait que le projet ne soit pas à but lucratif n'a dérangé personne.

Dans le processus de développement et de développement du service, nous sommes allés à la société Erlivideo, qui développe le serveur multimédia Flussonic. L'équipe du projet était originaire de Moscou et il était facile de trouver un langage commun avec elle. Dans l'ensemble, elle a bien fonctionné pour résoudre des tâches non triviales. Cela ne veut pas dire que tout était toujours lisse et que les jambages et les râteaux étaient sortis. MAIS. Lorsque vous voyez le désir d'un développeur d'améliorer son produit, d'écouter et de prendre en compte les commentaires du client et de voir les résultats réels d'une telle interaction après la prochaine mise à jour, cela vaut beaucoup.



Flussonic Media Server est une plate-forme de serveur de streaming vidéo. Avec son aide, vous pouvez organiser la capture de tous les flux vidéo, enregistrer la vidéo dans l'archive et la distribuer aux clients à l'aide de divers protocoles et sur tous les appareils, à la fois en temps réel et à la demande. La lecture est disponible sous la forme d'une bande sans fin, qui peut être visualisée à tout moment. La distribution peut s'effectuer via les protocoles RTMP, RTSP, HLS, HDS, HTTP MPEG-TS, DASH et WebRTC. De plus, Flussonic peut transcoder la vidéo en modifiant les paramètres du codec et de la vidéo. La liste des codecs pris en charge comprend H.264, H.265, MPEG-2, AAC, AC3, MP3, VP6, Speex et G711a / u. La plateforme peut assembler des clusters à partir de serveurs, capturer plus de 1600 flux et distribuer des centaines de milliers de connexions simultanées. Vous pouvez utiliser à la fois les outils intégrés et l'interface Web, ainsi que l'API HTTP pour gérer et surveiller l'activité et le chargement.

Des caméras, nous collectons des flux dans le RTSP standard. Jusqu'à récemment distribué principalement DASH pour les lecteurs flash, UDP Multicast pour le réseau interne et HLS pour les applications mobiles. Au cours des dernières années, les révolutions HTML5 et les «funérailles» d'Adobe Flash ont été périodiquement annoncées, nous avons donc dû utiliser une conception complète qui «alimentait» le type de lecteur et de flux dont nous avions besoin, en fonction du navigateur et du système d'exploitation client. Malgré le battage médiatique entourant HTML5, de nombreux navigateurs populaires étaient très maladroits pour le tag vidéo en ce qui concerne la diffusion en direct. En revanche, disons, de la lecture d'une vidéo préenregistrée, qui a fonctionné de manière assez stable depuis l'annonce de HTML5.

Maintenant, nous pouvons dire que la «turbulence du navigateur» est terminée et nous sommes passés à la diffusion html5 native dans les navigateurs, abandonnant complètement le plugin Flash. Ainsi, "à portée de main", nous n'avons désormais que HLS et Multicast.

Pour nos abonnés utilisant IPTV pour la multidiffusion, nous avons fait la diffusion de ces caméras sur un réseau de télévision, c'est-à-dire qu'elles voient toutes les webcams comme des chaînes de télévision distinctes sur leurs téléviseurs. Les webcams en IPTV sont triées par thème et complètent l'ensemble standard de chaînes de télévision proposées par nos clients.

Notre autre fonctionnalité est la fonctionnalité du lecteur intégré, comme dans YouTube ou Vimeo. De notre service, nous envoyons des vidéos à des sites très célèbres - ce sont les complexes hôteliers et hôtels de Krasnaya Polyana. En même temps, ils n'augmentent pas le streaming de leur côté, ils ont juste besoin du code d'insertion. Le lecteur intégré peut être de marque ou ne pas avoir de marque d'identification, ce qui permet à nos partenaires de concevoir indépendamment leurs pages dans le bon style. Exemples:

Un

Deux

Trois

Une autre caractéristique de la nôtre est les webcams mobiles basées sur les téléphones portables. Nous les avons appelés "The Fluff", à partir de la méthode de streaming vidéo push. Il s'agit d'une application Android personnalisée distribuée sous forme de fichier APK. Sur le marché, ce n'est pas et ne sera pas. L'idée est simple: le téléphone mobile a tout ce dont vous avez besoin pour la diffusion vidéo: une caméra, un positionnement GPS, un canal de données. Nous avons créé une application qui traite la vidéo et la transfère immédiatement à Sotchi. Son et coordonnées transmis en option. La création de "trous noirs" est prévue, une fois dans laquelle le "Fluff" interrompt la diffusion. Les analogues de «Cannon» sont bien connus, par exemple, il s'agit de «Periscope» pour «Instagram». À une certaine époque, nous avons pensé à distribuer cette application aux blogueurs, mais nous avons abandonné cette idée pour plusieurs raisons. Maintenant, les "Guns" fonctionnent dans plusieurs bus de la ville, et plus près de la saison, les émissions des navires touristiques reprendront leur travail.





Sotchi elle-même, la caméra est entièrement réalisée en Javascript. Serveur - sur Node.js, partie navigateur - Angular.js

Les applications mobiles pour Android, iOS et Windows Phone sont écrites à l'aide d'outils de développement standard. Il convient également d'ajouter qu'il existe une application pour Windows Desktop, certains clients la préfèrent au navigateur, car elle fonctionne plus rapidement, il n'y a pas de publicité et, en général, il existe des fonctionnalités minimalistes sans «kit» sous forme de chats et d'autres choses.
Il est intéressant de noter qu'au cours des dernières années, aucune solution intégrée clé en main n'est apparue. Les systèmes vidéo prêts à l'emploi existants sont conçus à des fins complètement différentes, principalement pour la vidéosurveillance de sécurité. Il y a un mur vidéo, d'enregistrement, de visualisation, de rembobinage, etc., mais ils sont aiguisés pour la vidéosurveillance de sécurité, et non pour le travail de plusieurs milliers de personnes à la fois. Il s'agit généralement d'une approche différente, d'une architecture différente.

À ce sujet, je voudrais terminer l'article de synthèse. Comme nous l'avons dit plus haut, de nombreux éléments du système peuvent être décrits plus en détail, ils en valent la peine. Par exemple, sur les astuces pour installer des caméras vidéo dans la rue dans des conditions de forte humidité et de grandes différences de température, la façon d'organiser les caméras mobiles sur les bus et les bateaux à moteur, ou plus en détail sur les applications pour smartphones et leur côté serveur, ou sur le choix d'un logiciel de streaming vidéo sur le site. Nous pouvons également vous parler des coûts de développement et de maintenance d'un tel projet. Les premières injections pour le développement au cours des premières années, par exemple, se sont élevées à environ 4 000 000 de roubles. Mais ce n'est pas le chiffre final.

Vous pouvez vous demander quelle partie du projet vous intéresse. En attente de vos questions.

Source: https://habr.com/ru/post/fr411037/


All Articles