आप केवल या तो BGRA या YUV रंग स्वरूपों में कच्चे वीडियो चित्र AVFoundation से। हालांकि, जब तुम AVAssetWriter के माध्यम से एक mp4 करने के लिए उन फ्रेम लिखते हैं, वे H264 एन्कोडिंग का उपयोग इनकोडिंग किया जाएगा।
कि कैसे करना है पर कोड के साथ एक अच्छा उदाहरण RosyWriter
ध्यान दें कि प्रत्येक AVAssetWriter लिखने के बाद, आपको पता चलेगा कि एक पूरा H264 एनएएल एक mp4 के लिए लिखा गया था। आप कोड है कि AVAssetWriter द्वारा प्रत्येक लिखने, जो आपको एक H264 इनकोडिंग फ्रेम पर पहुँच प्रदान करने जा रहा है के बाद एक पूरी H264 एनएएल पढ़ता लिख सकते हैं। सभ्य गति के साथ इसे सही करने में थोड़ा सा समय लग सकता है, लेकिन यह करने योग्य है (मैंने इसे सफलतापूर्वक किया)।
वैसे, इन एन्कोडेड वीडियो फ्रेम को सफलतापूर्वक डीकोड करने के लिए, आपको H264 SPS और PPS जानकारी की आवश्यकता होगी जो mp4 फ़ाइल में किसी भिन्न स्थान पर स्थित है। मेरे मामले में, मैं वास्तव में कुछ परीक्षण mp4 फ़ाइलों को बना देता हूं, और फिर मैन्युअल रूप से उन निकाले जाते हैं। चूंकि वे परिवर्तित नहीं होते हैं, जब तक आप H264 एन्कोडेड चश्मे को नहीं बदलते, आप उन्हें अपने कोड में उपयोग कर सकते हैं।
SPS values for H 264 stream in iPhone को मेरी पोस्ट की जाँच करें एसपीएस/पी पी एस मैं अपने कोड में प्रयुक्त किया है देखने के लिए।
बस एक अंतिम ध्यान दें, मेरे मामले में मैं डिकोडिंग/देखने के लिए एक और समाप्ति बिंदु को h264 इनकोडिंग फ्रेम स्ट्रीम करने के लिए था, तो मेरे कोड को यह तेजी से करना पड़ा।मेरे मामले में, यह अपेक्षाकृत तेज़ था; लेकिन आखिरकार मैंने एन्कोडिंग/डिकोडिंग के लिए वीपी 8 पर स्विच किया क्योंकि यह तेज़ तरीका था क्योंकि फाइल पढ़ने/लिखने के बिना सब कुछ स्मृति में किया गया था।
शुभकामनाएं, और उम्मीद है कि यह जानकारी मदद करता है।