AVAssetExportSession SLOW

nic*_*ljs 4 audio export avfoundation ios

我正在使用 AVAssetExportSession 导出音频文件。它正在工作,但速度是实用的。我正在设置我的导出器,获取我的 AVAsset,并开始导出。这是代码。任何建议或见解都会有所帮助。

[exporter exportAsynchronouslyWithCompletionHandler:^{
    NSLog(@"we are now exporting");
    int exportStatus = exporter.status;
    switch (exportStatus) {
        case AVAssetExportSessionStatusFailed: {
            // log error to text view
            NSError *exportError = exporter.error;
            NSLog (@"AVAssetExportSessionStatusFailed: %@", exportError);
            break;
        }
        case AVAssetExportSessionStatusCompleted: {
            NSLog (@"AVAssetExportSessionStatusCompleted");
            // set up AVPlayer

            NSData *data = [NSData dataWithContentsOfURL:exportURL];
            break;
        }
        case AVAssetExportSessionStatusUnknown: { NSLog (@"AVAssetExportSessionStatusUnknown"); break;}
        case AVAssetExportSessionStatusExporting: { NSLog (@"AVAssetExportSessionStatusExporting"); break;}
        case AVAssetExportSessionStatusCancelled: { NSLog (@"AVAssetExportSessionStatusCancelled"); break;}
        case AVAssetExportSessionStatusWaiting: { NSLog (@"AVAssetExportSessionStatusWaiting"); break;}
        default: { NSLog (@"didn't get export status"); break;}
    }
    [exporter release];
    [exportURL release];
}];
Run Code Online (Sandbox Code Playgroud)

Rhy*_*man 5

您可能正在导致某种转换 - 这会很慢(不会比实时快多少)。确保您使用的是直通预设 AVAssetExportPresetPassthrough。

  • 您好,“AVAssetExportPresetPassthrough”确实加速了转换,但我们正在向视频添加字幕,并且使用“AVAssetExportPresetPassthrough”与“AVAssetExportPresetMediumQuality”或“AVAssetExportPresetHighQuality”会导致字幕消失。这是预期的行为吗?Apple 文档很少,并且没有任何教程深入探讨“AVAssetExportPresetPassthrough”的具体用途。谢谢! (2认同)