Il Blog di Fabrizio Mondo

Peercast, ovvero come aggirare il problema banda

gennaio 31, 2007 8:01 pm

Peer to Peer schema

Diciassettesimo articolo dedicato alle web radio.

Si è già parlato teoricamente di P2P e radio, ma adesso vediamo come potere affrontare concretamente il problema.

Creare dei relay con shoutcast è possibile, ma non sempre semplice e fattibile, in quanto anche ripetendo il segnale, si incorre in un cambiamento di indirizzo.

Il problema è (parzialmente) risolto da Peercast, un programma disponibile per tutti i sistemi operativi, che permette lapolitica monorelayed radio SENZA cambiamento di indirizzi.

Esaminiamo la pagina dedicata a Peercast sulla Wiki Inglese che dice:

PeerCast is an open source streaming media multicast tool. PeerCast uses peer to peer technology to minimize the necessary upload bandwidth for the original multicastor.

Ovvero: “Peercast è uno strumento per lo streaming audio/video open source. Peercast usa la tecnologia Peer to peer per minimizzare la necessaria banda in upload del trasmettitore originale”.

Peercast can be used to multicast streaming audio (Ogg Vorbis, MP3, WMA) and/or video (Ogg Theora, Nullsoft Streaming Video, or WMV), or any other stream of data, over the internet. Peercast uses a distributed bandwidth technique to lighten the load of the broadcaster’s upstream bandwidth where each listener/viewer will relay the stream they download to one or more additional listeners. Users may choose how many relays to allow, and if a listener sets their relays to ’0′, then they will essentially not contribute back to the stream at all.

In sintesi, Peercast implementa il metodo Mono Relayed Radio, ovvero ogni ascoltatore può decidere se e quanti altri ascoltatori contribuire a servire. In pratica Peercast vi permette di trasformarvi da nodi rossi a nodi verdi.

When a relay is lost, all peers underneath it (might) lose their connection to the stream and must reconnect to another relay, also when reconnecting to another relay, a peer (might) have to accept the point in the stream the new relay is at, potentially causing a skip or repeat in the stream.

Quando un ripetitore si disconnette, si disconnettono tutti gli utenti ( e anche gli altri relay ) a lui correlati (in pratica non funzionano più tutti i suoi sottoalberi) e gli utenti devono connetersi ad un altro relay. Se questo ha un ritardo differente dal relay che li ha disconnessi, potrebbero ipoteticamente sentire di nuovo una parte dello streaming gia sentita.. o perdersene una parte.

Corporate environments and their security policies might not appreciate the fact that it uses peer-to-peer technology and essentially turns listeners by default into servers.

Since it turns all of the network in a server, distributing content for which you might not have a license could cause legal concerns, depending on the jurisdiction and local legislation the node falls under.

Tradotto in una riga: “SIAE e SCF lo proibiscono”

Lasciamo adesso la pagina Wiki dedicata a Peercast e buttiamoci direttamente alla sorgente. In questa pagina si trova un elenco di risorse su Peercast, dalla FAQ (che vorrei tradurre) alla wiki dedicata a Peercast.

Insomma, cominciamo a conoscere anche questo mondo.. e vediamo che cosa ci può offrire di bello.

20 Responses to “Peercast, ovvero come aggirare il problema banda”

andrea wrote a comment on febbraio 2, 2007

ciao sono sempre io il tuo incubo peggiore ehehe volevo chiederti ma è neccessario che tutti i miei ascoltatori abbiamo peercast o ne bastano solo alcuni? e poi sul sito ci sono tante versioni scarico quella per xp o quella per win amp?

Fabrizio Mondo wrote a comment on febbraio 2, 2007

Ciao Andrea!

Be, in teoria non è assolutamente necessario che abbiano PeerCast tutti. Di certo chi ha peercast come client di ascolto può sfruttare il mono relayed radio model, ma non è mica obbligatorio.. la radio non viene stravolta.

