2011-11-02 19 views
8

के लिए वीडियो एन्कोडिंग लाइब्रेरी मैं वास्तव में उस समस्या से फंस गया, क्योंकि मैंने आईओएस में वीडियो एन्कोडिंग के संबंध में इंटरनेट में पर्याप्त जानकारी नहीं देखी है, हालांकि हम वीडियो स्ट्रीमिंग की सफलता से निपटने वाले बहुत सारे ऐप्स देख सकते हैं (स्काइप , qik, justin.tv, आदि)
मैं एक एप्लीकेशन विकसित करने जा रहा हूं, जो कैमरे से प्राप्त वीडियो फ्रेम भेजना चाहिए और h.263 (एच .264 या एमपीईजी -4 में निर्णय लेना है) में एन्कोड किया जाना चाहिए वेब सर्वर। इसके लिए, मुझे कुछ वीडियो एन्कोडिंग लाइब्रेरी चाहिए। जाहिर है, ffmpeg उस कार्य से निपट सकता है, लेकिन यह एलजीपीएल लाइसेंस के तहत है, जो शायद ऐपस्टोर में ऐप सबमिट करने में कुछ समस्याएं पैदा कर सकता है। दूसरी ओर, कुछ applications हैं, जो ffmpeg लाइब्रेरी का उपयोग करने लगते हैं, लेकिन केवल Timelapser स्पष्ट रूप से ऐप विवरण में इस तथ्य को बताता है। क्या इसका मतलब यह है कि अन्य ऐप्स ffmpeg का उपयोग नहीं कर रहे हैं या सिर्फ इस जानकारी को छुपा रहे हैं?आईओएस

कृपया, इस विषय में अपने विचार और अनुभव साझा करें। मैं dicsussion के लिए खुला हूँ।

उत्तर

8

गुगलिंग और इस क्षेत्र में कुछ शोध करने के बाद, मुझे यह एक लाइब्रेरी http://www.foxitsolutions.com/iphone_h264_sdk.html मिली। वे वास्तव में हार्डवेयर एन्कोडिंग का उपयोग करते हैं। मैंने उपकरणों के साथ डेमो उदाहरण की जांच की है, और उन्होंने मुझे दिखाया कि एन्कोडिंग के दौरान, ~ 12% सीपीयू का उपयोग किया जाता है और syscall read() लगातार बुलाया जाता है। उस से मैं निष्कर्ष निकाल सकता हूं कि अस्थायी फ़ाइल में लिखने के लिए उनकी लाइब्रेरी मानक AVFoundation के AVAssetWriter का उपयोग करती है, और (अधिकतर) समवर्ती थ्रेड का उपयोग एन्कोडेड फ्रेम को पुनर्प्राप्त करने के लिए इस temp फ़ाइल को पढ़ने के लिए किया जाता है।

इसके अलावा, http://www.videolan.org/developers/x264.html पर एक नज़र डालें। यह जीपीएल के तहत है, लेकिन अभी भी उपयोगी हो सकता है।

+0

फॉक्सिट समाधान के लिंक के लिए धन्यवाद। दुर्भाग्यवश उनके पास अब कोई डेमो नहीं है - केवल संपर्क के लिए ईमेल करें। क्या आप किसी अन्य पुस्तकालय को जानते हैं जो मदद कर सकता है? मुझे एक कंटेनर के साथ H264 कच्चे डेटा को लपेटने की आवश्यकता है (उदा। एमपी 4 कंटेनर)। –

+0

@ लुकाज़ज़जेरविंस्की मैंने कुछ समय पहले इस समस्या को हल करने के लिए अपना कोड लिखा था (2012 में मुझे लगता है)। परियोजना को त्याग दिया गया था क्योंकि इस कोड को अभी भी ठीक से डीबग किया जाना चाहिए। यदि आप रुचि रखते हैं तो मुझे डीएम करें, मुझे अभी भी इसके स्रोत होना चाहिए। – peetonn

+0

वाह, बहुत बहुत धन्यवाद, यह बहुत अच्छा होगा। मैं आपको डीएम से खुश हूं, हालांकि, आपकी प्रोफ़ाइल कहती है "जाहिर है, यह उपयोगकर्ता उनके बारे में रहस्य की हवा रखने के लिए पसंद करता है।" इसके अलावा SO पर कोई पीएम नहीं है, इसलिए आपको डीएम भेजने का कोई तरीका नहीं है :) –