7

कोड यह रहा। मैं हमेशा वीडियो के दाईं ओर नीचे और नीचे के साथ एक 1-2 पिक्सेल सीमा प्राप्त करता हूं, इससे कोई फर्क नहीं पड़ता कि मैं कौन सा वीडियो प्रस्तुत करने की कोशिश कर रहा हूं। इसका कारण क्या हो सकता है और मैं इसे कैसे ठीक कर सकता हूं?AVAssetExportSession मुझे सही और आउटपुट वीडियो के नीचे पर एक हरे रंग की सीमा देने

संपादित करें: मैं कहीं भी किसी भी तरह का हरा रंग नहीं उपयोग कर रहा हूं, इसलिए यह किसी भी तरह से ढांचे से आना चाहिए।

उत्तर

10

आमतौर पर हरे रंग की लाइनों वीडियो फसल के बाद दिखाई देते हैं, समस्या वीडियो renderSize चौड़ाई में है, यह 16

यहाँ इस बारे में कुछ लिंक का गुणा किया जाना चाहिए: apple 1 apple 2

2

यह पता चला है कि अगर AVMutableVideoComposition की रेंडर आकार की चौड़ाई एक संख्या भी नहीं है, तो आपको रहस्यमय हरे रंग की सीमाएं मिलती हैं। अच्छा समय।

2

आदेश उचित प्राप्त करने के लिए संकल्प कुछ इस तरह की कोशिश ... निकटतम संख्या कि 16 से विभाजित किया जा सकता है जब तक यह भी वृद्धि:

computedVideoSize=self.view.frame.size.width; 

while (computedVideoSize%16>0) { // find the right resolution that can be divided by 16 
    computedVideoSize++; 
} 
2

यह किया था मेरे लिए जादू (iOS9, स्विफ्ट 3, iPhone 6):

के आधार पर: https://www.raywenderlich.com/94404/play-record-merge-videos-ios-swift

को बदलने mainComposition.renderSize:

mainComposition.renderSize = CGSize(width: self.mainCompositionWidth, height: self.mainCompositionHeight) 

जहां mainCompositionWidth, mainCompositionHeightCGFloat रों कर रहे हैं और इस तरह से गणना कर रहे हैं :

self.mainCompositionWidth = UIScreen.mainScreen().bounds.width 
    self.mainCompositionHeight = UIScreen.mainScreen().bounds.height 

    while (self.mainCompositionWidth%16>0) { // find the right resolution that can be divided by 16 
     self.mainCompositionWidth = self.mainCompositionWidth + 1.0 
    } 

    while (self.mainCompositionHeight%16>0) { // find the right resolution that can be divided by 16 
     self.mainCompositionHeight = self.mainCompositionHeight + 1.0 
    } 

इसके अलावा करने के लिए videoCompositionInstructionForTrack समारोह में scaleFitRatio संशोधित:

scaleToFitRatio = self.mainCompositionWidth/assetTrack.naturalSize.height 

यह बना नीचे हरे रंग की रेखा गायब हो जाते हैं और वीडियो स्क्रीन पर आ जाएगा।

4

एक बहुत अच्छे समाधान 16 की एक से अधिक प्राप्त करने के लिए इस दृष्टिकोण होगा:

floor(width/16) * 16 

या

ceil(width/16) * 16 

होने एक छोटा या बड़ा चौड़ाई

+0

धन्यवाद की अपनी प्राथमिकता के आधार! यह मेरे लिए चाल थी (सरल और आसान)। – smartbot

संबंधित मुद्दे