NextLevel / NextLevelSessionExporter

🔄 Export and transcode media in Swift
http://nextlevel.engineering
MIT License
262 stars 48 forks source link

AVVideoScalingModeKey doesn't work as expected #33

Open gontovnik opened 3 years ago

gontovnik commented 3 years ago

Hello,

First of all, thank you for building and supporting this library. It saved me a significant amount of time.

Unfortunately, lately, I discovered the following issue – when I try to export the landscape video as a portrait video with the AVVideoScalingModeResizeAspectFill, it correctly crops the video horizontally, but doesn't scale it vertically. Please see the images attached below.

Original video (portrait): Simulator Screen Shot - iPhone 11 - 2021-03-04 at 12 31

Original video (landscape): Simulator Screen Shot - iPhone 11 - 2021-03-04 at 12 33-1

The result of compression: Simulator Screen Shot - iPhone 11 - 2021-03-04 at 12 31-1

The expected result of compression: Simulator Screen Shot - iPhone 11 - 2021-03-04 at 12 33

The configuration used:

let compression = [
  AVVideoAverageBitRateKey: NSNumber(integerLiteral: 1500000),
  AVVideoProfileLevelKey: AVVideoProfileLevelH264BaselineAutoLevel as String
] as [String: Any]
exporter.videoOutputConfiguration = [
  AVVideoCodecKey: AVVideoCodecType.h264,
  AVVideoWidthKey: NSNumber(integerLiteral: 720),
  AVVideoHeightKey: NSNumber(integerLiteral: 1280),
  AVVideoScalingModeKey: AVVideoScalingModeResizeAspectFill,
  AVVideoCompressionPropertiesKey: compression
]

Has anyone faced this issue or does a know a way around it?

Thank you!

sjmueller commented 3 years ago

We have the same exact problem! Hoping a fix comes soon, the library has been excellent otherwise.