Sotschi. Kamera: Funktionen zum Erstellen eines Projekts im Allgemeinen, vollständig, vollständig von Grund auf neu, ohne dass bereits Standards und Beispiele implementiert wurden

Sochi.Camera - eine Website mit Broadcast-Streams von mehr als 300 in Sotschi und Umgebung installierten Webkameras. Die Website und der gesamte Service sind gemeinnützig und werden fast 10 Jahre lang auf eigene Kosten vom lokalen Internetanbieter "Business Connection" erstellt und gepflegt. In diesem Beitrag erfahren Sie, wie Sie vom absoluten Nullpunkt aus codieren. über den Kampf mit YouTube (wir haben gewonnen); Warum freie Software schlecht ist und kostenloser Video-Streaming-Service gut ist. Vielleicht in der Zukunft, wenn sie sich mit dem nächsten Vorschlag an uns wenden - schreiben Sie für 100-200 Tausend Rubel. Der gleiche Service wie in Sotschi. Kamera, anstelle von tausend Wörtern, geben wir Rafael einen Link zu diesem Beitrag, damit jeder sofort verstehen kann.

Erste Version: zerrissenes Design mit Teilen des Codes eines anderen

Unser Projekt wurde von Grund auf neu erstellt, es gab keine ähnlichen Services, Vorbilder oder Vorlagen. Alles, was wir getan haben, mussten wir selbst tun: vom Umschreiben fehlerhafter Module aus Open Source-Bibliotheken bis zur Erfindung neuer Möglichkeiten zur Montage von Kameras. Es gab keine vorgefertigten Lösungen, und als wir das Projekt starteten, und jetzt sind sie auch nicht in Form von Vorlagen, sowieso sind ziemlich gute Programmierkenntnisse erforderlich.

Wir begannen mit unseren Vollzeit-Netzwerkadministratoren, die wussten, wie man ein bisschen codiert. Fast von den ersten Schritten des Projekts an möchten wir unser Leben leichter machen. Aber die einzige "abgezockte" Version der Seite war die allererste. Das Design wurde aus dem Desktop-Programm zum Anzeigen von Fotos und Videos entlehnt, an dessen Namen sich derzeit niemand mehr erinnert. Eigentlich war die ursprüngliche Idee der Website ein Online-Kino mit vielen Hallen, einem dunklen Hintergrund und einer großen Leinwand mit einem qualitativ hochwertigen Bild. Das Design dieses Programms mit dem vergessenen Namen war genau das - ein dunkler Hintergrund, eine Reihe von Voransichten, beim Klicken wurde ein großer Bildschirm geöffnet.



Der Code stammt aus dem Linux DVR, dem Open Source Open Source Linux DVR. Es funktionierte als Site, es war möglich, über einen Browser darauf zuzugreifen und Streams von Kameras anzusehen. Auf einem Code vom Linux-DVR, auf dem Motion JPEG verwendet wurde, haben wir das Design aus dem Photo Viewer-Programm gezogen und die erste Version von Sotschi erhalten. Die Kamera ist ungeschickt, funktioniert aber.

Jetzt funktioniert die fünfte Version von Sotschi. Kamera. Das Site-Design hat sich stark verändert. Die Hauptidee eines „dunklen Kinosaals“ ist jedoch nicht verschwunden, aber jetzt ähnelt das Design eher Yandex-Video als einer Desktop-Foto- und Videobibliothek. Dies ist jedoch nur eine entfernte Erinnerung, kein zerrissenes Erscheinungsbild. Für die neue Version der Website wurde ein Online-Wettbewerb ausgeschrieben. Das Gesamtdesign und die von den Gewinnern erstellten Piktogramme wurden für die aktuelle Version der Website verwendet.

Bild

Natürlich haben nicht alle Benutzer der Website ein neues Aussehen angenommen, für die Unzufriedenen wurde auch die alte Version verlassen, aber jetzt besucht sie fast niemand mehr.

Die zweite und die weitere Version des Codes wurden unabhängiger erstellt und erwiesen sich als weniger handwerklich. Jetzt wird der Dienst in Java-Skript ausgeführt, der Serverteil in Node.js, der Clientteil in Angular.js. Wir haben nur eine Person, die eine Serveranwendung entwickelt, aber er ist ein professioneller Entwickler, und das hohe Niveau unseres Service von heute ist größtenteils sein Verdienst. Unser gesamtes Team ist übrigens im Abschnitt über das Projekt in Sotschi aufgeführt. Kamera.

Turbulenzen beim Wechsel von Flash zu HTML5

