• Red5: il server di streaming multimediale opensource

    Date: 2010.08.04 | Category: Red5 | Tags: ,

    Red5 il server multimediale opensource

    Red5 è un server multimediale open-source sviluppato in Java, stretto parente del prodotto closed-source Adobe Flash Media Server, che vi consente di implementare lo streaming dei video su internet. Ma Red5 non si ferma al mero streaming su internet, tramite questo potete strumento potete realizzare applicazioni quali videoconferenze, chats, lavagnette, webtv, multiplayer web games etc.
    Come applicazione client si utilizzerà il famoso Adobe Flash Player.

    Che cos’è lo streaming in due parole

    Con il termine streaming si intende un flusso di dati audio/video trasmessi da una sorgente a una o più destinazioni su Internet.

    Perché usare lo streaming su Internet?

    E’ noto che le informazioni audio e video richiedono per la trasmissione una
    notevole quantità di banda, che cresce poi con l’aumentare della qualità richiesta.

    Questo si traduce in un non trascurabile tempo necessario a scaricare un file audio e/o video sul disco del proprio computer, prima di poterne iniziare l’ascolto e/o la visione.

    Lo spazio disco richiesto può inoltre non essere così esiguo: un filmato audiovisivo
    digitale di 10 minuti di qualità discreta impegnerebbe decine di megabyte.

    Le tecniche di “streaming” permettono di ridurre questo tempo ad un piccolo
    ritardo iniziale, senza richiedere alcuno spazio sul disco locale: il file richiesto viene infatti visualizzato al momento, senza un preventivo download.

    Come è realizzato lo streaming

    Lo streaming è realizzato da opportuni software client-server: in questo momento non esiste ancora uno standard, per cui per funzionare un dato client generalmente va abbinato al server dello stesso costruttore.

    Nel nostro caso il client è Adobe Flash Player mentre il server è Red5.

    Esempi di altri server/client:

    • Windows Media Services – Windows Media Player
    • Quicktime Streaming Server – Quicktime Player
    • Java Media Framework – Java
    • Adobe Flash Media Server – Adobe Flash Player

    Esistono tanti formati Video(AVI, MPEG, MOV,GP3): quale usare?

    Dipende dal contesto.
    Nell’ambito web sicuramente la scelta migliore è il formato FLV (FLash Video).

    Le origini del formato FLV

    È stato introdotto dalla versione Mx2004 di Adobe Flash, la quale ha dato vita a un nuovo formato video, l’FLV (Flash Video) particolarmente adatto al web dato il suo ottimo rapporto qualità/peso;

    Creare un file FLV è semplice, basta utilizzare Adobe Flash Video Encoder, incluso nel pacchetto Adobe Flash oppure è possibile fruire di strumenti opensource come il software FFMPEG (http://sourceforge.net/projects/ffmpeg/)

    Esempi FFMPEG

    Esempi

    Convertire da mpg a flv
    ffmpeg -i nome_file.flv nome_file.mpg

    Se si vuole estrarre l’audio da un video
    ffmpeg -i nomevideo -f mp3 nomefile.mp3

    Che cos’è Red5

    Red5 è un potente server multimediale open source sviluppato in Java che supporta:

    • Streaming Audio/video: è la trasmissione in modalità streaming di file Audio/Video in formato FLV e MP3 (Es. Player Mp3, Player Video)
    • Recording Client Stream: consiste nella possibilità di salvare in formato FLV su una specifica cartella del server il contenuto audiovisivo trasmesso da una web cam o videocamera
    • Real-time Multi-player gaming: realizzare giochi open source
    • Broadcast di Live Streams: è il concetto base utilizzato nelle videoconferenze, cioè si trasmette in diretta dove c’è un unico relatore e n uditori.
    • Con Red5 non è possibile:

      1. Mandare in streaming file in formato AVI, MOV, WAV etc E’ necessario convertire questi file in formato FLV
      2. Registrare video/audio in formato Mp3, AVI, MOV

      Red5: esempi di applicazioni

      • Chat
      • Videoconferenza
      • Lavagnetta Condivisa
      • Player video
      • Player Mp3
      • Web TV
      • Video Notizie live in streaming
      • Sistemi di Collaborazione Online
      • Realtime multiplayer Game
      • Aule Web
      • Video Blog
      • Etc

      RTMP – Real Time Messaging Protocol

      Red5 viene installato su una macchina come un WebServer ma funziona in maniera diversa. Mentre il WebServer si occupa di servire le richieste di connessione temporanee HTTP, Red5 stringe connessioni PERSISTENTI con i filmati flash in esecuzione sul Flash Player.

      Il protocollo usato tra un filmato SWF e Red5 si chiama Real Time Messaging Protocol (RTMP). A differenza del protocollo HTTP, il protocollo RTMP stabilisce connessioni persistenti con il server.

      Il protocollo RTMP consente di inviare audio codificato in formato mp3, video in formato Flash Video Format (FLV), e istruzioni ActionScript in formato Action Message Format (AMF).

      Esso si appoggia sul TCP, per trasmettere i pacchetti dal client al server e viceversa.
      In conclusione possiamo immaginare una connessione RTMP come un canale attraverso cui passa audio, video e ActionScript.

      Tunneling con RTMP


      Red5 supporta il protocollo RTMPT = Real Time Messaging Protocol Tunneling

      Architettura Red5 Scenario Tipico

      Esempio: un utente visualizza sul proprio browser un filmato FLV
      ricevuto in streaming dal server Red5
      Architettura Red5 Scenario Tipico

      Red5 Server.it: Guide su Red5, Tutorials e molto altro ancora

      Nel mese di ottobre 2010 ho avviato il blog www.red5server.it in cui pubblicherò articoli e guide sul server di streaming multimediale opensource.

      Ecco uno screenshot che illustra come si presenta il blog:
      Red5server.it - Tutorials e Guide su Red5

      Visitate il Blog www.red5server.it