Live video streaming between Server and client - Using Java
Asked Answered
E

1

9

this is part of a project I am working on. I have two desktop java application , one runs on the server (which has real IP), and the other is the client. I just want to stream a live video from a webcam connected to the server application , and play it on the client application. I want to do this streaming from more than one camera.

I have been looking searching for days between Xuggler, JMF, Red5, VLCj. I just can't figure from where I should start as I am new to dealing with media in programming.

Any ideas from where I should start with this ?

Thanks in advance

Examine answered 3/12, 2011 at 14:23 Comment(1)
try java bindings to gstreamer: code.google.com/p/gstreamer-javaMytilene
C
9

I suggest you to go with VLCJ, because in addition to live video streaming, you get all features of VLC media player available to your application. Also, it is available for Linux,Windows, and Mac. If you can live stream your webcam with VLC, then you can do the same with VLCJ.

Refer VLCJ wiki page for details on how to use it. They provided many examples in the wiki. Here is an example of Http Streaming using VLCJ. Copied from VLCJ examples.

/*
 * 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();
  }
}
Coney answered 3/12, 2011 at 18:5 Comment(4)
Thank you for this . Can I embed this live stream inside the client application ? As it's a desktop application.Examine
@Examine If your client is a desktop application, you can use VLCJ itself to receive and play the stream also.Coney
Can I use this lib to stream the video at server side?Ambrogino
Hi even i am trying to implement the same thing when i try to import the VlcjTest package it says cant find the required package can you help me?Anemology

© 2022 - 2024 — McMap. All rights reserved.