В настоящее время я экспортирую видео следующим образом:
let exporter = AVAssetExportSession.init(asset: mixComposition, presetName: AVAssetExportPreset1280x720)
exporter?.outputURL = outputPath
exporter?.outputFileType = AVFileType.mp4
exporter?.shouldOptimizeForNetworkUse = true
exporter?.videoComposition = mainCompositionInst
Видео 15 с потребляет около 20 МБ данных.Сравнивая это с 2-мегабайтными видео Snapchat, этот номер кажется совершенно неприемлемым.
Я уже снизил качество сеанса экспорта и захвата (1280x720).
Видео снято на пользовательскую камеру.UIImagePickerController
не используется.
AVAssetExportSession используется с настройками по умолчанию.
Можно ли как-нибудь уменьшить размер моих видео?Большое спасибо!
РЕДАКТИРОВАТЬ 1: Я попытался использовать эту библиотеку: https://cocoapods.org/pods/NextLevelSessionExporter
К сожалению, это создает проблемы с размерами и удаляет мое аудио:
// Creating exporter
let exporter = NextLevelSessionExporter(withAsset: mixComposition)
exporter.outputURL = outputPath
exporter.outputFileType = AVFileType.mp4
exporter.videoComposition = mainCompositionInst
let compressionDict: [String: Any] = [
AVVideoAverageBitRateKey: NSNumber(integerLiteral: 2500000),
AVVideoProfileLevelKey: AVVideoProfileLevelH264BaselineAutoLevel as String,
]
exporter.videoOutputConfiguration = [
AVVideoCodecKey: AVVideoCodecType.h264,
AVVideoWidthKey: NSNumber(integerLiteral: 1280),
AVVideoHeightKey: NSNumber(integerLiteral: 720),
AVVideoScalingModeKey: AVVideoScalingModeResizeAspectFill,
AVVideoCompressionPropertiesKey: compressionDict
]
exporter.audioOutputConfiguration = [
AVFormatIDKey: kAudioFormatMPEG4AAC,
AVEncoderBitRateKey: NSNumber(integerLiteral: 128000),
AVNumberOfChannelsKey: NSNumber(integerLiteral: 2),
AVSampleRateKey: NSNumber(value: Float(44100))
]