在Android设备上捕获RTSP流

4

我希望能够在我的Nexus S手机上捕获来自IP摄像头的RTSP视频流。使用VideoView和MediaPlayer观看流媒体没有问题。

我尝试像这样保存:

                URL url = new URL("rtsp://192.168.4.222:554/ipcam.sdp");
                URLConnection ucon = url.openConnection();
                ucon.connect();
                InputStream is = ucon.getInputStream();
                fos = new FileOutputStream(VideoFile);
                bis = new BufferedInputStream(is);
                isRecording = true;
                baf = new ByteArrayBuffer(50);
                int current = 0;
                FileOutputStream fos = new FileOutputStream(VideoFile);
                while (((current = bis.read()) != -1) & isRecording) {
                        baf.append((byte) current);
                        fos.write(baf.toByteArray());
                        baf.clear();
                }                    
                fos.close();

我遇到了MalformedURLException,因为Android不支持rtsp:// URL。

有人有解决这个问题的想法吗?


你找到任何解决方案了吗? - Shridutt Kothari
2个回答

1

是的,它在那里提到要创建自定义的URLStreamHandlerFactory,并使用setURLStreamHandlerFactory(URLStreamHandlerFactory factory)方法在URL中设置它,但神秘的部分是如何创建RTSP URLStreamHandlerFactory??? - Shridutt Kothari

0

你可以通过JNI/NDK使用ffmpeg库来捕获rtsp流。这并不是很容易,但确实可行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接