0

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

日志猫:

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.");
}
4

1 回答 1

0

从您的 Logcat 错误:

RTSPSource:服务器选择了无效的 RTP/RTCP 端口对 39108-49193,RTP 端口必须是偶数,RTCP 端口必须大一

看来你应该修改你的 libstreaming 服务器端端口。该错误指定“RTP 端口必须是偶数,RTCP 端口必须高一”,因此您可以分别将其设为 39108、39109。修改您的服务器代码并重试?

于 2017-08-17T07:20:58.220 回答