Ti consiglio di scaricare la versione per Winamp. Ma siccome sto provando a sperimentare qualco anche io, perchè non le provi entrambi e mi fai sapere qualcosa?

Grazie 1000,

Salutoni.

lorenzo wrote a comment on febbraio 3, 2007

ciao fabrizio volevo sapere che funzione a il peer cast
e come si utilizza…
grazie

Fabrizio Mondo wrote a comment on febbraio 3, 2007

Ciao Lorenzo,

Be, capisco che l’articolo è lungo.. però è tutto scritto li, mi sembra un pò assurda come domanda…

In soldoni il peercast è un programma che serve a permetterti, tramite altri computer, di aumentare la banda disponibile per i tuoi ascoltatori.

Il sito è indicato sulla guida come vi è indicato anche dove trovare aiuto e documentazione..

Vanno bene le domande, ma almeno gli articoli leggiamoli no? ;)

Salutoni.

lorenzo wrote a comment on febbraio 3, 2007

sineramene nn ho capito comunqu grazie….

Fabrizio Mondo wrote a comment on febbraio 3, 2007

Be lorenzo, capisco che posso essere poco chiaro.

Se c’è qualcosa che NON capisci, chiedimelo chiaramente, ti risponderò.

lorenzo wrote a comment on febbraio 3, 2007

questo programma chi lo dovrebbe usare io oppure gli ascoltatori?

oppure entrambi? come si usa? questo programma e free o completo?

grazie

Fabrizio Mondo wrote a comment on febbraio 3, 2007

Allora,

il programma dovreste utilizzarlo tu e chi vuoi che faccia da ripetitore. Si usa esattamente come qualsiasi encoder, su questo sto sviluppando un altra guida.

Il programma è freeware, le info le trovi qui.

This means that people on your LAN can search for and listen to channels without having to install the client software on their PC

Chiaro? Puoi anche fare ascoltare la radio a persone che non hanno il software installato.

Ti consiglio di provarlo e poi venirne a parlare qui…

gilberto wrote a comment on febbraio 26, 2007

Ho sviluppato anch’io un programma (a due componenti) ispirandomi a peercast e avrei bisogno di un pò di feedback.
Il nome è CoopCast e chiunque lo può provare visitando il mio sito.
E’ scritto in c# e se avete voglia di giocare un pò con il sorgente ve lo posso tranquillamente inviare. Non l’ho ancora pubblicato come opensource perchè sto valutando il tipo di licenza più indicato.
Rispetto a peercast ha qualche caratteristica in più (gestisce meglio i peers firewalled e quelli natted) e qualcuna in meno (supporta solo ASF, WMV, VMA su HTTP e AUDIO/MPEG, MP3 su ICECAST/SHOUTCAST). La dimensione del peer (che è il componente che va installato sui clients) è attualmente circa 360Kb ma credo di poterla ridurre drasticamente (credo di un 60/70%).

Fabrizio Mondo wrote a comment on febbraio 26, 2007

Ciao Gilberto, complimenti davvero.

Sono molto contento di offrirti il feedback che desideri. E’ un progetto molto interessante, come sai, mi sto crucciando su come effettuare broadcasting sfruttando il p2p. Ti invito a spiegarci, magari pubblicamente, qualcosa di più sul tuo progetto. Non conosco il C# per cui non sarei in grado di interpretare il sorgente, se non in modo minimale.

Per la licenza ti consiglio una licenza GFDL o qualcosa che ti permetta di avere i tuoi diritti comunque tutelati, nel rispetto della libera condivisione del sorgente. Ti garantisco che la paternità del tuo codice, verrà SEMPRE attribuita a te, qualora se ne parli qui.

Vorrei saperne di più. Ti manderò una mail al più presto.

Grazie ancora, torna quando vuoi.

GS Defender wrote a comment on febbraio 26, 2007

@Fabrizio:

