आप हार्डवेयर-त्वरित वीडियो एन्कोडिंग और iOS पर H.264 वीडियो की डिकोडिंग करना चाहते हैं, जाने के लिए एक ही रास्ता AVFoundation है। एन्कोडिंग या डिकोडिंग के लिए तीसरे पक्ष के पुस्तकालयों का उपयोग न करें, क्योंकि वे वर्तमान में सीपीयू-बाध्य हैं, और AVFoundation से प्राप्त होने वाली चीज़ों की तुलना में बहुत धीमे हैं। किसी तृतीय-पक्ष एन्कोडर या डिकोडर का उपयोग करने का एक कारण यह होगा कि यदि आप डिफ़ॉल्ट रूप से आईओएस में समर्थित प्रारूप के साथ काम नहीं कर रहे हैं।
हार्डवेयर-त्वरित डिकोडिंग के लिए, आप एक AVAssetReader उदाहरण (या शुद्ध प्लेबैक के लिए खिलाड़ी वर्गों में से एक) का उपयोग करना चाहते हैं। एक AVAssetReader के साथ, मुझे H.264-एन्कोडेड वीडियो पढ़ने के लिए नियमित रूप से 2X या उच्च प्लेबैक गति मिलती है, इसलिए आईओएस डिवाइस इसके लिए कुछ अच्छे हार्डवेयर त्वरण का उपयोग करते हैं।
इसी प्रकार, त्वरित एन्कोडिंग के लिए, आप एक AVAssetWriter का उपयोग करेंगे। AVAssetWriter को सर्वश्रेष्ठ गति पर एन्कोड करने के लिए कुछ युक्तियां मिलती हैं (ओपनजीएल ईएस से पढ़ते समय आईओएस 5.0 बनावट कैश का उपयोग करके, पिक्सेल बफर पूल का उपयोग करके, बीजीआरए फ्रेम में भोजन करना), जिसे मैं this answer के भीतर विस्तार से वर्णित करता हूं।
आप कुछ कोड सबसे तेजी से पथ मैं त्वरित एन्कोडिंग और डिकोडिंग के लिए मिल गया है का उपयोग करता है देखने के लिए चाहते हैं, आप मेरी खुला स्रोत GPUImage ढांचा है, जो, अनास्तासिया से जुड़े हुए के विपरीत, वह पूरी तरह से उपयोग करने के लिए नि: शुल्क है देख सकते हैं ।
स्रोत
2012-04-26 14:57:16
प्रश्न का शीर्षक "..विडियो डिकोडिंग" है, लेकिन वास्तविक प्रश्न एन्कोडिंग के बारे में है, है ना? शायद, आपको शीर्षक संपादित करना चाहिए? – Anastasia
एक लाइब्रेरी है जो कच्चे फ्रेम को H.264 में एन्कोड करने की अनुमति देती है: http://www.foxitsolutions.com/iphone_h264_sdk.html। यह पुस्तकालय हार्डवेयर एन्कोडर का उपयोग करता है और अलग H.264 फ्रेम देता है। कृपया यह प्रश्न देखें और उत्तर दें: http://stackoverflow.com/questions/7979842/video-encoding- पुस्तकालय-for-ios/ – Anastasia
शायद एक डुप्लिकेट: http://stackoverflow.com/questions/25197169/how-to- डीकोड-एएच -264-फ्रेम-ऑन-आईओएस-बाय-हार्डवेयर-डिकोडिंग –