从无线networking摄像机直播video到Android手机

在这里,我必须使用RTSP协议从无线IP摄像机到Android手机的实时videostream.Camera连接到无线路由器,手机也具有相同的无线networking。现在我需要实现从摄像机的实时videostream。

为此,我该怎么办? 这是我的新概念。如何以编程方式连接android手机和相机,并获得直播streaming.Any帮助将不胜感激。

Solutions Collecting From Web of "从无线networking摄像机直播video到Android手机"

你可以从你的IP摄像头访问图像实时饲料给你的电脑,我的

String URL = "http://192.168.1.8/image/jpeg.cgi";

或某种types。 你应该检查你的设备是否包含在内。 然后您可以下载图像并将其放在imageview上。 而不是实际的图像文件只是它的graphics细节。 你可以searchMJpegInputStream,查看它的示例代码

 public class MjpegInputStream extends DataInputStream { private final byte[] SOI_MARKER = { (byte) 0xFF, (byte) 0xD8 }; private final byte[] EOF_MARKER = { (byte) 0xFF, (byte) 0xD9 }; private final String CONTENT_LENGTH = "Content-Length"; private final static int HEADER_MAX_LENGTH = 100; private final static int FRAME_MAX_LENGTH = 40000 + HEADER_MAX_LENGTH; private int mContentLength = -1; public static MjpegInputStream read(Context context,String url) { HttpResponse res; MyHttpClient httpclient = new MyHttpClient( context ); try { res = httpclient.execute(new HttpGet(URI.create(url))); return new MjpegInputStream(res.getEntity().getContent()); } catch (ClientProtocolException e) { } catch (IOException e) {} return null; } public MjpegInputStream(InputStream in) { super(new BufferedInputStream(in, FRAME_MAX_LENGTH)); } private int getEndOfSeqeunce(DataInputStream in, byte[] sequence) throws IOException { int seqIndex = 0; byte c; for(int i=0; i < FRAME_MAX_LENGTH; i++) { c = (byte) in.readUnsignedByte(); if(c == sequence[seqIndex]) { seqIndex++; if(seqIndex == sequence.length) return i + 1; } else seqIndex = 0; } return -1; } private int getStartOfSequence(DataInputStream in, byte[] sequence) throws IOException { int end = getEndOfSeqeunce(in, sequence); return (end < 0) ? (-1) : (end - sequence.length); } private int parseContentLength(byte[] headerBytes) throws IOException, NumberFormatException { ByteArrayInputStream headerIn = new ByteArrayInputStream(headerBytes); Properties props = new Properties(); props.load(headerIn); return Integer.parseInt(props.getProperty(CONTENT_LENGTH)); } public Bitmap readMjpegFrame() throws IOException { mark(FRAME_MAX_LENGTH); int headerLen = getStartOfSequence(this, SOI_MARKER); reset(); byte[] header = new byte[headerLen]; readFully(header); try { mContentLength = parseContentLength(header); } catch (NumberFormatException nfe) { mContentLength = getEndOfSeqeunce(this, EOF_MARKER); } reset(); byte[] frameData = new byte[mContentLength]; skipBytes(headerLen); readFully(frameData); return BitmapFactory.decodeStream(new ByteArrayInputStream(frameData)); } 

您可以在这里和这里查看有关MJpegInputstream的更多信息

希望它有帮助,快乐的编码。