Per la licenza ti consiglio una licenza GPL

;-) (anche perchè la GFDL non copre il software, solo documenti, immagini e similia)

Fabrizio Mondo wrote a comment on febbraio 26, 2007

Grazie gsd, di licenze effettivamente non me ne intendo molto!

gilberto wrote a comment on febbraio 27, 2007

Grazie ragazzi,
per quanto riguarda la licenza sono anche io orientato verso la GPL, anche se la considero un pò troppo prolissa e non semplicissima da interpretare. Intanto metto in ordine i sorgenti e ci rifletto ancora un pò.
Voglio ringraziare Fabrizio per il suggerimento postato sul forum. Ci ho lavorato un pò ed ora CoopCast supporta AAC+. Purtroppo il WMP non riconosce questo formato e quindi è necessario installare sul client il Winamp o il VLC player. Stò provvedendo ora a sistemare la documentazione, quando avrò pronto un pò di materiale sarò lieto di pubblicarlo anche quì.

Ciao

Fabrizio Mondo wrote a comment on febbraio 27, 2007

Mamma mia che efficienza! Ti ho mandato via mail il mio indirizzo msn, contattami appena puoi.

gilberto wrote a comment on marzo 4, 2007

Ciao Fabrizio,

hai ricevuto i sorgenti di CoopCast Peer ? Te lo chiedo xchè per inviarli ad un altro amico ho avuto un pò di problemi con la mia casella di posta e, visto che non ci siamo più sentiti, non vorrei che lo stesso problema si sia virificato anche con te. Ti prego di farmi sapere se li hai ricevuti con un messaggio sul forum di http://coopcast.netsolutions.it.

gibbo

Fabrizio Mondo wrote a comment on marzo 4, 2007

Ciao Gilberto, si, li ho ricevuti e sto cercando di interpretarli. Perdonami se non ho risposto ma ho avuto troppo da fare.

Grazie mille!

andrea wrote a comment on marzo 6, 2007

ma nn è che mi potresti spiegare passo passo che c’è da fare per impostare percast e per configurare i relay….il tutto trasmettendo con sam…se ce la fai a farmi capire come funziona ti faccio una statua!

Fabrizio Mondo wrote a comment on marzo 6, 2007

Ciao Andrea, temo di no. Grazie per la proposta statua. Ma peercast con altri programmi va studiato bene dall’inizio alla fine, e per ora ho troppi argomenti pendenti. Considera che peercast o coopcast vanno bene, se hai dei relay validi, solidi e sempre connessi e questo spesso non succede.

Si tratta di aspettare, comincia tu ad utilizzarlo e commenta pure, ti risponderò(remo)

Marco wrote a comment on maggio 9, 2007

Ciao fabrizio,sono uno studente di informatica e sto preparando la tesi. La mia intenzione era di farla sulle web tv e in particolare creare un plugin per peercast…ho un blog dove scrivo passo-passo quello che combino http://marcomoscotto.blogspot.com/ se puoi darmi qualche dritta…per il momento vorrei configurare peercast con vlc ma non essendo pratico del campo devo ancora studiarci su.
Se vuoi o se conosci qualcuno in grado di poter collaborare con me (e altre persone che mi stanno dando consigli e aiuti) fammi sapere…ogni consiglio di una persona pratica del campo è sempre ben accetta.

Marco
http://gighen1984.altervista.org
email e msn messenger: marco_mosco@msn.com
skype: gighen1984

Fabrizio Mondo wrote a comment on maggio 9, 2007

Ciao Marco, anche io sono uno studente come te, in bocca al lupo per la tesi e complimenti per il sito e per il blog. Se ti serve qualche dritta io posso aiutarti in modo pratico sulle web radio e sullo streaming audio, e solo teoricamente anche sullo streaming video.

Esiste un elenco di articoli dedicati alle web radio, trovi il link in alto.

Salutoni

Care to comment?