Sochi. C谩mara: caracter铆sticas de crear un proyecto en general, completamente, completamente desde cero, sin est谩ndares y ejemplos ya implementados

Sochi.Camera : un sitio con transmisiones de m谩s de 300 c谩maras web instaladas en Sochi y sus alrededores. El sitio y el servicio completo son sin fines de lucro, creados y mantenidos por su cuenta por el proveedor local de Internet "Business Connection" , durante casi 10 a帽os. En esta publicaci贸n le diremos c贸mo codificar desde cero absoluto; sobre la batalla con YouTube (ganamos); por qu茅 el software libre es malo y el servicio gratuito de transmisi贸n de video es bueno. Quiz谩s en el futuro, cuando recurran a nosotros con la pr贸xima propuesta: escriba por 100-200 mil rublos. el mismo servicio que Sochi. C谩mara, en lugar de mil palabras, le daremos a Rafael un enlace a esta publicaci贸n, para que todos puedan entender de inmediato.

Primera versi贸n: dise帽o rasgado con fragmentos del c贸digo de otra persona

Nuestro proyecto se realiz贸 desde cero, no hab铆a servicios, modelos a seguir o plantillas similares. Todo lo que hicimos lo tuvimos que hacer nosotros mismos: desde reescribir m贸dulos con errores de bibliotecas de c贸digo abierto hasta inventar nuevas formas de montar c谩maras. No hab铆a soluciones listas para usar, y cuando comenzamos el proyecto, y ahora tampoco est谩n en forma de plantillas, de todos modos se requieren habilidades de programaci贸n bastante decentes.

Comenzamos nosotros mismos, con nuestros administradores de red a tiempo completo, que sab铆an codificar un poco. Casi desde los primeros pasos del proyecto nos gustar铆a facilitarnos la vida. Pero la 煤nica versi贸n "arrancada" del sitio fue la primera. El dise帽o se tom贸 prestado del programa de escritorio para ver fotos y videos, cuyo nombre nadie recuerda ahora. En realidad, la idea original del sitio era un cine en l铆nea con muchas salas, con un fondo oscuro y una pantalla grande con una imagen de alta calidad. El dise帽o de este programa con el nombre olvidado fue solo eso: un fondo oscuro, un mont贸n de vistas previas, al hacer clic en 茅l, se abri贸 una pantalla grande.



El c贸digo fue tomado del Linux DVR, el c贸digo abierto de c贸digo abierto Linux DVR. Funcion贸 como un sitio, era posible acceder a 茅l a trav茅s de un navegador y ver transmisiones desde c谩maras. En un fragmento de c贸digo del DVR de Linux, donde se utiliz贸 motion jpeg, extrajimos el dise帽o del programa de visualizaci贸n de fotos y obtuvimos la primera versi贸n de Sochi. La c谩mara es torpe, pero funciona.

Ahora la quinta versi贸n de Sochi est谩 funcionando. El dise帽o del sitio ha cambiado mucho. Sin embargo, la idea principal de una "sala de cine oscura" no desapareci贸, pero ahora el dise帽o se parece m谩s al video de Yandex que a una biblioteca de fotos y videos de escritorio. Sin embargo, esto es solo un recordatorio lejano, no una apariencia desgarrada. Se anunci贸 una competencia en l铆nea para la nueva versi贸n del sitio, el dise帽o general y los pictogramas creados por los ganadores se utilizaron en la versi贸n actual del sitio.

imagen

Por supuesto, no todos los usuarios del sitio adoptaron favorablemente una nueva apariencia; para los muy insatisfechos, la versi贸n anterior tambi茅n se dej贸, sin embargo, ahora casi nadie la visita.

En cuanto al c贸digo, la segunda y m谩s versiones se hicieron de manera m谩s independiente, y resultaron ser menos artesanales. Ahora el servicio se realiza en script Java, la parte del servidor en Node.js, la parte del cliente en Angular.js. Solo tenemos una persona desarrollando una aplicaci贸n de servidor, pero 茅l es un desarrollador profesional y el alto nivel actual de nuestro servicio es en gran medida su m茅rito. Por cierto, todo nuestro equipo figura en la secci贸n del proyecto en Sochi.

Turbulencia al cambiar de Flash a HTML5

