2011-12-03 17 views
9

esto es parte de un proyecto en el que estoy trabajando. Tengo dos aplicaciones Java para escritorio, una se ejecuta en el servidor (que tiene IP real) y la otra es el cliente. Solo quiero transmitir un video en vivo desde una cámara web conectada a la aplicación del servidor y reproducirlo en la aplicación del cliente. Quiero hacer esta transmisión desde más de una cámara.Transmisión de video en vivo entre el servidor y el cliente: al usar Java

He estado buscando por días entre Xuggler, JMF, Red5, VLCj. Simplemente no puedo entender por dónde debería comenzar ya que soy nuevo en el manejo de medios en la programación.

¿Alguna idea de dónde debería comenzar con esto?

Gracias de antemano

+0

fijaciones intento de Java a GStreamer: http://code.google.com/p/gstreamer-java/ –

Respuesta

8

que sugieren que vayas con VLCJ, porque además de en vivo de vídeo, se obtiene todas las características de VLC media player disponibles para su aplicación. Además, está disponible para Linux, Windows y Mac. Si puedes transmitir tu webcam en vivo con VLC, entonces puedes hacer lo mismo con VLCJ.

Consulte VLCJ wiki page para obtener detalles sobre cómo usarlo. Ellos proporcionaron muchos ejemplos en la wiki. Aquí hay un ejemplo de Http Streaming usando VLCJ. Copiado de ejemplos de VLCJ.

/* 
* This file is part of VLCJ. 
* 
* VLCJ is free software: you can redistribute it and/or modify 
* it under the terms of the GNU General Public License as published by 
* the Free Software Foundation, either version 3 of the License, or 
* (at your option) any later version. 
* 
* VLCJ is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
* GNU General Public License for more details. 
* 
* You should have received a copy of the GNU General Public License 
* along with VLCJ. If not, see <http://www.gnu.org/licenses/>. 
* 
* Copyright 2009, 2010, 2011 Caprica Software Limited. 
*/ 

package uk.co.caprica.vlcj.test.streaming; 

import uk.co.caprica.vlcj.player.MediaPlayerFactory; 
import uk.co.caprica.vlcj.player.headless.HeadlessMediaPlayer; 
import uk.co.caprica.vlcj.test.VlcjTest; 

/** 
* An example of how to stream a media file over HTTP. 
* <p> 
* The client specifies an MRL of <code>http://127.0.0.1:5555</code> 
*/ 
public class StreamHttp extends VlcjTest { 

    public static void main(String[] args) throws Exception { 
    if(args.length != 1) { 
     System.out.println("Specify a single MRL to stream"); 
     System.exit(1); 
    } 

    String media = args[0]; 
    String options = formatHttpStream("127.0.0.1", 5555); 

    System.out.println("Streaming '" + media + "' to '" + options + "'"); 

    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(args); 
    HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer(); 
    mediaPlayer.playMedia(media, options); 

    // Don't exit 
    Thread.currentThread().join(); 
    } 

    private static String formatHttpStream(String serverAddress, int serverPort) { 
    StringBuilder sb = new StringBuilder(60); 
    sb.append(":sout=#duplicate{dst=std{access=http,mux=ts,"); 
    sb.append("dst="); 
    sb.append(serverAddress); 
    sb.append(':'); 
    sb.append(serverPort); 
    sb.append("}}"); 
    return sb.toString(); 
    } 
} 
+0

Gracias por esto. ¿Puedo insertar esta transmisión en vivo dentro de la aplicación cliente? Como es una aplicación de escritorio. – Mariam

+0

@Mariam Si su cliente es una aplicación de escritorio, puede usar VLCJ para recibir y reproducir la transmisión también. – Jomoos

+0

¿Puedo usar esta lib para transmitir el video en el servidor? –

Cuestiones relacionadas