16

一直试图以零成功来解决这个问题。

我可以编写视频输出没问题......但是一旦我尝试引入第二个 AVAssetWriterInput 来包含音频,最终的快速电影就会变得跳跃,左右帧丢失,音频不断进出。

谢谢-wg

4

4 回答 4

1

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

于 2011-03-05T09:15:10.650 回答
1

如果您包含源代码,我们可能会为您提供更多帮助,但这是我成功为快速电影编写许多音频和视频轨道的方法——我使用单个 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:^{}];
于 2010-10-10T14:45:07.893 回答
0

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

1)创建两个 AVAssetWriter 对象,将音频和视频写入两个文件。

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

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

于 2014-12-06T11:27:52.397 回答
0

对于任何搜索如何做到这一点的人,这个苹果开发者示例应该是你所需要的。祝你好运。

于 2015-02-22T02:49:36.903 回答