2009-01-07 18 views
10

मैं एक आईपी कैमरा से लाइव एम-जेपीईजी वीडियो प्राप्त करने के लिए जावा क्लाइंट एप्लिकेशन लिख रहा हूं। यह वीडियो कैमरे द्वारा एक अंतहीन मल्टीपार्ट HTTP संदेश के रूप में भेजा जाता है जहां प्रत्येक भाग एक एकल जेपीईजी फ्रेम होता है। मुझे इन फ्रेमों में से प्रत्येक को संसाधित करने की आवश्यकता है, इसलिए मुझे उम्मीद है कि एक HTTP अनुरोध करने का एक तरीका है जो प्रत्येक संदेश भाग/वीडियो फ्रेम प्राप्त होने के रूप में एक घटना को अतुल्यकालिक रूप से ट्रिगर करता है।जावा: एक मल्टीपार्ट HTTP प्रतिक्रिया प्राप्त करें

किसी को भी किसी भी लाइब्रेरी कि यह कर सकते हैं के बारे में पता है? Google पर जो भी उदाहरण मिल सकते हैं वे काम नहीं करेंगे क्योंकि वे ब्लॉकिंग कॉल का उपयोग करते हैं जो केवल प्रतिक्रिया को पार्स करते हैं और पूरी प्रतिक्रिया प्राप्त होने के बाद इसे भागों में तोड़ देते हैं (जो स्पष्ट रूप से अंतहीन प्रतिक्रिया के लिए काम नहीं करेगा)।

मुझे पता है मैं मैन्युअल रूप से भागों में डेटा को विभाजित कर सकता है के रूप में यह संदेश सीमा की खोज करके आता है, लेकिन यह सिर्फ लगता है जैसे मैं पहिया पुनर्रचना की जाएगी।

उत्तर

1

अपाचे कॉमन्स से HttpClient आज़माएं। स्रोत कोड में कुछ कक्षाएं होती हैं जो दिखाती हैं कि एक स्ट्रीम फैशन में मल्टीपार्ट में कैसे पढ़ा जाए।

+0

मैं इस पुस्तकालय के लिए दस्तावेज़ को देखा और ऐसा लगता है कि यह बहुखण्डीय HTTP अनुरोध, नहीं प्रतिक्रियाओं पार्स करने के लिए केवल है जैसे। इस धागे के अनुसार इसे मल्टीपार्ट प्रतिक्रियाओं को पार्स करने के लिए उपयोग नहीं किया जा सकता है: http://markmail.org/message/l6t46xzmikkbxo2e। मैं Mime4j में देख रहा हूं जिसे वे लिंक में उल्लेख करते हैं। – user52386

4

इस परियोजना: http://fmj-sf.net, एक वर्ग को पार्स करने बहुखण्डीय/है एक्स-मिश्रित की जगह प्रतिक्रियाएं: http://fmj-sf.net/doc/fmj/net/sf/fmj/media/parser/MultipartMixedReplaceParser.html

साथ गूगल कोड खोज: बहुखण्डीय/एक्स मिश्रित की जगह लैंग: जावा

मैंने पाया कुछ अन्य उदाहरण की तरह: http://www.google.com/codesearch?as_q=multipart%2Fx-mixed-replace&btnG=Search+Code&hl=en&as_lang=java&as_license_restrict=i&as_license=&as_package=&as_filename=&as_case=

http://www.google.com/codesearch/p?hl=en#FCmBlvKk1MA/cambozola-0.50/src/com/charliemouse/cambozola/shared/CamStream.java&q=multipart/x-mixed-replace%20lang:java

http://www.google.com/codesearch/p?hl=en#Xnnd-VJLMBY/src/Grabber.java&q=multipart/x-mixed-replace%20lang:java

+0

धन्यवाद- कैम्बोज़ोला ठीक वही दिखता है जो मैं करने की कोशिश कर रहा हूं, मैं उनके कोड पर कुछ और देखूंगा। मैं कस्टम कोड की बजाय उचित HTTP लाइब्रेरी का उपयोग करने की उम्मीद कर रहा था क्योंकि यह सभी मानक HTTP है लेकिन ऐसा लगता है कि मैं जो करना चाहता हूं उसके लिए बहुत कुछ उपलब्ध नहीं है। – user52386

+0

लगता है कि HTTP पुश का उपयोग केवल वेबकैम और कुछ प्रयोगों में किया जाता है। कोड भी जटिल नहीं है। मैं केवल यह सुनिश्चित करता हूं कि कनेक्शन विफलताओं को सही ढंग से संभाला जाता है और यह नहीं मानते कि सभी जानकारी सही तरीके से पहुंच जाएगी। किसी भी ब्राउज़र एपीआई को यह भी सही ढंग से संभालना चाहिए। – Loki

0

मैं वर्गों है कि मेरी परियोजना Sceye-Fi, com.sun.net.httpserver वर्गों है कि जावा 6 के साथ आते हैं का उपयोग करता है एक HTTP सर्वर, एक Eye-Fi कार्ड से फोटो अपलोड प्राप्त करने के लिए बहुखण्डीय अनुरोध को संसाधित लिखा है। सिद्धांत रूप में, इसे किसी भी अंतहीन मल्टीपार्ट अनुरोध पर काम करने से रोकना चाहिए। उम्मीद है कि यह मदद करेगा।

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