Objective c 有人举过一个例子来说明如何使用AVAssetWriter同时编写音频和视频吗?

Objective c 有人举过一个例子来说明如何使用AVAssetWriter同时编写音频和视频吗?,objective-c,ios4,video-capture,avfoundation,avassetwriter,Objective C,Ios4,Video Capture,Avfoundation,Avassetwriter,我一直在努力解决这个问题,但没有成功 我可以写视频输出没有问题。。。但是,一旦我尝试引入第二个AVAssetWriterInput来包含音频,最后一部quicktime电影就会变得神经兮兮,画面会左右丢失,音频会不断地进进出出 谢谢-wg如果您包括源代码,我们可能会为您提供更多帮助,但这是一种我成功地将许多音频和视频曲目写入quicktime电影的方法–我使用单个AVMutableComposition与AVMutableVideoComposition和AVAudioMix。然后我这样写: A

我一直在努力解决这个问题,但没有成功

我可以写视频输出没有问题。。。但是,一旦我尝试引入第二个AVAssetWriterInput来包含音频,最后一部quicktime电影就会变得神经兮兮,画面会左右丢失,音频会不断地进进出出


谢谢-wg

如果您包括源代码,我们可能会为您提供更多帮助,但这是一种我成功地将许多音频和视频曲目写入quicktime电影的方法–我使用单个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:^{}];

您是否使用RequestMediaDataWhenRepayonQueue:usingBlock:写入数据?如果不是,那么您应该将expectsMediaDataInRealTime设置为YES。

我也遇到了同样的问题。我的解决方案:

1) 创建两个AVAssetWriter对象以在两个文件中写入音频和视频

2) 如上所述,使用AVMutableComposition和AVAssetExportSession将它们组合成一个文件


也许很难看。但在我的项目中,我应该编写几个视频文件,因此编写音频和视频会增加较低的开销。

对于正在搜索如何执行此操作的任何人,这应该是您所需要的全部。祝你好运。

如果可以的话,也许可以向我们展示那些无法正常工作的代码。这将为回答者提供一个良好的工作起点。