A mi se me ocurren ideas pero como no tengo tiempo se lo tire al canal de Python Argentina... por ahi alguno pica
Proyecto 1 - Streaming
Pero eso no significa que me quede de brazos cruzados así que me puse a diseñar un concepto, al menos un diagrama, una interfaz y una idea como para que la haga otro. Sería algo así como "Diseño Open Source", yo lo diseño, que lo haga el que quiera, total... que problema hay con un diseño GPL / Creative Commons? ni idea.
Tampoco es que tenga una idea brillante sólo que tenía ganas de hacer una aplicación y no pude. Al que le interese, como hobby o porque vea una veta, genial, el que diga que es una bosta, también, el que tenga mejores ideas, bienvenido sea! es más un intercambio de ideas que otra cosa.
Ahora al grano, les presento la idea y un esquema de como debería ser...
Idea: Una aplicación que sirva de mixer de video por software para realizar streamings y producciones en vivo desde la PC.
Target: Desde amateurs a pequeños productores de sus propios eventos que no dispongan del hardware que se requiere para mezclar video en vivo o no pueden costearlo o prefieran una versión portátil (notebooks) de un sistema normalmente grande o voluminoso.
La idea de un mixer de video no es nueva pero uno que sirva para streamings es bastante poco frecuente. Ignoro la razón, en mi búsqueda por una buena interfaz y aplicación llegué a VidBlaster que es, lejos, lo mejor que hay dando vueltas para realizar este trabajo.
Todos los demás que quieren hacer un trabajo lo más cercano a lo profesional se encuentran con una barrera: inversión enorme para utilizar mixers por hardware.
Me resulta curioso que existiendo sistemas como Justin.tv, Ustream, Livekeal, Qik y tantos otros lo único que exista en el mercado es un desarrollo amateur por parte de un programador solitario y el resto sean sistemas mucho más costosos pensados sólo para producciones grandes.
El resto, vacío o desarrollos abandonados. Casi ninguno encarado como mixer de video, la mayoría estan realizados pensando en un idiota del otro lado del teclado y una webcam. Salvo el Vidblaster ninguno contempla el usar Overlays, efectos por canal, un switcher, playlists, codecs de video más allá de un avi, envío a distintos sistemas de video, grabación, HD, captura de audio, etc.
De hecho, el Vidblaster cuenta con casi todo esto pero con dos o tres "problemas", el primero de todos es que es un desarrollo propietario, cerrado y de un solo programador. No, no es que busco la piratería ni nada del soft, no me interesa eso, es que el programa "hace lo que puede" con un montón de ideas relativamente buenas pero no muy bien implementadas. Es muy amateur.
El segundo problema es que, más allá de las fallas posibles, es muy caro. Si, el tipo tiene 3 versiones, la más cara está por encima de los 1000 dólares, una barbaridad para un programa tan "beta" pero el tipo lo vende a ese precio igual. No digo que tenga que ser gratis pero por u$s 50 sería otra cosa y no, no hay una aplicación "básica" que cueste eso. Este único desarrollador no me asegura continuidad (el día de mañana cierra el quincho y te quedás sin software) y al no ser de código abierto y libre no puedo tomarlo y seguirlo como se me cante.
Por otra parte esto del precio y el nicho de productor amateur abre un espacio genial para que otro ofrezca una opción realmente diferente y funcional. Hay algunos proyectos libres en JAVA pero no estan pensados como el VidBlaster, hace falta un mixer de video pensado como tal.
No me interesa hacer un screencast, quiero hacer una producción en video, por lo que hace falta lo siguiente:
Input video:
Cualquier dispositivo de video entrante por Firewire (cámaras profesionales o semi pro)
Cualquier dispositivo de video entrante por USB (webcams o cámaras económicas)
Videos almacenados en disco (todos los formatos que un VLC podría leer )
Input Audio:
Linea (para los más PRO)
Mic (para los no tan PRO)
Mixer (para los que tiran hasta el winamp en un streaming)
y algo que ninguno utiliza, tomar el audio de cada video que uno reproduce y poder mezclarlo a gusto, que no sea línea o mic la única posibilidad.
Output:
Driver virtual de webcam, muy utilizado para aquellos que quieren levantar el video directo desde la página web de ustream.tv por ejemplo, no requiere el Adobe Flash Media Live Encoder.
Output directo a Adobe Flash Media Live Encoder
Output en otros formatos como hace el VLC para hacer streamings en red.
Aclaro, el Adobe Flash Media Live Encoder sirve para todos los servicios que utilizan streaming vía flash. Ustream.tv, Justin.tv, etc. tienen este servicio, uno puede enviar de esta manera ya codificado en MPEG-4 y bastante más comprimido.
Esto permite variar el ancho de banda necesario para la transmisión, si tenés una conexión de 256kbps o una de 1mbps hay muchas posibilidades pero hay que cubrirlas a todas.
Así que tenemos ciertas interfaces evidentes:
1.- captura
2.- mezcla
3.- transmisión
La transmisión hasta se puede derivar a otro servidor, por ejemplo, una PC es la mezcladora y emite la señal libremente en la red con un codec de alta calidad a un bitstream alto, cosa de que la conversión la haga quien consuma ese servicio.
Una aplicación de transmisión separada puede emitir streams, convertir la entrada, ajustar tamaño, proporción, agregar detalles y coordinar el envío a varios sistemas a la vez.
En caso de cuelgues se puede emitir una señal de ajuste y en caso de cuelgue del transmisor el mixer no muere y puede seguir grabando la transmisión, reiniciar el otro programa y seguir funcionando normalmente.
Este tipo de tareas ya las pienso mirando en grande, con tener una aplicación que resuma lo que ofrece el Vidblaster pero pensado como una aplicación libre y mejor mantenida creo que basta.
Ahora algunos se preguntarán ¿para que esto? el futuro de la web es el streaming según muchos, pero nadie se está preocupando en desarrollar las aplicaciones de mañana. Tal vez con esto podamos ser parte de eso o al menos incentivar la apertura de un nuevo mercado y posibilidades para nosotros.
El día de mañana el control de estas plataformas estará en las manos de quien pueda desarrollar una aplicación completa, un circuito de creación-distribución que contemple todas las posibilidades y por algún lado hay que empezar. Si no hay contenido, no hay razón para distribuírlo, esta aplicación buscaría contemplar eso.
Estuve trabajando un poco con el QT Creator sólo para jugar con una aplicación libre, no significa que sea la mejor forma de desarrollarlo, está pensado para C++ y utiliza QT que es multiplataforma, una interesante forma de poder hacer una aplicación para Windows, OSX y Linux sin tanto reescribir código.
También porque es fácil diagramar una GUI y no se requiere de un Visual Studio que te condena sólo a la Windola. Ahora bien, este es el esquema:
La idea es bien simple y lo que se ve en pantalla no requiere demasiado conocimiento de edición de video ni hay que ser un director de cámaras, para una primer idea lo básico es la salida principal (lo que el público está viendo) , una vista de preview (para lo que va a salir), una barra para cruzar de uno a otro fácilmente.
Debajo cuatro o más entradas de video, por un lado los videos que uno pueda preparar antes de emitir y por otro lado las cámaras (dos en este caso), obviamente no es el mejor layout que se pueda diseñar pero la idea es que esté al alcance de la mano cada cosa que se necesita.
Se podrían agregar playlists para cada canal de video pero eso se podría ver a futuro (Vidblaster agregó hace poco las playlists).
Debajo disponemos de otros efectos y overlays y al centro el mixer de audio que pueda tomar tanto de micrófono como de línea y, especialmente, del video que se reproduce exclusivamente.
Es común que en una transmisión termine saliendo audio de errores hasta el gtalk sonando al fondo, hay que evitar tomar del mixer de windows directo y tomar de cada canal independiente a la hora de transmitir.
Esta GUI es simple pero a la vez un tanto compleja para un usuario absolutamente novato pero más o menos ofrece lo que hace falta para una transmisión decente, con esto un director puede hacer un programa de TV completo sin más que una notebook. Algo que hoy en día parece imposible para muchos, es posible, tan sólo hace falta programarlo, cosa que yo no puedo hacer
Hasta aquí el "programa", la primer capa importante, pero hay muchas cosas más que se pueden hacer, por ejemplo, este esquema, en el caso A tenemos el que actualmente vemos como algo común, un individuo con su camarita, un programa que hace de interfaz entre él y el servicio web, y la web consumiéndolo de una sola forma posible.
Es funcional, anda, está probado.
Pero piensen en el esquema B. No un programa a la vez, no un sólo streaming, piensen en muchos a la vez, hechos por muchos productores-directores cada uno con su cámara y una coordinación central, piensen en repetidoras para evitar congestiones, y un esquema distribuído ¿les suena?
Si les suena porque así es la TV, industria que requiere millones para que esto funcione. Curiosamente con software como el que propongo se podría hacer a un costo muy bajo, con calidad amateur todavía, obvio, pero se puede hacer.
¿de que sirve? al presente tan sólo serviría para armar un canal de comunicación muy básico y primitivo, si apenas podemos mantener blogs es obvio que todo un canal de televisión online sería imposible, pero de las experiencias se aprende y si pudimos llegar a este nivel de bloggeo nada nos impide llegar a otro nivel de streaming.
Este esquema permite darle una solidez al proyecto, una idea a futuro, un esquema de software reutilizable y orientado al crecimiento, no quedarse en lo individual si no en darle el potencial a todos para hacerlo, ¿utópico? no lo creo, del mismo modo podríamos decir que un software para que cada uno tenga su blog y que encima sea libre y gratuito es una idiotez o imposible, ahí tenemos a Wordpress y ese argumento se desvanece.
Piensen en la transmisión de un evento en varios lugares de mundo con este esquema, cada director envía su stream a un director principal, éste coordina que envío sale primero y los va switcheando, todo con una PC y un buen ancho de banda se podría hacer.
Cada producción local tampoco necesitaría gran infraestructura, hasta con una conexión 3G y un teléfono se podría hacer una transmisión, sin hacer falta ni satélite costoso ni un móvil gigante.
Obvio, con toda la infraestructura de un canal vas a tener una producción fenomenal y de calidad, pero si un canal necesita hacer un deploy urgente en un lugar específico una plataforma rápida como esta te da la noticia desde el punto importante hasta que el movil satelital llega.
Es decir, así como nos puede servir a nosotros para nuestras nerdadas o a un estudiante de TEA que quiere experimentar y aprender para prepararse para su futuro, también le puede servir a una banda para mostrar su recital en vivo como a un canal de TV gigante para cubrir algo urgente sin enviar un móvil.
Un pequeño ecosistema de aplicaciones para cubrir esto, pero hay que empezar por la aplicación madre: el mixer.
Como no seré yo el que programe esto, no tengo la capacidad de hacerlo actualmente (y creo que nunca la tendré) lo dejo abierto para el que quiera. Podría conseguir sponsor, podría invertir en ella pero no conozco a nadie que pueda desarrollarla actualmente.
Les dejo los fuentes del QT Creator para el que quiera modificar la interfaz a gusto aquí.
Ah si, podría haber hecho todo un doc de análisis como aprendí a hacer, pero me aburren, prefiero contarles la idea y mostrarles un GUI como para que alguien, con más experiencia, tome la idea solamente y la desarrolle a su gusto y parecer
Si a alguno le interesa desarrollar esto estaría bueno tomar el código del VLC para acelerar el proceso, creo que tienen resueltas MUCHAS cosas y las últimas versiones, curiosamente, usan QT y estan hechas en C++ mejor imposible
Otros posts que podrían llegar a gustarte...
Comentarios
-
Muy buena idea, ojalá prospere, espero que en un futuro tengas buenas noticias sobre este proyecto. Lástima no poder meterme en el mismo y poder colaborar...
-
Buenisimo! ojalá se desarrolle!
Siempre soñé con hacer algo tipo el mundo de Wayne en el
garage de mi casa!
-
Pienso que si vas a transmitir por Internet editando live streams tenés la capacidad económica de generar contenidos, aunque sea tu fiesta de cumpleaños, con más de una cámara. Eso implica que tenés plata, no te vamos a cobrar $50 un software para eso.
Otra cuestión es que para poder venderte a vos un software que manipule "cualquier formato" de video y audio le tenemos que pagar a los dueños de las patentes de software (no vamos a dejar el mercado de USA afuera).
Además, para editar live streams una core i7 con 32GB de RAM no te alcanza. Pensá que una cámara pedorra genera datos a razón de 1,5Mbit/s y vos querés tener más de una cámara y encima recodificar en vivo a diferentes bitrates. Si estás invirtiendo miles en hardware, no te vamos a cobrar $50 el software.
Lo que vos querés hacer se hace hoy con gstreamer, pero no es algo que un director de camaras va modificando a cada minuto. Se arma un esquema con los streams de entrada, las transformaciones y la salida, eso se graba y queda andando, digamos.
-
Mariano Pavone dijo:
Pienso que si vas a transmitir por Internet editando live streams tenés la capacidad económica de generar contenidos, aunque sea tu fiesta de cumpleaños, con más de una cámara. Eso implica que tenés plata, no te vamos a cobrar $50 un software para eso.
Otra cuestión es que para poder venderte a vos un software que manipule cualquier formato de video y audio le tenemos que pagar a los dueños de las patentes de software (no vamos a dejar el mercado de USA afuera).
Además, para editar live streams una core i7 con 32GB de RAM no te alcanza. Pensá que una cámara pedorra genera datos a razón de 1,5Mbit/s y vos querés tener más de una cámara y encima recodificar en vivo a diferentes bitrates. Si estás invirtiendo miles en hardware, no te vamos a cobrar $50 el software.
Lo que vos querés hacer se hace hoy con gstreamer, pero no es algo que un director de camaras va modificando a cada minuto. Se arma un esquema con los streams de entrada, las transformaciones y la salida, eso se graba y queda andando, digamos.
Es decir, ignoraste por completo que existe el Vidblaster que está hecho como el ojete y que maneja no sólo una sola cámara si no múltiples cámaras.
1.- NO hay un software que haga esto bien pero si los hay, lo cobra caro porque es el único.
2.- NO se necesita un i7 para manejar múltiples streams, mi PC puede hacer streams de 10 videos en HD con VLC y sigue dándole el cuero para más, es un Phenom II 810 con "tan sólo" 4 núcleos a 2.2Ghz, si con esto sobra ¿donde hiciste el cálculo de ancho de banda necesario?
3.- ¿las patentes? vos me estás cargando no? VLC lee y transmite hasta en MPEG-4 y no hay demanda de MPEG-LA molestándolos, si creás el software en Argentina el concepto directamente no existe y mi propuesta es realizarlo bajo licencia libre, GPL, normalmente no se meten con el soft libre porque saben que pierden.
El VLC mismo debería estar en problemas antes, pero más allá de eso, la licencia la puede adquirir el realizador e instalar el codec en la PC
Los codecs los podés tomar del sistmea operativo (como hace el Media Player, si estan instalados, los usa) y listo.
En conclusión, no sólo es factible desde lo técnico (no necesito probar más nada, no sólo usé software semejante, si no que hay soft por todos lados haciendo cosas parecidas aunque no exactamente estas) si no que es factible como mercado ¿no querés hacerlo y venderlo a 50 pé? hacelo y vendelo a lo que quieras, justamente, al sumarte a un nicho podés competir por calidad-precio y por ende empuja al segmento a una mejor calidad de software por competencia.
Actualmente no hay ni eso, así que uno no puede elegir entre un grupo de mixers por software y elegir el mejor.
-
Yo sé que no aporta nada de nada este comentario, pero le pongo onda.
Si necesitan alguien que les cebe mates, puedo ir.
Para otra cosa, no podría ayudar. Ah, yo invito con la yerba y los bizcochitos... o las facturas....
-
Tenés razón, le erré con el ancho de banda. Me traicionó la memoria. Yo dije 1,5 Mbit/s y son 25 Mbit/s .
No ignoré el vidblaster, sólo me pareció que su precio es razonable y que $50 es utópico. Y respecto del VLC, es cierto que no le hicieron juicio, pero a NERO sí le pidieron que pague la licencia por cada descarga de la versión de evaluación que es gratuita.
-
Excelente proyecto, pero siempre dije: "si no se hizo, por algo debe ser". Sonó muy vago, no?
Suerte
-
Cuando Post Revolution era un CMS muy verde lo distribuias para que la gente colabore, ahora que mas o menos hace algo te volves canuto con dejar para descarga la ultima version. Eso es tu idea de software libre? tomatela con tus proyectos!
-
tapichi dijo:
Cuando Post Revolution era un CMS muy verde lo distribuias para que la gente colabore, ahora que mas o menos hace algo te volves canuto con dejar para descarga la ultima version. Eso es tu idea de software libre? tomatela con tus proyectos!
jaja forro, el último PR no está liberado porque no tengo un theme default y porque tiene mucho "hardcodeo" que queda horrible. No quiero ver por ahí otro blog con mi mismo diseño y hasta mis banners!!!!
le pasé el proyecto a la gente de GNUtn pero no tienen tiempo todavía para verlo (si, les pasé la última versión con el theme de mi blog y todo ) si eso no es GPL...
Marito dijo:
Excelente proyecto, pero siempre dije: si no se hizo, por algo debe ser. Sonó muy vago, no?
Suerte
en realidad porque nadie le encontró la veta comercial todavía. Hay soft para esto pero por lo general está pensado para realizar screencasts y no, no quiero eso, el flaco de Vidblaster parece que alguna vez laburó con un mixer real de video y logró armarse un nicho genial.
Mariano Pavone dijo:
Tenés razón, le erré con el ancho de banda. Me traicionó la memoria. Yo dije 1,5 Mbit/s y son 25 Mbit/s .
No ignoré el vidblaster, sólo me pareció que su precio es razonable y que $50 es utópico. Y respecto del VLC, es cierto que no le hicieron juicio, pero a NERO sí le pidieron que pague la licencia por cada descarga de la versión de evaluación que es gratuita.
lo de u$s 50 es un número por decir algo ,si son 100 o 200 sigue siendo negocio comprarlo para hacer una producción, pero 1000 no porque es un absurdo ya que por esa guita te comprás un mixer de 4 canales real y con toda la bola.
el precio lo pone el que lo hace y si hay un mercado éste tironea, pero no podés cobrar 1000 algo que no sólo está incompleto si no que falla todo el tiempo.
lo que debía pagar NERO es por usar codecs propietarios, algo que podés obviar si usás el Adobe Flash Media Live Encoder para la transmisión ya que podés usar Vorbis/OGG para el programa o directamente el stream de video básico, sin codificar.
así que por ese lado mientras te mantengas en el mixer y le dejes el bolonqui de transmitir a Adobe, podés zafar tranquilamente y hacer todo un soft que cubra el 90% del problema y dejarle el 10% restante a un programa que ya existe y que es compatible con los sitios de streaming existentes.
eso... si te preocupa MPEG-LA solamente, si llegaste a un volumen en el cual ellos te piden que pagues licencia creo que es para cuando tu negocio era realmente rentable, por eso VLC no tiene problemas, es un negocio relativamente marginal y que no está ubicado en EEUU específicamente
-
Yo propongo que el proyecto se realice en Mono ya que hay muchos programadores que trabajan en .Net en Windows (soy uno de estos) y ami entender (talves me equivoque ) al ser un lenguaje de moda existe mas información para resolver un problema.Igualmente sea el lenguaje que se adopte me apunto.
-
wloose dijo:
Yo propongo que el proyecto se realice en Mono ya que hay muchos programadores que trabajan en .Net en Windows (soy uno de estos) y ami entender (talves me equivoque ) al ser un lenguaje de moda existe mas información para resolver un problema.Igualmente sea el lenguaje que se adopte me apunto.
el lenguaje es irrelevante si no tenés quien lo haga como siempre, primero, quien tiene el tiempo y las ganas más el conocimientoo
no se si .net es "la" plataforma ideal, charlando con otro me hablaba de JAVA justamente por lo "multiplataforma"
sea como sea tiene que tocarlo alguien que sepa de video, al menos de mezclar video desde el código, yo nunca trabajé con video más que una cápsula hecha por otro donde uno copypastea y punto, ahora, meter mano, eso no
-
Acá les dejo una puntita.. para seguir investigando:
http://www.mitov.com/html/videolab.html
Saludos
-
Fabio dijo:
wloose dijo:
Yo propongo que el proyecto se realice en Mono ya que hay muchos programadores que trabajan en .Net en Windows (soy uno de estos) y ami entender (talves me equivoque ) al ser un lenguaje de moda existe mas información para resolver un problema.Igualmente sea el lenguaje que se adopte me apunto.
el lenguaje es irrelevante si no tenés quien lo haga como siempre, primero, quien tiene el tiempo y las ganas más el conocimientoo
no se si .net es la plataforma ideal, charlando con otro me hablaba de JAVA justamente por lo multiplataforma
sea como sea tiene que tocarlo alguien que sepa de video, al menos de mezclar video desde el código, yo nunca trabajé con video más que una cápsula hecha por otro donde uno copypastea y punto, ahora, meter mano, eso no
Seguramente ya lo habrás leído, y me da lástima no aportar nada en serio, pero no me puedo contener:
Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.
-
jaaaaaaa ... me mato la de marcos.
Hay que hacerlo en VB macro para ofice, despues si se cuelga el excel la culpa es de billy como siempre.
Fuera de joda, esta muy buena la idea y el analisis que hiciste. Yo, al igual que otros, abandone hace tiempo la programacion que no fuera "web oriented", hoy por hoy me pierdo un poco, pero la verdad, con proyectos copados uno se enciende de nuevo =D
...
ehm... nada, termine de comentar y me di cuenta que debe ser el comentario mas inutil del post. Apoyo moral a la causa!
-
Y si hacemos una colecta entre todos los lectores y con la guita que sacamos le pagamos a un programador para que lo haga?
Quién se prende? Eh, nadie? Nadie?
EH! No se vayan...
-
Fabio dijo:
jaja forro, el último PR no está liberado porque no tengo un theme default y porque tiene mucho hardcodeo que queda horrible. No quiero ver por ahí otro blog con mi mismo diseño y hasta mis banners!!!!
No se dice "hardcodeo"... Se dice que esta configurado en el codigo
Buena idea, lastima que me dediq a programar en la nube y me paso como a vos!!!
-
CarneDeCañon dijo:
Y si hacemos una colecta entre todos los lectores y con la guita que sacamos le pagamos a un programador para que lo haga?
Quién se prende? Eh, nadie? Nadie?
EH! No se vayan...
Bueno, para juntar plata bien se puede plantear bien el proyecto, y publicarlo en <a href="http://kickstarter.com">Kickstarter</a>
¿no?
Se le puede pagar al <em>mulo</em> ehm digo, voluntario programador ...
-
Tengo una idea que no tiene nada que ver con el post. Tambien no tengo la más mínima idea de programación. No tiene nada que ver postearla aca no?
-
Hey... para todo esto. Quiero saber si el programa en cuestion funciona o no. Me refiero al que aparece la imagen. Gracias
-
Raúl dijo:
Hey... para todo esto. Quiero saber si el programa en cuestion funciona o no. Me refiero al que aparece la imagen. Gracias
nop, justamente es un "mockup" de cómo debería ser un programa que sirva para esto
-
Hola Fabio te saluda carlos de lima peru, es muy interesante el vidblaster , en eeuu parece que gusta bastante a los broadcaster , seria buena idea ver la manera como funciona el vidblaster , donde se puede hallar informacion de los codecs y compresores que utiliza el programa , me parece a mi que tiene mucha fortaleza para realizar el stream y no consumir muchos recursos al anchio de banda y al cpu, ahora sera mejor o igual a FMLE ,yo trabajo con el FMLE , y estoy ahora realizando pruebas con la version gratuita de vidblaster , tendria que ver mas informacion para comprar la version home de 200 dolares y saber si la version gratuita es que version del vidblaster y que trae la version home y muy interesante a diferencia del FMLE que la interfaz es directa al servidor sin configurar casi nada ni entrar ya al ustream gracias saludos carlos.