2011-12-03 28 views
9

Bu, üzerinde çalıştığım bir projenin bir parçasıdır. İki adet masaüstü java uygulamasına sahibim, biri sunucuda çalışıyor (gerçek IP'ye sahip), diğeri ise istemci. Sadece sunucu uygulamasına bağlı bir web kamerasından canlı bir video akışı yapmak ve istemci uygulamasında oynatmak istiyorum. Bu akışı birden fazla kameradan yapmak istiyorum.Sunucu ve istemci arasında canlı video akışı - Java'yı Kullanma

Xuggler, JMF, Red5, VLCj. Programlamada medya ile uğraşmak için yeni olduğum yerden başlamam gereken bir şey değil.

Buradan başlayacağım herhangi bir fikir var mı? peşin

+0

deneyin java bağlamaları: http://code.google.com/p/gstreamer-java/ –

cevap

8

yılında

teşekkürler ben yanı sıra videoya Canlı akışa çünkü sen, uygulamanız için kullanılabilir VLC media player tüm özelliklerini almak, VLCJ ile gitmek öneririz. Ayrıca, Linux, Windows ve Mac için kullanılabilir. Web kameranızı VLC ile canlı olarak yayınlayabiliyorsanız, VLCJ ile de aynısını yapabilirsiniz.

Nasıl kullanılacağı hakkında ayrıntılı bilgi için VLCJ wiki page'a bakın. Viki'de birçok örnek verdiler. İşte VLCJ kullanarak Http Streaming bir örneğidir. VLCJ örneklerinden kopyalandı. gstreamer için

/* 
* 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

Bunun için teşekkür ederiz. Bu canlı akışı istemci uygulamasına yerleştirebilir miyim? Bir masaüstü uygulaması olduğu için. – Mariam

+0

@Mariam İstemciniz bir masaüstü uygulamasıysa, akışı almak ve oynatmak için VLCJ'yi de kullanabilirsiniz. – Jomoos

+0

Videoyu sunucu tarafında görüntülemek için bu lib kullanabilir miyim? –