Qonfluo, el software de streaming de communia

Si abans d'ahir parlava de la presentació del curs 14-15, i comentava la importància de revertir en les nostres comunitats les produccions fent que passin al procomú. Aquesta entrada és per comentar-ne una de nova que feia temps que tenia ganes de realitzar i que ha sigut al poder alliberar temps per obrir el calaix de sastre de projectes que es van quedar pausats. El projecte és el Qonfluo i pretén fer fàcil els streamings als usuaris que trien software lliure.

Història i precedents:

Communia sempre ha fet streamings,de fet abans que existís ja en  fèiem amb Post Scriptum Ràdio, una ràdio que funcionava streamajant a Giss.tv. Ja llavors vaig començar alguns programes destinats a facilitar tant el directe com la programació automatitzada de la ràdio , molt verds i vist en perspectiva amb moltes mancances i poc estil, però em van servir per introduir-me en les llibreries Qt4 per Python (KPsrLive  [Documentació] i Kjingle [Documentació]).

Més endavant, amb la promesa de Nokia amb l'N900( telèfon obert amb un sistema basat en debian), també vaig fer un programa que permetia fer streaming cap a un servidor IceCast: el QIce. El qual va servir de  base per fer la versió d'escriptori, el QIce 2. El programa però, és extremadament limitat i estàtic pel que fa a la utilització de maquinari divers i es basa en Gstreamer-0.10.

Així, a nivell professional, El Qice no va ser mai rival de la línia de comandes, i fins el moment els streamings els fèiem des de consola, fent un loopback del dispositiu de vídeo (v4l2loopback) amb canonades Gstreamer-0.10 que transmetien cap a Bambuser via Rtmp, Icecast-Giss.tv, i paral·lelament gravaven. Està documentat aquí.

La solució era extremadament flexible, massa i tot, ja que quan et trobaves enmig d'un streaming i alguna cosa anava malament, revisar llargues canonades no era una bona experiència...

Així feia temps que tenia pendent de fer un programa que permetés fer streamings de manera flexible i que heretés part de la potència de la modularitat de gstreamer, tot això sense que no fos tant estàtic com un QIce, que sols funcionava per hardwares concrets.

De les cendres:

Mica en mica ens trobàvem que havíem d'anar mutilant els serveis, fins que degut al canvi de política de bambuser i fer premium el servei de Rtmp, ens vam veure obligats a fer streaming via Flash. Passàvem de la flexibilitat absoluta de Gstreamer a la rigidesa d'una tecnologia que tothom vol esborrar del mapa, la qual és propietària i ja ha anunciat que no es desenvoluparà més per GNU/Linux.

La situació era incòmode i poc coherent per una cooperativa com communia: Haver d'oferir serveis tant limitats i amb tant poques garanties a qui comptava amb nosaltres era poc professional i vam arribar al punt de rebutjar alguna demanda.

La necessitat d'un programa pensat per fer streamings tipus Adobe FMLE en GNU/Linux, era per nosaltres una urgència, i si no existia, s'havia de fer.

Ara està llesta una versió més o menys estable.

El seu manteniment i desenvolupament no està garantit ni planificat, ja que pel moment només hi ha un contribuïdor (me), però segur que amb les necessitats de Communia i la seva adopció per fer els streamings a partir d'ara, se li dedicarà tot l'afecte que li calgui. També estic obert a propostes que es poden fer via contacte de communia o via Github.

El que segur que tindrem en breu és una documentació per usuaris no tècnics en català/castellà, com a resultat de les formacions (a un públic no hacker) que farem per fer streamings.

Les tecnologies que fa servir són de les més recents a dia d'avui:

Degut a ser tecnologies relativament noves, he tingut algunes dificultats per trobar documentació perquè no hi ha molt escrit pel que fa a fer servir juntament Qt5 i Gstreamer-1.0 (al contrari del que passa amb Gtk). El perquè he fet servir Qt5 és perquè és el UI framework que he fet servir més fins el moment, i obre la porta a vistes QML (qui sap si algun dia tota la GUI) com el que es fa servir per graficar el consum de xarxa.

Gstreamer, perquè és la millor manera de planificar fluxes audiovisuals actualment.Depèn de llibreries ugly i bad de gstreamer,

Python3 perquè és el llenguatge que més he fet servir per fer aplicacions d'escriptori.

Com és habitual en projectes FLOSS, haig d'advertir que el programa està fet per un ús propi, i no té perquè funcionar-te, no ofereixo cap garantia, i no tinc cap compromís més que el que les meves motivacions personals i el que el meu impenitent lliure albir em dicta. Si creus que pots col·laborar pots contactar ets lliure de fer-ho via contacte de communia o via Github.

Funcionalitats:

Amb Qonfluo pots:

  • Emetre cap a qualsevol servidor de rtmp (bambuser, youtube, dailymotion...) amb h264.
  • Gravar en Vp8, Mp2 o h264.
  • Mescla bàsica entre diferents dispositius.
  • Sobreposar Imatges.
  • Sobreposar Text.
  • Monitorització de mescla.

 

Futur:

Com he dit no hi ha planificat cap desenvolupament. Però una de les coses que hi falta són:

  • P2P: permetre tenir entrades rebudes des del mateix Qonfluo.
  • Nous protocols.
  • UDP multicast seria una opció.
  • Decidir quines entrades de vídeo fer servir.
  • Control de l'entrada d'àudio, ara es pot fer servir pavucontrol (el gestor de sò de pulseaudio.
  • Plugin de streaming cap a Icecast.
  • Documentació.

Per descarregar-lo a:https://github.com/aleixq/Qonfluo, les instruccions per instal·lar, i executar-lo són allà.

 

Finalment haig de donar les gràcies a Bambuser per oferir-nos comptes Premium per poder fer el desenvolupament d'aquest projecte i així poder emetre a un servidor RTMP potent. És conegut que bambuser aposta pel periodisme d'esperit crític i durant les primaveres àrabs han ofert els seus serveis gratuïtament a videobloggers, el mateix ha passat aqui amb els videobloggers del 15M. Si fas periodisme crític i creus que s'ha de conèixer el què dius no dubtis a contactar-hi.

Youtube, DailyMotion i Ustream també ofereixen serveis de RTMP. També et pots muntar el teu propi servidor.

Add new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Semantic linkbacks

This site uses semantic webmentions to interact between sites and build federated conversations.