5

से मेल खाने वाले आकार में AVCaptureSession वीडियो निर्यात करना मैं सत्र प्रीसेट AVCaptureSessionPreset640x480 के साथ AVCaptureSession का उपयोग कर वीडियो रिकॉर्ड कर रहा हूं। मैं एक गैर-मानक आकार (300 x 300) में AVCaptureVideoPreviewLayer का उपयोग कर रहा हूं, जबकि रिकॉर्डिंग के दौरान गुरुत्वाकर्षण सेट को पहलू भरने के लिए सेट किया गया है। यह इस तरह सेटअप है:पूर्वावलोकन परत

self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:_captureSession]; 
_previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 
_previewLayer.frame = _previewView.bounds; // 300 x 300 
[_previewView.layer addSublayer:_previewLayer]; 

वीडियो रिकॉर्डिंग के बाद, मैं यह quicktime प्रारूप में एक फाइल करने के लिए लिखना चाहते हैं। प्लेबैक के दौरान, मैं एक बार फिर 300 x 300 गैर-मानक आकार परत में वीडियो चला रहा हूं। चूंकि इन वीडियो को अंततः नेटवर्क कनेक्शन पर स्थानांतरित कर दिया जाएगा, इसलिए यह पूर्ण 640x480 वीडियो रखने के लिए अपर्याप्त लगता है।

मेरी 300 x 300 पूर्वावलोकन परत से मेल खाने के लिए वीडियो निर्यात करने का सबसे अच्छा तरीका क्या है? मैं एक एवीफाउंडेशन नोब हूं, इसलिए यदि मैं इस बारे में गलत तरीके से जा रहा हूं तो कृपया मुझे बताएं। मैं डिस्क पर निर्यात किए गए वीडियो से मेल खाने के लिए रिकॉर्डिंग के दौरान पूर्वावलोकन परत में प्रदर्शित रिकॉर्ड वीडियो चाहता हूं।

+0

मुझे लगता है कि यह [उत्तर] [1] आपकी मदद करनी चाहिए। [1]: http://stackoverflow.com/a/16910263/2315453 – arunit21

उत्तर

10

वीडियो संकल्प और वीडियो आकार दो अलग-अलग चीजें हैं। संकल्प स्पष्टता के लिए खड़ा है, उच्च संकल्प का मतलब उच्च स्पष्टता है। जबकि, वीडियो आकार सीमा प्रदर्शित करता है जिसमें वीडियो प्रदर्शित करना है। वीडियो के वीडियो रिज़ॉल्यूशन और पहलू अनुपात के आधार पर, दर्शक दर्शक में दिखाई देने पर खिंचाव या संकीर्ण हो जाएगा।

अब के रूप में तथ्यों स्पष्ट किया गया है, आप अपने जवाब यहाँ पा सकते हैं:

How do I use AVFoundation to crop a video

इस क्रम में चरण निष्पादित करें:

  1. रिकार्ड डिस्क के लिए वीडियो।
  2. डिस्क से संपत्ति लाइब्रेरी में सहेजें।
  3. डिस्क से हटाएं।
  4. उपरोक्त लिंक में उल्लिखित चरणों का पालन करें।

नोट: रिकॉर्डिंग और saveComposition संपत्ति लाइब्रेरी के लिए अपने वीडियो लेखन, बचाया संपत्ति होने के बाद चरण निष्पादित करें।

और इस चरण में अपने आकार प्रदान करते हैं: videoComposition.renderSize = CGSizeMake(320, 240); रूप videoComposition.renderSize = CGSizeMake(300, 300);

और एक सलाह। फ़ाइल को डिस्क पर लिखने के बाद, फिर लाइब्रेरी में, फिर डिस्क पर फिर से एक लंबा ऑपरेशन है। dispatch_queue या operationBlock

चीयर्स का आनंद लें, इसे मज़ेदार करें।

+0

यह आपके लिए काम किया था ??? – croyneaus4u

+0

मैं इसे सहायक होने के बाद से सबसे अच्छा जवाब के रूप में चिह्नित करूंगा, लेकिन मैं अभी भी लिंक किए गए फसल कोड को ठीक से काम करने में सक्षम नहीं हूं। – user2393462435

+0

क्या आप वीडियो को फसल करने में सक्षम नहीं हैं ?? समस्या क्या है ?? – croyneaus4u