Als Steve Jobs Flash den Krieg erklärte, arbeitete unsere Website daran. Alle Browserhersteller begannen allmählich, HTML5 aufzugeben, wo die Demonstration von Videostreams noch nicht standardisiert war und wir große Probleme hatten. Sotschi. Die Kamera konnte mehrere Jahre mit Flash arbeiten, aber in neuen Versionen von Browsern funktionierte alles instabil. Wir haben viele Benutzer verloren, weil sie anstelle von Videos von Kameras ein dunkles Fenster hatten.



Es war notwendig, die Site für neue Browserversionen neu zu schreiben und nicht nur einen Code für jede Version separat zu schreiben, sondern auch eine Reihe von Browsern im laufenden Betrieb zu ermitteln. Hier hat unser Entwickler eine solche Konstruktion geschrieben, dass sie recht erfolgreich war. Das war natürlich sehr stressig und komplizierte den Code. Wenn sich die Situation mit der Standardisierung beruhigt hat, haben wir den Service erneut neu gestaltet und diese zusätzlichen Krücken beseitigt.

Eine der Stärken unseres Entwicklers liegt in der Tatsache, dass er ständig mit Refactoring beschäftigt ist - optimiert den Code, reduziert die Belastung des Servers und der Kommunikationskanäle und überwacht ständig die Funktionen neuer Versionen von Programmiersprachen.

Übrigens, als wir mit verschiedenen Browserformaten zu kämpfen hatten, löste YouTube ein ähnliches Problem mit zwei kleinen Unterschieden: YouTube zeigte Dateien an, keine Streams, was die Programmierer viel einfacher machte; und dies ist YouTube mit einer großen Anzahl von Programmierern und keine kleine Firma mit einer, wenn auch ein sehr guter und sogar brillanter Programmierer. Wenn wir uns jetzt diese vergangenen Angelegenheiten ansehen, können wir sagen, dass die Turbulenzen nicht schlimmer vergangen sind.

Neben dem richtigen Ansatz unseres Hauptprogrammierers hinsichtlich der Effektivität von Software war ein weiterer sehr wichtiger Punkt die Wahl einer neuen Streaming-Plattform. Obwohl wir Wowza nicht aus „technischen Gründen“ verlassen haben, sondern aufgrund ihrer unbescheidenen Tarifpolitik, haben wir auch langfristig langfristig gewonnen. Wir haben vor ungefähr 4 Jahren mit Flussonic aus Erlivideo an unserer vierten Version gearbeitet, als sie noch nicht gehört wurden. Dann ging dieses Produkt von einer Open-Source-Semi-Handarbeit zu einer normal bezahlten Werbung über.

Die Geschichte dieses Produkts wird sehr gut durch die Tatsache bestätigt, dass Softwareprodukte nicht auf dem Weg der Open-Source-Software mit kostenlosem (oder Shareware-) Vertrieb, sondern auf dem kommerziellen Weg besser entwickelt werden.

Flussonic selbst existierte zu dem Zeitpunkt, als wir darauf umsteigen wollten, bereits seit ungefähr drei Jahren. Zuerst hatte er Open Source Code, der kostenlos verteilt wurde, und Programmierer verdienten Geld nur mit seiner Unterstützung. Die Entwicklung war instabil, da Benutzer keine Fehler meldeten. Für Entwickler von Drittanbietern war es nicht interessant, sich an der Entwicklung des Projekts zu beteiligen. Es gab wenig Geld für Support. Dann wurde beschlossen, den Code zu schließen, eine Firma Erlivideo zu gründen und mit der Entwicklung eines kommerziellen Produkts zu beginnen. Und irgendwann im Jahr nach der Gründung des Unternehmens begannen wir mit ihnen zu arbeiten.

Wir waren ein Testgelände für sie, eine experimentelle Basis, wir teilten Probleme mit ihnen und boten Funktionen an. Eines der wichtigen Dinge, die wir von ihnen bekommen haben, ist ein Spieler, der speziell für ihre Engine geschrieben wurde. Der wichtige Punkt ist, dass beide Teile - der Kernel und der Client - vom selben Entwickler geschrieben wurden. Selbst wenn Probleme auftreten, werden sie sehr schnell behoben. Erlivideo ist in dieser Zeit sehr gewachsen, in der IPTV-Branche bekannt geworden, und jetzt, in unserer fünften Version, funktioniert seit mehr als einem Jahr alles stabil und ohne Störungen.

Geld: Was ausgeben und wie Geld verdienen?

