Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将新创建的AVMutableComposition以最少的重新压缩写入磁盘?_Ios_Swift_Macos_Avfoundation - Fatal编程技术网

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时起作用,并且它只收集和写入样本数据而不进行任何重新编码