我正在尝试使用VLC作为RTSP客户端。RTSP服务器基于libstreaming库。我使用的是1rst example提供的代码
// Sets the port of the RTSP server to 1234
Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putString(RtspServer.KEY_PORT, String.valueOf(1234));
editor.commit();
// Configures the SessionBuilder
SessionBuilder.getInstance()
.setSurfaceView(mSurfaceView)
.setPreviewOrientation(90)
.setContext(getApplicationContext())
.setAudioEncoder(SessionBuilder.AUDIO_NONE)
.setVideoEncoder(SessionBuilder.VIDEO_H264);
// Starts the RTSP server
this.startService(new Intent(this,RtspServer.class));android应用程序启动;我尝试使用VLC (open a stream)和以下URL访问流:
rtsp://192.168.43.250:1234该设备连接到相同的网络(我可以ping它),但在android应用程序和VLC显示“连接失败”窗口没有任何反应。
你知道问题出在哪里吗?可能是一个糟糕的URL,但我找不到这种情况的任何详细示例。
发布于 2015-10-23 13:20:44
它抛出空指针,检查日志。
您必须提供rtsp://ip:1234?h264=200-20-320-240形式的url
200 - buf 20 - fps 320 -分辨率w 240 -分辨率h
发布于 2017-04-19 03:40:34
我也遇到过类似的问题。这是我的解决方案。
公共类扩展包实现了requestWindowFeature(Window.FEATURE_NO_TITLE);,RtspServer.CallbackListener,Session.Callback{ AppCompatActivity final static String TAG = " MainActivity ";private SurfaceView mSurfaceView;private Session mSession;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);Override protected voidRTSP (R.layout.activity_main);mSurfaceView = (SurfaceView) findViewById(R.id.surface);//设置RTSP服务器的端口为1234 SharedPreferences.Editor编辑器=RTSP editor.putString( RtspServer.KEY_PORT,String.valueOf(1234));editor.commit();//配置SessionBuilder mSession = SessionBuilder.getInstance() .setCallback(this) .setSurfaceView((net.majorkernelpanic.streaming.gl.SurfaceView) mSurfaceView) .setPreviewOrientation(90) .setContext(getApplicationContext()) .setAudioEncoder(SessionBuilder.AUDIO_AAC) .setAudioQuality(new AudioQuality(8000,16000)) .setVideoEncoder(SessionBuilder.VIDEO_H264) //.setVideoQuality(new VideoQuality(320,240,20,500000)) .build();MSurfaceView.getHolder().addCallback(this.startService);测试字符串ip,port,path;//启动RTSP服务端this.startService(mSurfaceView.getHolder(this,.addCallback));log.d(“this.startService”,"1");mSession.startPreview();//手机界面摄像头预览mSession.start();} @Override public void onResume() { super.onResume();mSession.stopPreview();} @Override public void onDestroy() { super.onDestroy();mSession.release();mSurfaceView.getHolder().removeCallback(this);} //region} @Override public void (长比特率){} @Override public void ( int reason,int streamType,异常e) {} @Override public void (){} @Override public void (){} @Override public void (){} @Override public void (){} @Override public void (SurfaceHolder holder) {} @Override public void (SurfaceHolder holder,int格式,int宽度,int height) {} @Override public void (SurfaceHolder holder) {} //endregion }使用VLC播放器的
rtsp:// android设备ip :1234<--这个端口是硬编码的,请不要更改
发布于 2015-11-01 18:54:28
当我使用libstreaming & VLC时,我花了很多时间来解决同样的问题。我的解决方案是使用其他VLC版本。例如,它在vlc版本上对我有效。1.0.5,但许多其他版本不能播放该流。
https://stackoverflow.com/questions/32888047
复制相似问题