我一直在开发一个通过 RTSP 显示实时流视频的 Android 应用程序。假设我有一个运行良好的 RTSP 服务器来传递 h264 数据包,并且要查看我们应该连接到rtsp://1.2.3.4:5555/stream的流
所以我尝试使用原生的MediaPlayer\VideoView,但没有运气(视频在播放2-3秒后卡住了,所以我加载了mrmaffen的vlc-android-sdk(可以在这里找到)并使用以下代码:
ArrayList<String> options = new ArrayList<String>();
options.add("--no-drop-late-frames");
options.add("--no-skip-frames");
options.add("-vvv");
videoVlc = new LibVLC(options);
newVideoMediaPlayer = new org.videolan.libvlc.MediaPlayer(videoVlc);
final IVLCVout vOut = newVideoMediaPlayer.getVLCVout();
vOut.addCallback(this);
vOut.setVideoView(videoView); //videoView is a pre-defined view which is part of the layout
vOut.attachViews();
newVideoMediaPlayer.setEventListener(this);
Media videoMedia = new Media (videoVlc, Uri.parse(mVideoPath));
newVideoMediaPlayer.setMedia(videoMedia);
newVideoMediaPlayer.play();
问题是我看到一个空白屏幕。
请记住,当我只放置带有音频流的 RTSP 链接时,它可以正常工作。
有人熟悉这个 sdk 并对这个问题有想法吗?提前致谢