2017-10-25 1 views
0

Ich versuche, ein Video mit AVAssetWriter zuzuschneiden. Ich brauche eine genauere Kontrolle über die Ausgabe als die Voreinstellungen für AVAssetExportSession bereitstellen. Ich versuche, den Ausgabemodus AVVideoScalingModeFit mit meinem AVAssetWriterInput zu verwenden, aber dies einen Absturz verursacht besagt:AVAssetWriterInput unterstützt derzeit AVVideoScalingModeFit nicht

AVAssetWriterInput derzeit nicht unterstützt AVVideoScalingModeFit

Hier werden die Video-Einstellungen sind Ich verwende:

let videoSettings: [String : Any] = [ 
     AVVideoCodecKey: AVVideoCodecH264, 
     AVVideoWidthKey: 450, 
     AVVideoHeightKey: 450, 
     AVVideoScalingModeKey: AVVideoScalingModeFit, 
     AVVideoCompressionPropertiesKey: [ 
      AVVideoAverageBitRateKey: 1000000, 
      AVVideoProfileLevelKey: AVVideoProfileLevelH264Baseline41, 
      AVVideoAllowFrameReorderingKey: false, 
      AVVideoExpectedSourceFrameRateKey: 23 
     ] 
    ] 

Meine Fragen sind zweifach: 1) Warum existiert dieser Modus, wenn ich ihn nicht benutzen kann? 2) Wenn ich es benutzen kann, wie soll ich das tun?

Andere haben diese Frage gestellt, aber sie bleibt unbeantwortet. Siehe: here.

Antwort

0

1) Nur weil AVAssetWriter nicht unterstützt, heißt das nicht, dass es nicht woanders in AVFoundation unterstützt wird.

2) Skalieren Sie die Videorahmen selbst mit Core Image oder VTPixelTransferSession oder was auch immer für Ihre Pipeline geeignet ist.

Verwandte Themen