Nach langjähriger Arbeit ist die Website sehr berühmt und beliebt geworden und selbst zu einem Modell für solche Ressourcen geworden. Wir werden regelmäßig kontaktiert, um eine Komplettlösung zu kaufen. Wir haben herausgefunden, was uns diese Entscheidung heute kosten würde, unter Berücksichtigung unserer Erfahrung und der gemachten Fehler. Im Allgemeinen beträgt der Serverteil etwa 1 000 000 Rubel, jede mobile Anwendung 500 000 bis 600 000 Rubel. Diese Mengen potenzieller Käufer sind beängstigend, sie erwarten maximal 100.000 - 200.000 Rubel für alles. Wenn wir anfangen, die Komponenten von Software zu malen, die Kosten für bestimmte Lösungen, sind die Leute ratlos: Warum zum Beispiel Geld für das Schreiben von Modulen ausgeben, für die es kostenlose Analoga in Open-Source-Bibliotheken gibt. Ja, nur damit sie besser funktionieren!

Bild

Hier ist ein Beispiel, eine einfache Aufgabe: Nehmen Sie einen Stream von der Kamera und verteilen Sie ihn an eine große Anzahl von Abonnenten, um ihn zu multiplizieren, ohne ihn zu ändern. Bei einer kostenlosen Lösung aus der Open Source-Bibliothek ffmpeg wird der gesamte Prozess angehalten und muss manuell neu gestartet werden, wenn der Stream von der Quelle unterbrochen wird. Stellen Sie sich vor, es gibt mehr als dreihundert Kameras im Netzwerk, ein ziemlich großes Netzwerk, es passiert ständig etwas - irgendwo auf der Kamera fällt die Stromversorgung aus, irgendwo zwischen dem Server und der Kamera wird die Verbindung unterbrochen und der Dienst wird einfach beendet. Es ist einfacher, Geld für eine kostenpflichtige Lösung zu bezahlen, die den Zustand überwachen und bei Bedarf neu starten kann, als eine kostenlose Lösung zu verwenden, aber manuell zu überwachen und neu zu starten.

Nach unseren Schätzungen beliefen sich die Kosten für die Entwicklung von Software im Allgemeinen auf etwa 40% aller Projektkosten. Die restlichen 60% entfallen auf die gesamte Hardware, einschließlich Kameras und Server, sowie auf Lizenzen für gebrauchte Anwendungen von Drittanbietern.

Wir haben viel Geld für unser Projekt ausgegeben, und im Allgemeinen würden wir uns jetzt nicht weigern, irgendwie Geld damit zu verdienen. Dies ist jedoch definitiv kein direkter Weg der Monetarisierung „auf der Stirn“. Nach dem Studium der meisten Monetarisierungsmodelle wurde klar, dass diejenigen, bei denen der Service direkt verdient, zusätzlichen Aufwand erfordern und sich im Allgemeinen nicht auszahlen. Jetzt gibt es technische Lösungen, mit denen Werbung ganz einfach direkt in den Videostream integriert werden kann. Technisch gesehen ist dies eine sehr gute Lösung, die Auslastung der Server ist gering, es ist unmöglich, Werbeblocker zu umgehen. Bei einer Besucherzahl von 500.000 bis 600.000 Personen wird diese Videoanzeige jeden Monat von einem sehr großen Publikum angesehen. Der Aufbau eines Verkaufssystems und die Verwaltung von Cashflows sind jedoch sehr teuer Wir planen eine solche Monetarisierung nicht.

Daher verwenden wir indirekte Modelle, hauptsächlich um unser Kerngeschäft mit Betreibern zu fördern. Wenn Sie beispielsweise die Website betreten, analysieren wir die IP-Adresse des Besuchers und schalten Anzeigen unserer eigenen Dienste für den Anwohner, nicht jedoch für unseren Kunden. Wir geben Streams für die Anzeige auf Webressourcen von Drittanbietern im Austausch für unsere Werbung mit ihnen. Auf lokalen Fernsehkanälen sind sie bereit, Videos von unseren Kameras in Prime Time-Nachrichtenblöcken mit dem Namen unseres Unternehmens zu verwenden. Die Hotelketten unserer Kunden senden Videostreams von unseren Kameras auf ihren Fernsehgeräten und empfangen sie als Fernsehkanäle. Für sie ist dies ein zusätzlicher kostenloser Service, ein Chip für Gäste.

Die Website selbst mit ihren fast 5 Millionen Zugriffen pro Monat nutzen wir als Werbeplattform, verkaufen jedoch keine Anzeigen. Wir platzieren nur unsere eigenen oder unsere juristischen Kunden kostenlos. Wir erhöhen lediglich die Loyalität.

In Zukunft planen wir, dieselbe strategische Linie einzuhalten - indirekte Monetarisierungsmethoden, ein kostenloser Service für Besucher.

Wir freuen uns auf Ihre Fragen, Kommentare, Kommentare und Vorschläge zum nächsten Artikel.

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


All Articles