2011-04-01 69 views
4

我想用我的Nexus S從IP攝像頭捕獲RTSP視頻流。使用VideoView和mediaplayer觀看流是沒有問題的。在Android設備上捕獲RTSP流

我試着將它保存這樣的:

   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。

有人知道如何解決這個問題嗎?

+0

您是否設法找到解決方案? – 2015-01-14 12:57:19

回答

1
+0

是的,它提到那裏創建自定義URLStreamHandlerFactory並使用setURLStreamHandlerFactory(URLStreamHandlerFactory factory)方法在URL中設置它,但神祕的部分是如何創建RTSP URLStreamHandlerFactory? – 2015-01-14 13:09:20

0

您可以通過JNI/NDK使用的ffmpeg庫捕獲RTSP流。這不是很容易,但它確實有效。