2014-05-13 2 views
3

J'essaie d'ouvrir un flux vidéo à partir d'un serveur RTSP dans une application JAVA. D'abord, j'essayé de courir cet exemple:Exemple d'exécution RTSP avec l'exemple vlcj (JAVA)

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 using RTSP. 
* <p> 
* The client specifies an MRL of <code>rtsp://@127.0.0.1:5555/demo</code> 
*/ 
public class StreamRtsp 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 = formatRtspStream("127.0.0.1", 5555, "demo"); 

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

    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(args); 
    HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer(); 
    mediaPlayer.playMedia(media, 
     options, 
     ":no-sout-rtp-sap", 
     ":no-sout-standard-sap", 
     ":sout-all", 
     ":sout-keep" 
    ); 

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

    private static String formatRtspStream(String serverAddress, int serverPort, String id) { 
    StringBuilder sb = new StringBuilder(60); 
    sb.append(":sout=#rtp{sdp=rtsp://@"); 
    sb.append(serverAddress); 
    sb.append(':'); 
    sb.append(serverPort); 
    sb.append('/'); 
    sb.append(id); 
    sb.append("}"); 
    return sb.toString(); 
    } 
} 

Mais j'ai toujours le même résultat: Spécifiez une seule LMR pour diffuser

http://i.stack.imgur.com/8iX0O.png

Même si je supprime cette section:

if(args.length != 1) { 
      System.out.println("Specify a single MRL to stream"); 
      System.exit(1); 
     } 

Pouvez-vous m'aider s'il vous plaît?

Répondre

1

Sons comme vous passez pas vraiment un argument au programme, qu'il attend de cette ligne:

String media = args[0]; 

Si vous ne voulez pas passer un argument, il suffit de changer à:

String media = "(location of rtsp to stream)"; 

... et supprimez l'instruction if ci-dessus comme vous l'avez déjà fait.

+1

Merci. Problème résolu ! – user3634476