Cuando Steve Jobs declar贸 la guerra a Flash, nuestro sitio trabaj贸 en ello. Todos los fabricantes de navegadores comenzaron a abandonar gradualmente HTML5, donde la demostraci贸n de transmisiones de video a煤n no estaba estandarizada, y tuvimos grandes problemas. Sochi. La c谩mara podr铆a funcionar durante varios a帽os en Flash, pero en las nuevas versiones de los navegadores todo funcionaba de manera inestable, perdimos muchos usuarios, porque en lugar del video de las c谩maras ten铆an una ventana oscura.



Era necesario reescribir el sitio para nuevas versiones de navegadores, y no solo ten铆a que escribir un c贸digo para cada versi贸n por separado, sino que tambi茅n era necesario determinar un mont贸n de navegador-jugador sobre la marcha. Aqu铆 nuestro desarrollador escribi贸 tal construcci贸n que lo hizo con bastante 茅xito. Por supuesto, esto fue muy estresante y complicado el c贸digo. Entonces, cuando la situaci贸n con la estandarizaci贸n se ha solucionado, nuevamente redise帽amos el servicio, eliminando estas muletas adicionales.

Una de las fortalezas de nuestro desarrollador radica en el hecho de que constantemente se dedica a la refactorizaci贸n: optimiza el c贸digo, reduce la carga en el servidor y los canales de comunicaci贸n, monitorea constantemente las capacidades de las nuevas versiones de lenguajes de programaci贸n.

Por cierto, al mismo tiempo, cuando est谩bamos luchando con diferentes formatos de navegador, YouTube estaba resolviendo un problema similar, con dos peque帽as diferencias: YouTube mostraba archivos, no secuencias, lo que hac铆a que los programadores fueran mucho m谩s f谩ciles; y esto es YouTube, con un gran equipo de programadores, y no una peque帽a empresa con uno, aunque es un programador muy bueno e incluso brillante. Mirando ahora estos asuntos pasados, podemos decir que la turbulencia no ha pasado peor.

Adem谩s del enfoque correcto de nuestro programador principal para la efectividad del software, otro punto muy importante fue la elecci贸n de una nueva plataforma de transmisi贸n. Aunque salimos de Wowza no por una "raz贸n t茅cnica", sino por su pol铆tica arancelaria inmodesta, t茅cnicamente tambi茅n ganamos a largo plazo. Comenzamos a trabajar con Flussonic de Erlivideo en nuestra cuarta versi贸n, hace aproximadamente 4 a帽os, cuando a煤n no se escuchaban. Luego, este producto pas贸 de un c贸digo abierto de semi-artesan铆a a un comercial normal pagado.

La historia de este producto est谩 muy bien confirmada por el hecho de que los productos de software est谩n mejor desarrollados, no a lo largo del camino del software de c贸digo abierto con distribuci贸n gratuita (o shareware), sino a lo largo del camino comercial.

Flussonic en s铆, para cuando est谩bamos a punto de cambiarlo, ya exist铆a durante unos tres a帽os. Al principio, ten铆a c贸digo fuente abierto, distribuido gratuitamente, y los programadores ganaban dinero solo con su apoyo. Su desarrollo fue inestable, ya que los usuarios no informaron errores, no fue interesante que los desarrolladores de terceros participaran en el desarrollo del proyecto, hab铆a poco dinero del soporte. Luego se decidi贸 cerrar el c贸digo, crear una empresa Erlivideo y comenzar a desarrollar un producto comercial. Y en alg煤n momento del a帽o despu茅s de la creaci贸n de la compa帽铆a, comenzamos a trabajar con ellos.

Fuimos un campo de pruebas para ellos, una base experimental, compartimos problemas con ellos, ofrecimos funciones. Una de las cosas importantes que obtuvimos de ellos es un jugador escrito espec铆ficamente para su motor. El punto importante es que ambas partes, el n煤cleo y el cliente, est谩n escritas por el mismo desarrollador, incluso si surgen problemas, se solucionan muy r谩pidamente. Erlivideo ha crecido mucho durante este tiempo, se ha hecho muy conocido en la industria de iptv y ahora, en nuestra quinta versi贸n, todo ha estado funcionando de manera estable durante m谩s de un a帽o sin problemas t茅cnicos.

Dinero: qu茅 gastar y c贸mo ganar dinero

