2012-07-24 16 views
7

से फ्लाई पर वीडियो एन्क्रिप्ट करें मैं एंड्रॉइड कैमरा कैप्चर करने वाले फ्लाई पर वीडियो एन्क्रिप्ट करना चाहता हूं। तो मुझे अपने CipherOutputStream पर वीडियो स्ट्रीम लिखने के लिए एंड्रॉइड MediaRecorder बताना होगा। समस्या MediaRecorder.setOutputFile() विधि केवल FileDescriptor स्वीकार करती है और CipherOutputStream से फ़ाइल डिस्क्रिप्टर को एन्क्रिप्ट करने का कोई तरीका नहीं है।एंड्रॉइड कैमरा

तो मेरे सवाल का मैं या तो कैसे अनुकरण कर सकते हैं FileDescriptor डेटा लिखता प्राप्त करने के लिए और मैन्युअल एन्क्रिप्शन करते हैं या किसी भी तरह MediaRecorder समझाने CipherOutputStream में वीडियो स्ट्रीम करने के लिए है।

+1

मुझे नहीं लगता कि यह संभव है: http://stackoverflow.com/questions/9257364/modifying-fileinputstream-for-mediaplayer-setdatasource –

उत्तर

4

आप जो भी चाहते हैं उसे लागू करने के लिए आप स्थानीय सर्वर सॉकेट और लोकलसेट का उपयोग कर सकते हैं।

LocalServerSocket जो LocalServerSocket.getFileDescriptor के माध्यम से FileDescriptor प्रदान करता है()

  1. एक LocalServerSocket आरंभ करें।
  2. स्थानीय सॉकेट ऑब्जेक्ट आरंभ करें और LocalServerSocket से कनेक्ट करें।
  3. लोकलसेट से कनेक्शन स्वीकार करने के लिए LocalServerSocket.accept() को आमंत्रित करें।
  4. जब कनेक्शन स्थापित होता है, तो आप स्थानीयसेवर सॉकेट से फ़ाइलडिस्क्रिप्टर प्राप्त कर सकते हैं।
  5. स्थानीय सेर्वर सॉकेट को कैमरा लिखने वाले प्रत्येक बाइट्स को स्थानीय सॉकेट.getInputStream() से पुनर्प्राप्त किया जा सकता है, आप बाइट स्ट्रीम प्राप्त करने के लिए फॉर-लूप का उपयोग कर सकते हैं और सिफरऑटपुटस्ट्रीम को लिख सकते हैं।

सभी चरणों को एक नए थ्रेड में रखना याद रखें।

मैंने उन एपीआई का उपयोग कैमरे के साथ स्ट्रीम स्रोत के रूप में ऑन-द-फ्लाई स्ट्रीम प्रोसेसर बनाने के लिए किया था।

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

क्या कोई मीडिया प्रारूप वास्तव में काम करता है? एमपी 4 उदाहरण के लिए, MediaRecorder फ़ाइलडिस्क्रिप्टर को यादृच्छिक पहुंच की अपेक्षा करता है - यह फ़ाइल की शुरुआत में moov परमाणु लिखना चाहता है, जो 1) सॉकेट व्युत्पन्न फ़ाइलडिस्क्रिप्टर के साथ काम नहीं करता है, और 2) CipherOutputStream के साथ काम नहीं करेगा । – Mark

+0

एमपी 4 moov/mdat की यादृच्छिक स्थिति के कारण काम नहीं कर रहा है। मैंने स्ट्रीमिंग फ़ाइल प्रारूप का परीक्षण किया जैसे एम 2 टीएस काम कर रहा है, और मुझे लगता है कि अन्य स्ट्रीमिंग फ़ाइल प्रारूप भी काम करना चाहिए। – yrulee

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