AVAssetExportSession gibt mir einen grünen Rahmen rechts und unten im Ausgabevideo

7

Hier ist der Code:

%Vor%

Ich habe verschiedene Qualitätseinstellungen ausprobiert. Ich bekomme immer einen 1-2-Pixel-Rahmen, der auf der rechten Seite des Videos und entlang der Unterseite verläuft, egal, welches Video ich rendern möchte. Was könnte das verursachen und wie repariere ich es?

EDIT: Ich benutze keine grüne Farbe irgendwo, also muss das irgendwie aus dem Framework kommen.

    
csoul 05.04.2014, 16:24
quelle

5 Antworten

10

Normalerweise erscheinen nach dem Beschneiden des Videos grüne Linien, das Problem liegt in der Breite der Video-Rendergröße, sie sollte mit 16 multipliziert werden.

Hier einige Links dazu: Apfel 1 apple 2

    
Rijii_Kot 17.04.2014, 09:20
quelle
4

eine viel bessere Lösung, um das Vielfache von 16 zu bekommen, wäre dieser Ansatz:

%Vor%

oder

%Vor%

je nachdem, ob Sie eine kleinere oder größere Breite bevorzugen

    
iVentis 10.07.2017 13:57
quelle
2

Stellt sich heraus, dass die Breite der Rendergröße von AVMutableVideoComposition keine gerade Zahl ist, erhalten Sie die geheimnisvollen grünen Grenzen. Gute Zeiten.

    
csoul 05.04.2014 18:43
quelle
2

Um die richtige Auflösung zu erhalten, versuchen Sie es so ... inkrementieren Sie es bis zur nächsten Zahl, die durch 16 geteilt werden kann:

%Vor%     
Catalin 09.06.2015 14:17
quelle
2

Dies hat die Magie für mich (iOS9, Swift 3, iPhone 6):

Basiert auf: Ссылка

Ändern von mainComposition.renderSize zu:

%Vor%

wobei mainCompositionWidth , mainCompositionHeight CGFloat sind und wie folgt berechnet werden:

%Vor%

Ändern Sie auch scaleFitRatio in der Funktion videoCompositionInstructionForTrack wie folgt:

%Vor%

Dadurch verschwand die untere grüne Linie und das Video füllt den Bildschirm.

    
Andre Simon 04.07.2016 06:37
quelle