Despu茅s de muchos a帽os de trabajo, el sitio se ha vuelto muy famoso, popular, se ha convertido en un modelo para tales recursos. Se nos contacta peri贸dicamente para comprar una soluci贸n completa. Descubrimos cu谩nto nos costar铆a esta decisi贸n hoy, teniendo en cuenta nuestra experiencia y los errores cometidos. En general, la parte del servidor es de aproximadamente 1 000 000 de rublos, cada aplicaci贸n m贸vil es de 500 000 - 600 000 rublos. Estas cantidades de compradores potenciales dan miedo, esperan un m谩ximo de 100,000 - 200,000 rublos para todo. Cuando comenzamos a pintar los componentes del software, el costo de ciertas soluciones, la gente est谩 perpleja: por ejemplo, por qu茅 gastar dinero en escribir m贸dulos para los que hay an谩logos gratuitos en bibliotecas de c贸digo abierto. 隆S铆, solo para que funcionen mejor!

imagen

Aqu铆 hay un ejemplo, una tarea simple: tomar un flujo de la c谩mara y distribuirlo a un gran n煤mero de suscriptores, solo para multiplicarlo sin cambiarlo. Para obtener una soluci贸n gratuita de la biblioteca ffmpeg de c贸digo abierto, cuando se interrumpe la transmisi贸n desde el origen, todo el proceso se detiene y debe reiniciarse manualmente. Imagine que hay m谩s de trescientas c谩maras en la red, una red bastante grande, algo est谩 sucediendo constantemente: en alg煤n lugar de la c谩mara fallar谩 la alimentaci贸n, en alg煤n lugar entre el servidor y la c谩mara, la conexi贸n se interrumpir谩 y el servicio simplemente se detendr谩. Es m谩s f谩cil pagar dinero por una soluci贸n paga que puede monitorear la condici贸n y reiniciar si es necesario, que usar una soluci贸n gratuita, pero monitorear y reiniciar manualmente.

En general, seg煤n nuestras estimaciones, el costo de desarrollar software ascendi贸 a aproximadamente el 40% de todos los costos del proyecto. El 60% restante es todo hardware, incluidas c谩maras y servidores, as铆 como licencias para aplicaciones de terceros usadas.

Gastamos mucho dinero en este proyecto nuestro, y en general, ahora no nos negar铆amos a ganar dinero de alguna manera. Pero esto definitivamente no es un camino directo, "en la frente", de monetizaci贸n. Despu茅s de estudiar la mayor铆a de los modelos de monetizaci贸n, qued贸 claro que aquellos en los que el servicio gana directamente, requieren molestias adicionales y, en general, no dan resultado. Ahora existen soluciones t茅cnicas que pueden integrar f谩cilmente la publicidad directamente en la transmisi贸n de video. T茅cnicamente, esta es una muy buena soluci贸n, la carga en los servidores es baja, es imposible evitar los bloqueadores de anuncios, con nuestra asistencia de 500,000-600,000 personas, una audiencia muy grande ver谩 este anuncio de video cada mes, pero construir un sistema de ventas alrededor de esto y administrar flujos de efectivo es muy costoso, y no planeamos dicha monetizaci贸n.

Por lo tanto, utilizamos modelos indirectos, principalmente para promover nuestro negocio principal de operadores. Por ejemplo, al ingresar al sitio, analizamos la direcci贸n IP del visitante y mostramos anuncios de nuestros propios servicios al residente local, pero no a nuestro cliente. Damos transmisiones para mostrar en recursos web de terceros a cambio de nuestra publicidad con ellos. En los canales de televisi贸n locales, est谩n dispuestos a usar el video de nuestras c谩maras en bloques de noticias de horario estelar con el nombre de nuestra empresa. Las cadenas de hoteles de nuestros clientes transmiten transmisiones de video desde nuestras c谩maras en sus televisores, recibi茅ndolos como canales de televisi贸n, para ellos es un servicio gratuito adicional, un chip para los invitados.

El sitio en s铆, con sus casi 5 millones de visitas al mes, lo utilizamos como plataforma publicitaria, pero no vendemos anuncios: solo colocamos nuestros propios clientes o nuestros clientes legales de forma gratuita, simplemente aumentamos la lealtad.

En el futuro, planeamos adherirnos a la misma l铆nea estrat茅gica: m茅todos indirectos de monetizaci贸n, un servicio gratuito para los visitantes.

Esperamos sus preguntas, comentarios, comentarios y sugerencias con respecto al pr贸ximo art铆culo.

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


All Articles