2012-11-27 14 views
7

पर आउटपुट करने के लिए avassetwriter के लिए यह संभव है कि मैं एक आईफोन ऐप लिखना चाहूंगा जो लगातार वीडियो कैप्चर करे, h.264 उन्हें 10 सेकंड अंतराल में एन्कोड करें और स्टोरेज सर्वर पर अपलोड करें। यह avassetwriter के साथ किया जा सकता है, और मैं पुराने फाइलों को हटाने पर रोक सकता हूं क्योंकि मैं नए बनाते हैं। हालांकि, फ्लैश मेमोरी के पास सीमित लेखन चक्र हैं, इसलिए यह योजना फ्लैश के माध्यम से कुछ हज़ार लिखने के चक्रों के बाद फ्लैश को नष्ट कर देगी। क्या स्मृति में avassetwriter को रीडायरेक्ट करने का कोई तरीका है, या आईफोन पर रैम ड्राइव बनाएं?क्या स्मृति

धन्यवाद!

+1

"हालांकि, फ्लैश मेमोरी के पास सीमित लेखन चक्र हैं, इसलिए यह योजना फ्लैश के माध्यम से कुछ हज़ार लिखने के चक्रों के बाद फ्लैश को नष्ट कर देगी।" मुझे पूरा यकीन है कि स्मृति प्रबंधन इस तरह से काम नहीं करता है क्योंकि बहुत कुछ है अस्थायी फ़ाइलों को बनाने और ओवरराइट करने वाली प्रक्रियाओं का। यदि आप लगातार उसी क्षेत्र में लिखते हैं, तो आप क्या कहेंगे, लेकिन यह शेड ओएस में इस तरह लागू हो जाता है। –

+0

क्या आपको ऐसा करने का कोई तरीका मिला है? – user1244109

+0

मैं एक ही चीज़ को लागू करने की कोशिश कर रहा हूं। मेरे पास लगभग एक कामकाजी समाधान है जहां मैं दो AVAssetWriters के बीच स्विच करता हूं। मैं समस्याओं में भाग लेता हूं क्योंकि लेखकों के बीच स्विच करते समय मुझे ऑडियो नमूने बफर करने की आवश्यकता होती है। मैं CMSampleBufferCreateCopy का उपयोग कर नमूना बफर की एक प्रति बनाते हैं। उपयोगकर्ता 1244109 - कोई प्रगति? – user331244

उत्तर

-1

फ़ाइल को डेटा क्यों लिखते हैं? क्या आप सिर्फ कैप्चर डेटा को मेमोरी में कॉपी नहीं कर सकते हैं और फिर इसे सर्वर से मेमोरी में दबा सकते हैं?

+0

मेरी इच्छा है कि मैं ऐसा कर सकूं, लेकिन ऐप्पल द्वारा प्रदान की गई एवासेटेटीटर एपीआई केवल फाइल यूआरएल को लिख सकती है। –

+0

इसके बजाय, मेरा मतलब है कि avassetwriter का उपयोग क्यों करें? चूंकि आप निश्चित रूप से कहीं से डेटा प्राप्त कर रहे हैं और इसे avassetwriter को दे रहे हैं, क्यों मध्यस्थ को बाईपास न करें और उस डेटा को सीधे कहीं से अपलोड करें? – bloopletech

+8

क्योंकि AVAssetWriter न केवल डेटा लिखता है बल्कि हार्डवेयर वीडियो एन्कोडिंग का उपयोग करके इसे कुशल तरीके से संपीड़ित करता है। – kolyuchiy

1

हाँ avassetwriter हार्डवेयर डिकोडर तक पहुंचने का एकमात्र तरीका है। और बस फ़ाइल को वापस पढ़ने के दौरान, जबकि आपको लिखा गया है कि आप moov परमाणु नहीं देते हैं, इसलिए avfoundation या mpmediaplayer आधारित खिलाड़ी इसे वापस पढ़ने में सक्षम नहीं होंगे। आपके पास केवल कुछ विकल्प हैं, समय-समय पर एसेटसेटर को रोकें और पृष्ठभूमि थ्रेड पर फ़ाइल को लिखें, प्रभावी ढंग से अपनी फिल्म को छोटी पूर्ण फ़ाइलों में विभाजित करें। या आप सर्वर पक्ष पर अपूर्ण एमपी 4 के साथ सौदा कर सकते हैं, तो आपको कच्चे नालू को डीकोड करना होगा और गायब मूव परमाणुओं को फिर से बनाना होगा। यदि आपका उपयोग ffmpeg mov.c को देखने के लिए स्रोत है। यह एक अपूर्ण एमपी 4 फ़ाइल भी असफल हो जाएगी।

+0

कृपया इस प्रश्न का मेरा जवाब देखें http://stackoverflow.com/questions/13851481/http-live-streaming-server-on-iphone/13889048#13889048 –

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