हम और AVAssetWriter
का उपयोग शैली में कुछ हद तक कर रहे हैं जैसा कि Video Encoding using AVAssetWriter - CRASHES में देखा गया है, मूल रूप से फोटो गैलरी/एसेट लाइब्रेरी से हमें जो वीडियो मिला है उसे पढ़ने के लिए और उसके आकार को कम करने के लिए इसे अलग-अलग बिट दर पर लिखना (अंतिम नेटवर्क अपलोड के लिए)।AVAssetReader के उपयोग के लिए पिक्सेल प्रारूप प्रकार (केसीवी पिक्सेलबफर पिक्सेलफॉर्मैट टाइपपेकी) का चयन कैसे करें?
NSDictionary *outputSettings = [NSDictionary
dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA]
forKey:(id)kCVPixelBufferPixelFormatTypeKey];
readerTrackOutput =
[[AVAssetReaderTrackOutput alloc] initWithTrack:src_track
outputSettings:outputSettings];
तो बुनियादी तौर पर हम kCVPixelBufferPixelFormatTypeKey
कुंजी के लिए kCVPixelFormatType_32BGRA
मान का उपयोग किया:
हमारे लिए काम करने के लिए इस प्राप्त करने के लिए चाल कुछ इस तरह AVAssetReaderTrackOutput
पर एक kCVPixelBufferPixelFormatTypeKey
कुंजी और outputSettings
में मूल्य निर्दिष्ट करने के लिए, था।
लेकिन जाहिर है कि कई संभावित पिक्सेल प्रारूप प्रकार हैं जिन्हें हम चुन सकते हैं। कोड Technical Q&A QA1501: Core Video - Available Pixel Formats एक iOS 6.0.1 iPhone डिवाइस पर में नोट चल रहा है, यहाँ समर्थन पिक्सेल प्रारूप प्रकार की सूची है कि यह पता चलता है:
Core Video Supported Pixel Format Types:
Core Video Pixel Format Type: 32
Core Video Pixel Format Type: 24
Core Video Pixel Format Type: 16
Core Video Pixel Format Type (FourCC): L565
Core Video Pixel Format Type (FourCC): 2vuy
Core Video Pixel Format Type (FourCC): yuvs
Core Video Pixel Format Type (FourCC): yuvf
Core Video Pixel Format Type: 40
Core Video Pixel Format Type (FourCC): L008
Core Video Pixel Format Type (FourCC): 2C08
Core Video Pixel Format Type (FourCC): r408
Core Video Pixel Format Type (FourCC): v408
Core Video Pixel Format Type (FourCC): y408
Core Video Pixel Format Type (FourCC): y416
Core Video Pixel Format Type (FourCC): BGRA
Core Video Pixel Format Type (FourCC): b64a
Core Video Pixel Format Type (FourCC): b48r
Core Video Pixel Format Type (FourCC): b32a
Core Video Pixel Format Type (FourCC): b16g
Core Video Pixel Format Type (FourCC): R10k
Core Video Pixel Format Type (FourCC): v308
Core Video Pixel Format Type (FourCC): v216
Core Video Pixel Format Type (FourCC): v210
Core Video Pixel Format Type (FourCC): v410
Core Video Pixel Format Type (FourCC): r4fl
Core Video Pixel Format Type (FourCC): grb4
Core Video Pixel Format Type (FourCC): rgg4
Core Video Pixel Format Type (FourCC): bgg4
Core Video Pixel Format Type (FourCC): gbr4
Core Video Pixel Format Type (FourCC): 420v
Core Video Pixel Format Type (FourCC): 420f
Core Video Pixel Format Type (FourCC): 411v
Core Video Pixel Format Type (FourCC): 411f
Core Video Pixel Format Type (FourCC): 422v
Core Video Pixel Format Type (FourCC): 422f
Core Video Pixel Format Type (FourCC): 444v
Core Video Pixel Format Type (FourCC): 444f
Core Video Pixel Format Type (FourCC): y420
Core Video Pixel Format Type (FourCC): f420
Core Video Pixel Format Type (FourCC): a2vy
Core Video Pixel Format Type (FourCC): L00h
Core Video Pixel Format Type (FourCC): L00f
Core Video Pixel Format Type (FourCC): 2C0h
Core Video Pixel Format Type (FourCC): 2C0f
Core Video Pixel Format Type (FourCC): RGhA
Core Video Pixel Format Type (FourCC): RGfA
भी kCVPixelFormatType_32BGRA
हालांकि (कम से कम प्रतीत होता है) हमारे लिए काम किया है, हम के रूप में उत्सुक हैं क्या उपर्युक्त सूची से बेहतर विकल्प है या नहीं। हमें सही पिक्सेल प्रारूप प्रकार को चुनने के बारे में हमें कैसे जाना चाहिए?
अगर वहाँ डीकोड कच्चे वीडियो फ्रेम के लिए एक हार्डवेयर संगत बनावट प्रारूप थे, तो आप सोच सकता है कि उस प्रारूप में हो रही उदाहरण के लिए आरजीबी में परिवर्तित करने की तुलना में तेज होगा। इसे जीएल को सौंप दिया जा सकता है और एक रंगीन रंग में परिवर्तित करने के लिए इस्तेमाल किया जाने वाला एक टुकड़ा शेडर। – MrMaxP