Ios 如何将新创建的AVMutableComposition以最少的重新压缩写入磁盘?
我构建了一个带有视频曲目和音频曲目的Ios 如何将新创建的AVMutableComposition以最少的重新压缩写入磁盘?,ios,swift,macos,avfoundation,Ios,Swift,Macos,Avfoundation,我构建了一个带有视频曲目和音频曲目的AVMutableComposition,并将从磁盘加载的.mp4文件串接(顺序插入)AVAssets 现在,我想使用与源材料完全相同的设置(它们都是由同一个应用程序生成的,一个安全摄像系统),将生成的构图写到磁盘上 AVAssetExportSession要求指定预设。我可以选择像AVAssetExportPresetHEVCHighestQuality这样的东西,但这意味着需要重新编码,我觉得应该有一种更无损的方法来实现这一点 当我检查与我的作品兼容的预设
AVMutableComposition
,并将从磁盘加载的.mp4
文件串接(顺序插入)AVAssets
现在,我想使用与源材料完全相同的设置(它们都是由同一个应用程序生成的,一个安全摄像系统),将生成的构图写到磁盘上
AVAssetExportSession
要求指定预设。我可以选择像AVAssetExportPresetHEVCHighestQuality
这样的东西,但这意味着需要重新编码,我觉得应该有一种更无损的方法来实现这一点
当我检查与我的作品兼容的预设时,我得到
[“AVAssetExportPreset1920x1080”,“AVAssetExportPresetLowQuality”,
“AVAssetExportPresetAppleM4V720pHD”,
“AVAssetExportPresetAppleM4VAppleTV”、“AVAssetExportPresetAppleM4A”,
“AVAssetExportPresetHEVCHighestQuality”、“AVAssetExportPreset640x480”,
“AVAssetExportPresetAppleProRes422LPCM”,
“AVAssetExportPreset3840x2160”、“AVAssetExportPresetHEVC3840x2160”,
“AVAssetExportPresetAppleM4VWiFi”,
“AvassetextExportPresetHighestQuality”,
“AVAssetExportPresetAppleM4VCellular”、“AVAssetExportPreset1280x720”,
“AvassetextPortPresetMediumQuality”,
“AVAssetExportPresetAppleM4V1080pHD”,
“AVAssetExportPresetAppleM4V480pSD”、“AVAssetExportPreset960x540”,
“AVAssetExportPresetAppleM4ViPod”、“AVAssetExportPresetHEVC1920x1080”]
有更好的方法吗?尝试使用
AVAssetExportPresetPassthrough
。
如文档所述,它不会出现在导出预置CompatibleWithAsset的结果中(原因未提及),但它通常在从兼容源资产写入MP4或MOV时起作用,并且它只收集和写入样本数据而不进行任何重新编码