2013-07-22 95 views
0

我正试图从服务器获取mjpeg直播视频流到android.I阅读this answer.it对我非常有帮助。它可以与this一起演示url.But,在我的视频流中它要求输入用户名和密码。从服务器直播到Android的mjpeg视频流

要设置网址到MjpegView:

setContentView(mv);   
mv.setSource(MjpegInputStream.read(URL)); 

MjpegInputStream:

public static MjpegInputStream read(String url) { 
    HttpResponse res; 
    DefaultHttpClient httpclient = new DefaultHttpClient();  


    try { 
     res = httpclient.execute(new HttpGet(URI.create(url))); 
     return new MjpegInputStream(res.getEntity().getContent());    
    } catch (ClientProtocolException e) { 
    } catch (IOException e) {} 
    return null; 
} 

如网页浏览器,每当我打开我的服务器link..it要求 '密码' &“username'.so 哪里把参数放在这个read()中?也想知道我的现场视频是否在H.264 格式。那么我怎样才能将它转换成MJPEG格式?它的速度非常慢,而且不平滑。如何改善它?

在此先感谢!

回答

1

由于摄像头受密码保护,因此您被要求进行登录。通常使用网络摄像头时,您必须将用户名和密码作为URL的一部分。例如。用户名:[email protected]:8085/folder/stream.jpg?size = large其中最后的数字是端口号。

0

这是一段时间......但登录:

DefaultHttpClient httpclient = new DefaultHttpClient(); 
    try { 

     HttpGet httpget2 = new HttpGet(url); 
     httpget2.addHeader("Authorization","Basic " + Base64.encodeToString((USERSTRING:PASSWORDSTRING).getBytes(),Base64.DEFAULT)); 
     res = httpclient.execute(httpget2); 
     return new MjpegInputStream(res.getEntity().getContent()); 

    } catch (ClientProtocolException e) { 

     e.printStackTrace(); 

    } catch (IOException e) { 

     e.printStackTrace(); 
    }