2017-05-08 102 views
0

我正尝试使用libstreaming api接收在android应用中创建的rtsp流。它以h264和aac编码。我试图在VLC播放器和另一个使用提供的代码的Android设备上观看它,但它似乎不起作用。从libstreaming播放rtsp流

的logcat:

05-08 15:10:43.266 5631-5631/net.majorkernelpanic.example1 E/WIFIIP: Unable to get host address. 
05-08 15:10:43.992 1311-5663/? E/RTSPSource: Server picked invalid RTP/RTCP port pair 39108-49193, RTP port must be even, RTCP port must be one higher. 

代码:

String url2 = "rtsp://ip address:port"; 

SurfaceView mSurfaceView = (SurfaceView)findViewById(R.id.surface_video); 
SurfaceHolder holder = mSurfaceView.getHolder(); 
MediaPlayer mediaPlayer = new MediaPlayer(); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
try { 
    mediaPlayer.setDataSource(url2); 
    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      mediaPlayer.setDisplay(holder); 
      mediaPlayer.start(); 
     } 
    }); 
    mediaPlayer.prepareAsync(); // prepare async to not block main thread 
} catch (IOException ex) { 
    System.out.println(ex.toString()); 
    System.out.println("Unable to connect."); 
} 

回答

0

从您的logcat的错误:

RTSPSource: Server picked invalid RTP/RTCP port pair 39108-49193, RTP port must be even, RTCP port must be one higher

看来你应该修改libstreaming服务器端端口。错误指定“RTP端口必须是偶数,RTCP端口必须高一个”,例如你可以分别使它成为39108,39109。修改你的服务器代码并重试?

相关问题