2014-07-23 17 views
10

यहां, मुझे वायरलेस आईपी कैमरा से आरटीएसपी प्रोटोकॉल का उपयोग करके एंड्रॉइड मोबाइल पर लाइव वीडियो स्ट्रीमिंग प्राप्त करनी है। कैमरा वायरलेस राउटर से जुड़ा हुआ है और मोबाइल में भी वही वाईफाई नेटवर्क है। अब मुझे कैमरे से लाइव वीडियो स्ट्रीमिंग लागू करने की जरूरत है।एक वायरलेस आईपी कैमरा से एंड्रॉइड मोबाइल पर लाइव वीडियो स्ट्रीमिंग

इस उद्देश्य के लिए, मुझे क्या करना चाहिए? यह मेरे लिए नई अवधारणा है। एंड्रॉइड मोबाइल और कैमरा प्रोग्रामेटिक रूप से कैसे कनेक्ट करें और लाइव स्ट्रीमिंग प्राप्त करें। किसी भी मदद की सराहना की जाएगी।

+1

इसे करने के लिए इस [लिंक] (http://www.androidhive.info/2014/06/android-streaming-live-camera-video-to-web-page/) में निर्देशों का पालन करें। –

उत्तर

2

आप अपने पीसी के लिए आपके आईपी कैम से छवि लाइव फ़ीड का उपयोग कर सकते, मेरा

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

या किसी प्रकार का था। यदि यह शामिल है तो आपको अपने डिवाइस की जांच करनी चाहिए। फिर आप छवि डाउनलोड कर सकते हैं और इसे छविदृश्य पर रख सकते हैं। वास्तविक छवि फ़ाइल सिर्फ इसके ग्राफिकल विवरण नहीं। आपको लगता है कि के लिए MJpegInputStream के लिए खोज, यहाँ नमूना कोड यह

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)); 
} 

आप MJpegInput धारा here और here

आशा इसकी सहायक, खुश codings के बारे में अधिक देख सकते हैं के लिए कर सकते हैं।

संबंधित मुद्दे