一直试图以零成功来解决这个问题。
我可以编写视频输出没问题......但是一旦我尝试引入第二个 AVAssetWriterInput 来包含音频,最终的快速电影就会变得跳跃,左右帧丢失,音频不断进出。
谢谢-wg
一直试图以零成功来解决这个问题。
我可以编写视频输出没问题......但是一旦我尝试引入第二个 AVAssetWriterInput 来包含音频,最终的快速电影就会变得跳跃,左右帧丢失,音频不断进出。
谢谢-wg
您是否使用 requestMediaDataWhenReadyOnQueue:usingBlock: 来写入数据?如果不是,那么您应该将 expectsMediaDataInRealTime 设置为 YES。
如果您包含源代码,我们可能会为您提供更多帮助,但这是我成功为快速电影编写许多音频和视频轨道的方法——我使用单个 AVMutableComposition 与 AVMutableVideoComposition 和 AVAudioMix。然后我这样写:
AVAssetExportSession *session = [[[AVAssetExportSession alloc] initWithAsset:[project.composition copy] presetName:presetName] retain];
session.outputFileType = [session.supportedFileTypes objectAtIndex:0];
session.outputURL = [NSURL fileURLWithPath:[VeporterAppDelegate createMoviePath]];
session.videoComposition = project.videoComposition;
session.audioMix = project.audioMix;
session.metadata = project.metadata;
[session exportAsynchronouslyWithCompletionHandler:^{}];
我遇到了同样的问题。我的解决方案:
1)创建两个 AVAssetWriter 对象,将音频和视频写入两个文件。
2) 使用 AVMutableComposition 和 AVAssetExportSession 将它们组合成一个文件,如上所述。
也许它很丑。但在我的项目中,我应该编写多个视频文件,因此编写音频和视频会增加低开销。
对于任何搜索如何做到这一点的人,这个苹果开发者示例应该是你所需要的。祝你好运。