Streaming https://planet.communia.org/en en Qonfluo, el software de streaming de communia https://planet.communia.org/ca/content/qonfluo-el-software-de-streaming-de-communia <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog--rss.html.twig * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <span>Qonfluo, el software de streaming de communia</span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--blog--rss.html.twig * field--node--field-image--blog.html.twig * field--node--field-image.html.twig * field--node--blog.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="image field field--node-field-image field--name-field-image field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> <a href="/sites/default/files/qonfluo_1.png"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="eager" srcset="/sites/default/files/styles/max_325x325/public/qonfluo_1.png?itok=pNp1_1C4 325w, /sites/default/files/styles/max_650x650/public/qonfluo_1.png?itok=T1WUYsD2 650w, /sites/default/files/styles/max_1300x1300/public/qonfluo_1.png?itok=BxK05peh 1300w" sizes="(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw" width="325" height="236" src="/sites/default/files/styles/max_325x325/public/qonfluo_1.png?itok=pNp1_1C4" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> </a> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog--rss.html.twig * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> <a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="" alt="kinta" /> </a> <a title="View user profile." href="/en/users/kinta">kinta</a> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog--rss.html.twig * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'time' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> <time datetime="2014-09-27T19:07:34+02:00" title="Saturday, September 27, 2014 - 19:07">Sat, 09/27/2014 - 19:07</time> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog--rss.html.twig * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="body field field--node-body field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Si abans d'ahir parlava de <a href="http://planet.communia.org/content/comencem-el-curs-1415"><u>la presentació del curs 14-15</u></a>, 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 <a href="http://communia.org/content/project/qonfluo"><u>Qonfluo</u></a> i pretén fer fàcil els streamings als usuaris que trien software lliure.</p> <h3>Història i precedents:</h3> <p>Communia <a href="http://communia.org/content/servei/streaming"><u>sempre ha fet streamings</u></a>,de fet abans que existís ja en  fèiem amb Post Scriptum Ràdio, una ràdio que funcionava streamajant a <a href="http://giss.tv"><u>Giss.tv</u></a>. 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 (<a href="http://communia.org/ca/content/projecte/kpsrlive"><u>KPsrLive  </u></a>[<a href="http://winston.communia.org/wiki/communia/index.php/Categoria:Workspace"><u>Documentació</u></a>] i <a href="http://winston.communia.org/svn/kjingle/"><u>Kjingle</u></a> [<a href="http://winston.communia.org/wiki/communia/index.php/Kjingle"><u>Documentació</u></a>]).</p> <p>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 <a href="http://talk.maemo.org/showthread.php?t=45024"><u>QIce</u></a>. El qual va servir de  base per fer la versió d'escriptori, el <a href="http://communia.org/ca/content/projecte/q-ice"><u>QIce 2</u></a>. 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.</p> <p>Així, a nivell professional, El Qice no va ser mai rival de la línia de comandes, i fins el moment els streamings <a href="http://winston.communia.org/wiki/communia/index.php/Gstreamer_examples"><u>els fèiem des de consola</u></a>, 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à <a href="http://planet.communia.org/llibre/taller-de-streaming/recepta-4-multisources"><u>documentat aquí</u></a>.</p> <p>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...</p> <p>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.</p> <h3>De les cendres:</h3> <p>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.</p> <p>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.</p> <p>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.</p> <p>Ara està llesta una versió més o menys estable.</p> <p>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 <a href=" streamings"><u>fer els streamings</u></a> 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 <a href="http://communia.org/contact"><u>communia</u></a> o via <a href="https://github.com/aleixq/Qonfluo"><u>Github</u></a>.</p> <p>El que segur que tindrem en breu és una documentació per usuaris no tècnics en català/castellà, com a resultat de les <a href="communia.org/content/servei/formació"><u>formacions</u></a> (a un públic no hacker) que farem per fer streamings.</p> <p>Les tecnologies que fa servir són de les més recents a dia d'avui:</p> <ul><li><a href="http://gstreamer.freedesktop.org/"><u>Gstreamer-1.0</u></a></li> <li><a href="https://www.python.org/">Python3</a></li> <li><a href="http://qt-project.org/"><u>Qt5</u></a></li> </ul><p>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.</p> <p>Gstreamer, perquè és la millor manera de planificar fluxes audiovisuals actualment.Depèn de llibreries <a href="http://gstreamer.freedesktop.org/releases/gst-plugins-ugly/1.4.1.html"><u>ugly</u></a> i <a href="http://gstreamer.freedesktop.org/releases/gst-plugins-bad/1.4.1.html"><u>bad</u></a> de gstreamer,</p> <p>Python3 perquè és el llenguatge que més he fet servir per fer aplicacions d'escriptori.</p> <p>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 <a href="http://communia.org/contact"><u>communia</u></a> o via <a href="https://github.com/aleixq/Qonfluo"><u>Github</u></a>.</p> <h3>Funcionalitats:</h3> <p>Amb Qonfluo pots:</p> <ul><li>Emetre cap a qualsevol servidor de rtmp (bambuser, youtube, dailymotion...) amb h264.</li> <li>Gravar en Vp8, Mp2 o h264.</li> <li>Mescla bàsica entre diferents dispositius.</li> <li>Sobreposar Imatges.</li> <li>Sobreposar Text.</li> <li>Monitorització de mescla.</li> </ul><p> </p> <h3>Futur:</h3> <p>Com he dit no hi ha planificat cap desenvolupament. Però una de les coses que hi falta són:</p> <ul><li>P2P: permetre tenir entrades rebudes des del mateix Qonfluo.</li> <li>Nous protocols.</li> <li>UDP multicast seria una opció.</li> <li>Decidir quines entrades de vídeo fer servir.</li> <li>Control de l'entrada d'àudio, ara es pot fer servir pavucontrol (el gestor de sò de pulseaudio.</li> <li>Plugin de streaming cap a Icecast.</li> <li>Documentació.</li> </ul><p>Per descarregar-lo a:<a href="//github.com/aleixq/Qonfluo"><u>https://github.com/aleixq/Qonfluo</u></a>, les instruccions per instal·lar, i executar-lo són allà.</p> <p> </p> <p>Finalment haig de donar les gràcies a <a href="http://bambuser.com/"><u>Bambuser</u></a> 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.</p> <p>Youtube, DailyMotion i Ustream també ofereixen serveis de RTMP. També et pots muntar <a href="https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/"><u>el teu propi servidor</u></a>.</p> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-galeria--blog--rss.html.twig * field--node--field-galeria--blog.html.twig * field--node--field-galeria.html.twig * field--node--blog.html.twig * field--field-galeria.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-galeria field--name-field-galeria field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image-formatter.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="lazy" src="/sites/default/files/20140918_202026.jpg" width="4128" height="2322" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--blog--rss.html.twig * field--node--field-tags--blog.html.twig * field--node--field-tags.html.twig * field--node--blog.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-tags field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field-label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/en/etiquetes/streaming" hreflang="en">Streaming</a></div> <div class="field__item"><a href="/en/etiquetes/gstreamer" hreflang="en">gstreamer</a></div> <div class="field__item"><a href="/en/etiquetes/python" hreflang="en">python</a></div> <div class="field__item"><a href="/en/etiquetes/production" hreflang="en">production</a></div> <div class="field__item"><a href="/en/etiquetes/coding" hreflang="en">coding</a></div> <div class="field__item"><a href="/en/etiquetes/hacking" hreflang="en">hacking</a></div> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> Sat, 27 Sep 2014 17:07:34 +0000 kinta 94 at https://planet.communia.org https://planet.communia.org/ca/content/qonfluo-el-software-de-streaming-de-communia#comments