首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libstreaming -使用VLC作为RTSP客户端

Libstreaming -使用VLC作为RTSP客户端
EN

Stack Overflow用户
提问于 2015-10-01 20:50:53
回答 4查看 4.6K关注 0票数 3

我正在尝试使用VLC作为RTSP客户端。RTSP服务器基于libstreaming库。我使用的是1rst example提供的代码

代码语言:javascript
复制
        // 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访问流:

代码语言:javascript
复制
rtsp://192.168.43.250:1234

该设备连接到相同的网络(我可以ping它),但在android应用程序和VLC显示“连接失败”窗口没有任何反应。

你知道问题出在哪里吗?可能是一个糟糕的URL,但我找不到这种情况的任何详细示例。

EN

回答 4

Stack Overflow用户

发布于 2015-10-23 13:20:44

它抛出空指针,检查日志。

您必须提供rtsp://ip:1234?h264=200-20-320-240形式的url

200 - buf 20 - fps 320 -分辨率w 240 -分辨率h

票数 4
EN

Stack Overflow用户

发布于 2017-04-19 03:40:34

我也遇到过类似的问题。这是我的解决方案。

  1. 确保您已通过android studio将库作为导入的模块导入
  2. 为您的清单提供使用所需资源的权限

  1. 为您使用以下代码MainActivity:

公共类扩展包实现了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<--这个端口是硬编码的,请不要更改

票数 2
EN

Stack Overflow用户

发布于 2015-11-01 18:54:28

当我使用libstreaming & VLC时,我花了很多时间来解决同样的问题。我的解决方案是使用其他VLC版本。例如,它在vlc版本上对我有效。1.0.5,但许多其他版本不能播放该流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32888047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档