Caméra IP lecture d'un flux au protocole RTSP avec JMF
bonjour,
j'essaye de lire un flux "streaming" d'un camera ip grâce au protocole RTSP avec JMF.
je rencontre cependant des soucis :
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| public static void main(String[] args) {
// TODO code application logic here
Player player = null;
String mediaFile ="rtsp://[]:554/live.sdp";
try {
MediaLocator mrl = new MediaLocator(mediaFile);
//URL url = new URL(mediaFile);
// DataSource ds = Manager.createDataSource(mrl);
player = Manager.createPlayer(mrl);
//player = Manager.createPlayer(mrl);
// player.realize();
// player.prefetch();
JFrame jf = new JFrame();
jf.add(player.getControlPanelComponent());
jf.add(player.getVisualComponent());
jf.setVisible(true);
jf.pack();
//player.start();
}
catch (Exception e) {
System.err.println("Got exception "+e.getMessage());
}
} |
voici les erreurs
Code:
1 2 3 4 5 6
| javax.media.NotRealizedError: Cannot get control panel component on an unrealized player
at com.sun.media.BasicPlayer.getControlPanelComponent(BasicPlayer.java:509)
at[]
Exception in thread "main" javax.media.NotRealizedError: Cannot get control panel component on an unrealized player
at com.sun.media.BasicPlayer.getControlPanelComponent(BasicPlayer.java:509)
at [] |
en changeant quelque peu le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| String mediaFile ="rtsp://[monip]:554/live.sdp";
try {
MediaLocator mrl = new MediaLocator(mediaFile);
//URL url = new URL(mediaFile);
// DataSource ds = Manager.createDataSource(mrl);
if(mrl != null)
{
try
{
player = Manager.createPlayer(mrl);
}
catch(NoPlayerException e)
{
System.out.println(e.getStackTrace());
player = null;
}
catch (MalformedByteSequenceException e)
{
System.out.println(e.getStackTrace());
player = null;
}
player.realize();
//player = Manager.createPlayer(mrl);
// player.realize();
// player.prefetch();
JFrame jf = new JFrame();
//jf.add(player.getControlPanelComponent());
//jf.add(player.getVisualComponent());
jf.setVisible(true);
jf.pack();
//player.start();
}
else
{
System.out.println("MRL can't build because mrl is empty");
}
}
catch (Exception e) {
System.err.println("Got exception "+e.getMessage());
} |
j'ai un nouveau message d'erreurs :
Code:
1 2 3 4 5 6
| Exception in thread "JMF thread: com.sun.media.content.rtsp.Handler@181497d[ com.sun.media.content.rtsp.Handler@181497d ] ( realizeThread)" java.lang.ArrayIndexOutOfBoundsException: 0
at com.sun.media.content.rtsp.RtspUtil.rtspStart(RtspUtil.java:310)
at com.sun.media.content.rtsp.Handler.initRtspSession(Handler.java:166)
at com.sun.media.content.rtsp.Handler.doRealize(Handler.java:84)
at com.sun.media.RealizeWorkThread.process(BasicController.java:1400)
at com.sun.media.StateTransitionWorkThread.run(BasicController.java:1339) |