Как записать вновь созданную AVMutableComposition на диск с минимальной рекомпрессией? - PullRequest
0 голосов
/ 23 февраля 2019

Я построил AVMutableComposition с видеотреком и аудиотреком и объединил (последовательно вставил) AVAssets из набора .mp4 файлов, загруженных с диска в него.

Теперь я хочу записать полученную композицию на диск, используя те же настройки, что и у исходного материала (все они генерируются одним и тем же приложением, системой камер безопасности).

AVAssetExportSession требует именованного пресета,Я мог бы просто выбрать что-то вроде AVAssetExportPresetHEVCHighestQuality, но это подразумевает перекодирование, и я чувствую, что должен быть способ сделать это гораздо более без потерь.

Когда я проверяю пресеты, совместимые с моей композицией, я получаю

[ "AVAssetExportPreset1920x1080", "AVAssetExportPresetLowQuality", "AVAssetExportPresetAppleM4V720pHD", "AVAssetExportPresetAppleM4VAppleTV", "AVAssetExportPresetAppleM4A", "AVAssetExportPresetHEVCHighestQuality", "AVAssetExportPreset640x480", "AVAssetExportPresetAppleProRes422LPCM", "AVAssetExportPreset3840x2160", "AVAssetExportPresetHEVC3840x2160" , "AVAssetExportPresetAppleM4VWiFi", "AVAssetExportPresetHighestQuality", "AVAssetExportPresetAppleM4VCellular", "AVAssetExportPreset1280x720", "AVAssetExportPresetMediumQuality", "AVAssetExportPresetAppleM4V1080pHD", "AVAssetExportPresetAppleM4V480pSD", "AVAssetExportPreset960x540", "AVAssetExportPresetAppleM4ViPod", "AVAssetExportPresetHEVC1920x1080"]

1016

Есть ли лучший способ?

1 Ответ

0 голосов
/ 23 февраля 2019

Попробуйте использовать AVAssetExportPresetPassthrough.Как указано в документации, она не отображается в результатах exportPresetsCompatibleWithAsset (по причинам, не упомянутым), но обычно работает при записи mp4s или movs из совместимых исходных ресурсов и просто собирает и записывает данные примера без каких-либо повторныхкодирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...